logistic回归是统计学习中的经典分类方法,属于对数线性模型,所以也被称为对数几率回归。该模型是一种分类算法,logistic回归是一种线性分类器,针对的是线性可分问题。利用logistic回归进行分类的主要思想是:根据现有的数据对分类边界线建立回归公式,以此进行分类。
假设现在有一些数据点,我们利用一条直线对这些点进行拟合(该线称为最佳拟合直线),这个拟合过程就称作为回归,如下图所示
Logistic回归一种二分类算法,它利用的是Sigmoid函数阈值在[0,1]这个特性。其实,Logistic本质上是一个基于条件概率的判别模型(Discriminative Model)。所以我们需要先了解Sigmoid函数 ,我们也可以称它为Logistic函数。具体计算公式如下:
下图给出了Sigmoid函数在不同坐标尺度下的两条曲线图,当x为0时,Sigmoid函数值为0.5。随着x的增大,对应的Sigmoid值将逼近于1;随着x的减小则逼近于0.当横坐标尺度较小时,曲线变化较为平滑,当尺度扩大到一定程度,Sigmoid看起来像一个阶跃函数。
因此,为了实现Logistic回归分类器,我们可以在每个特征上都乘以一个回归系数,然后把所有的结果值相加,将这个总和代入Sigmoid函数中,进而得到一个范围在0~1之间的数值。任何大于0.5的数据被分入1类,小于0.5即被归入0类。所以,Logistic回归也可以被看成是一种概率估计。
基于最优化方法的最佳回归系数确定
梯度上升算法
梯度上升法基于的思想是:要找到某函数的最大值,最好的方法是沿着该函数的梯度方向探寻。
logistic回归实现:
数据集:
-4.96 -4.96 0
-4.95 3.85 0
-4.32 10.12 0
-4.25 9.54 1
-4.15 14.56 1
-4.87 17.69 1
-3.82 -1.96 0
-3.26 5.69 0
-3.58 9.69 0
-3.33 10.19 0
-3.24 15.69 1
-3.54 18.54 1
-3.21 11.32 1
-3.55 12.01 1
-2.82 -3.66 0
-2.68 3.99 0
-2.36 7.98 0
-2.21 11.11 0
-2.86 11.69 1
-2.69 12.12 1
-2.33 15.29 1
-2.14 17.36 1
-1.85 -2.65 0
-1.96 5.96 0
-1.32 11.96 0
-1.01 10.96 0
-1.87 18.25 1
-1.59 14.36 1
-1.44 12.32 1
-1.24 11.54 1
-0.96 7.25 0
-0.54 -2.85 0
-0.24 12.12 0
-0.12 11.87 0
-0.88 15.69 1
-0.69 18.63 1
-0.33 13.36 1
-0.22 12.00 1
0.21 -1.25 0
0.36 5.69 0
0.96 9.63 0
0.87 12.00 0
0.22 17.36 1
0.35 13.68 1
0.58 12.54 1
0.99 14.55 1
1.15 12.56 0
1.58 7.95 0
1.96 10.25 0
1.99 -1.63 0
1.24 13.98 1
1.33 12.98 1
1.65 15.87 1
1.97 14.35 1
2.21 -1.23 0
2.35 4.63 0
2.65 10.88 0
2.96 12.96 0
2.22 13.56 1
2.36 13.68 1
2.54 15.21 1
2.68 17.58 1
3.22 3.22 0
3.34 7.54 0
3.67 12.54 0
3.78 13.54 0
3.21 14.02 1
3.54 15.89 1
3.87 16.58 1
3.99 18.25 1
4.01 4.21 0
4.25 5.21 0
4.54 14.25 0
4.85 13.57 0
4.22 15.98 1
4.35 15.24 1
4.69 17.69 1
4.87 18.24 1
训练算法:使用梯度上升找到最佳参数
运行结果:
分析数据:画出决策边界
运行结果:
训练算法:随机梯度上升
运行结果:
结果不理想
改进的随机梯度上升:
运行结果: