利用logistic回归进行分类的主要思想是:根据现有的数据对分类边界线建立回归公式,以此进行分类。本章简单介绍了基本的梯度上升法和随机梯度上升法。logistic回归的优点是计算代价不高,易于理解和实现。缺点是容易欠拟合,分类精度可能不高。
一。logistic回归的一般过程:
收集数据——准备数据(数值型)——分析数据(任意方法)——训练算法(找到最佳的回归系数)——测试算法——使用算法。
二。sigmoid函数
sigmoid函数公式如下:f(z)=1/(1+e^(-z)),因为此函数的近似一个阶跃函数,当z=0时,函数值是0.5,当z增大时函数值逼近于1,当z值减小时函数值逼近于0.
为了实现分类,将每一个特征值乘上一个回归系数,再进行求和,将得到的总和作为sigmoid函数的输入,得到一个结果。结果大于0.5,则数据被分到1类,小于0.5,则数据被分到0类。
python代码如下:
三。梯度上升法计算最佳回归系数。
sigmoid函数的输入z=w0x0+w1x1+...+wnxn,其中x是分类器的输入数据,w是回归系数。第一个寻找最佳回归系数的最优化算法是梯度上升法,伪代码如下:
每个回归系数初始化为1
迭代R次:
计算整个数据集的梯度
使用alpha(步长)*gradient(梯度)更新回归系数的向量w
返回回归系数
python代码如下:
上述代码已经确定了不同类别数据之间的分界线,使用matplotlib画出分类边界线的python代码如下:
四。随机梯度上升法计算回归系数
随机梯度上升法与梯度上升法的区别是:随机梯度上升法每一次仅仅使用一个样本来更新回归系数,伪代码如下:
所有回归系数初始化为1
历遍数据集中的每一个样本:
计算该样本的梯度
使用alpha(步长)*gradient(梯度)更新回归系数的向量w
返回回归系数
python代码如下:
一个改进的随机梯度算法如下,增加了迭代的次数,alpha的值也在每次迭代的时候调整,python代码如下:
五。实例:从疝气病预测病马的死亡概率
python代码如下: