前面几篇文章介绍了线性回归算法,他们都属于线性模型现在这篇说的是逻辑回归,虽然都有回归二字却是非线性模型;逻辑回归的输出为特定离散值,用于判定数据的分类所以 逻辑回归(Logistic regression) 也称为分类模型;分类模型又有二分与多分类,逻辑回归通常用于二分类;以下内容为Standard机器学习课程的总结记录;
逻辑回归的应用场景有:
1、是否为垃圾邮件
2、是否患病
3、是否金融诈骗
4、是否为虚假账号
除了上述这些场景外还有很多类似的预测、判别场景;
与前面讲的线性回归算法类似,编写逻辑回归的步骤为:
1、编写预测函数
2、编写损失函数
3、求得使损失函数最小的回归参数w
预测函数
预测函数其实就是模型,逻辑回归利用了Sigmoid函数来输出0-1范围的连续值,所以逻辑函数又称为S函数:
S函数公式如下:
公式输出为以下S型的图形,所以Sigmoid称为S函数:
和线性回归一样逻辑回归模型也一样有参数与特征这里用x表示为特征、w为参数,所以逻辑回归模型为:
模型的输出为连续值,但是我们的想要的分类结果却是离散的所以需要把值映射为0、1;通过上面S函数的图形我们可以看出当x>=0时h(x)>=0.5,x<0时h(x)<0.5,通常情况下当h(x)>=0.5时我们把模型输出分为1分类,h(x)<0.5时为0分类; 从这里可以看出y=0 + Y=1的概率为1,所以有:
损失函数
线性回归中有讲过损失函数是用于求得预测值与实际值差距的函数,逻辑回归也一样使用损失函数求得预测值与实际值的最小值此时的预测函数参数为模型的最佳参数; 与线性回归中有区别的是,在线性回归模型中我们使用的是平方损失函数,而这里我们将使用对数损失函数;
假设样本符合伯努利分布然后通过概率形式表示,通过最大似然估计推导得出的;由于这里说的是二元分类所以逻辑回归的损失函数为:
求得损失函数的最小值
通过前面所讲的梯度下降法可以求出上面所说的损失函数最小值; 求L(w)最小值:
求关于w的偏导数可以得出:
设α为步长,n为w向量大小,m为数据集大小,求w最小值的迭代过程为:
参考资料:
https://en.wikipedia.org/wiki/Logistic_function
Standard机器学习