初学logistic回归

来源:互联网 发布:tcp网络调试助手 编辑:程序博客网 时间:2024/06/05 22:41

一、简介

  假设现在有一些数据点,我们用一条直线对这些点进行拟合,这个拟合的过程就称作回归。Logistic回归的主要思想是:根据现有数据对分类边界线建立回归方式,以此进行分类。这是一个二值型输出分类器。由于需要进行距离计算,以此要求数据类型为数值型。

二、基本思想

  我们想要的函数是能够接受所有的输入然后预测出类别。我们此处用的函数是Sigmoid函数,Sigmoid函数具体的计算方式如下:

                                                                                                                  

  当x为0时,Sigmoid函数值为0.5。随着x的增大,对应的Sigmoid函数值将逼近1;随着x的减少,对应的Sigmoid函数值将逼近0。如果横坐标刻度足够大,Sigmoid函数看起来很像一个阶跃函数。为了实现回归器,我们在每个特征上都乘以一个回归系数,然后把所有的结果值相加,将这个结果带入Sigmoid函数中,进而得到一个范围在0~1之间的数值。任何大于0.5的数据被分入1类,小于0.5的数据归入0类。所以,Logistic回归也可以被看成是一种概率估计。确定了分类器的函数形式,现在的问题变成了求回归系数。

Sigmoid函数的输入记为z,由下面公式得出:

                                                           

  如果采用向量的写法,上述公式可以写成,它表示将这两个向量对应的元素相乘然后全部加起来得到Z值。其中的向量x是分类器的输入数据,向量w也就是我们要找到的最佳参数,从而使得分类器尽可能地精准。

 我们使用梯度上升的最优化方法求得数据集的最佳参数,梯度上升法基于的思想是:要找到某函数的最大值,最好的方法是沿着该函数的梯度方向探寻。梯度算子总是指向函数值增长最快的方向。梯度上升算法的迭代公式是:

                      

该公式一直被迭代执行,直到达到某个停止条件为止,比如迭代次数达到某个指定值或算法达到某个可以允许的误差范围。

 梯度上升法找到最佳回归系数的伪代码:

 每个回归系数初始化为1

 重复R次:

   计算整个数据的梯度

   使用alpha*gradient更新回归系数的向量

 返回回归系数

三、小结

1、处理数据中的缺失值:

  使用可用特征值的均值来填补缺失值;

  使用特殊值来填补缺失值,如0;

  忽略有缺失的样本;

  使用相似样本的均值填补缺失值;

  使用另外的机器学习算法预测缺失值

PS:参考自《机器学习实践》

原创粉丝点击