本文主要是介绍初学logistic回归,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、简介
假设现在有一些数据点,我们用一条直线对这些点进行拟合,这个拟合的过程就称作回归。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:参考自《机器学习实践》
这篇关于初学logistic回归的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!