机器学习-逻辑回归
逻辑回归(logistic regression)
逻辑回归应用在机器学习的分类问题当中
常见的分类问题有2元分类和多元分类
2元分类
- 垃圾邮件分类
- 肿瘤是恶性还是良性
这些问题共有的特点就是只有结果只可能是0或1
加入我们还用线性回归来处理这个问题
我们以0.5作为分界,大于0.5认为是恶性,小于0.5认为是良性
如果得到这样的曲线是完美的,但是如果加入一个数据,生成这样一条曲线。
这条曲线的预测显然就有很大的偏差
而且预测的值可能大于1或者小于0,这都不是我们想要的
所以我们不能再用线性回归方程
而要用逻辑回归方程
这个函数的图像就在0-1之间
输出是一个估值概率
当预测值大于0.5,我们就认为输出是1,小于0.5是0
同时当预测值大于0.5时,z=θx>0,也就是说z>0时输出为1,小于0输出为0
例如下图,假如已知拟合出的参数为[-3,1,1]
我们就得到一条直线z>0时就是1,小于0为0,从图像看也就是直线的上半区和下半区,这也就实现了我们的分类功能
再来一个例子
假设根据数据集拟合出的参数是θ=[-1,0,0,1,1]
代价函数
若仍然沿用线性回归的方程,则代价函数会出现多个极值点,这样是不能用梯度下降算法的
我们需要想一个新的代价函数
这个函数的图像是这样
这样的函数就可以使用梯度下降了
这个代价函数可以简化为
同样对于梯度下降而言
公式还是没有变
判断收敛和特征缩放在逻辑回归中同样适用
这里给出一些更高级的优化算法
以及他们的优点,但是由于现有知识无法推导所以不细说
多类别分类问题
- 文件存储:工作,生活,朋友,爱好
- 诊断结果:流感,发烧,没有生病
- 天气预测:晴天,阴天,雨,雪
要解决这类问题,我们的方法是分成多个2元的分类问题,如下图
就分成3个2元的子问题
具体的做法如下
我们把class1看做正类,把其他的都看成负类
分别运行3次,注意每次的假设函数h(x)都不一样,我们用一个上标来区分
在训练完成后,对于一个输入x,我们需要将x分别放到所有的子分类器中运行一遍,将预测值最高也就是最有可能的值输出