一、逻辑回归算法简介
二、如何理解逻辑回归算法
假设,最近你们公司在组织一场创新技能大赛,大赛的题目是:预测公司附近的房价在未来某一天是涨还是跌,现有的数据是公司附近每天的人口数量、房屋面积以及房屋价格。
通过对数据分析后我们发现,房屋的价格受公司附近人口数量和房屋面积两个因素影响,他们之间的关系大概率是线性的。如果我们用线性回归问题来解决,这是一个二元线性回归问题,即可以通过公司附近每天的人口数量和房屋面积来预测房屋的价格。这时候的线性回归方程就是:
房价=A1*人口数量+A2*房屋面积+B
不过,当有两个变量的时候,问题会复杂一些,为了方便理解,我们把模型简化一下,先只把“人口数量”这个特征保留下来。这样我们的问题就变成了一个一元线性方程了,它的公式是:房价=人口数量*A+B。
到这儿,我们整个的解决过程都很顺利。我们通过线性回归对房价和人口数量的关系进行了评估,然后通过对未来某天的人口数量进行进一步分析,就可以得到未来某天房价的涨跌情况。
那么,问题来了,一旦这些数据中有几天的房价信息被登记错了,而我们又把这些错误数据录入到线性回归方程中,这样拟合出来的直线就会产生很大的偏差,这会让整个地区的房价远远偏离原有的范围 。这时我们该怎么办呢?
三、逻辑回归算法原理
当线性回归算法的预测结果受个别极端数据的影响而变的不准确的时候,我们可以采用逻辑回归算法来解决。
在数学中,我们通常会采用一些平滑的函数,去减小这些极端值对整个分布的影响,让整个分布更加集中。所谓的平滑函数,你可以理解为把线性回归预测到的具体值,通过一个函数转化为0-1的一个概率值,如下图所示。
上图中的sigmod函数是最常用的一个平滑函数,通过这个函数的映射,我们可以把某些极端值产生的影响变的非常微小,尽可能降低他们对结果的影响,而这个函数的输出值在0-1之间,也就是说,逻辑回归的结果会输出一个事件概率。对应到我们的例子中,就是当sigmod函数的输出结果大于0.5时,我们预测房价会上涨,当sigmod函数的输出结果小于0.5时,我们预测房价会下跌。
这里我们总结一下房价预测的流程,我们首先做一个线性回归,此时预测出的结果值Y是一个任意连续的值,然后我们再在这个结果Y的基础上调用一个函数sigmod,把这个测评结果顺利的转化为一个概率事件,这就是逻辑回归在机器学习中的应用思路了。
总的来说,线性回归的结果可以是任意大小的连续型数值,这类回归模型可以被更广泛的应用在预测价格等任务上。而逻辑回归的输出结果只在0到1之间,也就是表达一个事件会发生的 概率,所以被广泛应用在分类问题上。
四、如何计算逻辑回归的最优解?
在线性回归中,我们通过计算线性回归的预测值和真实值之间的差来找到线性回归的最优解,一般采用平方残差和作为损失函数来计算最优解。
而在逻辑回归中,我们一般采用交叉熵函数的输出结果作为损失函数来评估目标,根据它来更新逻辑回归中的参数,再通过这些参数让整体分布更加准确。
交叉熵损失函数一般用来度量实际输出与期望输出之间的距离,交叉熵的值越小,两个概率分布就越接近,拟合的就越好。在我们的例子中,同样可以采用这个逻辑去分析样本真实分布与实际输出分布之间的误差。
损失函数有多种,例如:交叉熵损失函数、平方残差和,还有绝对值损失函数等,在实际工作中,我们需要根据不同的算法来选择特定的损失函数。
五、逻辑回归函数的应用场景
逻辑回归算法可以我们判断用户的性别、预测用户是否点击指定商品、预测用户是否购买指定商品等,可以帮助我们更好的了解用户、服务用户。一般也可以用来预测广告点击率、商品点击率、商品推荐、股价预测、产品销量预测等等。
六、逻辑回归函数优缺点
逻辑回归在线性回归的基础上,增加了一个sigmod平滑函数,把一个预测连续值转化为一个概率值,所以,逻辑回归具有线性回归的全部优点,简单易实现,运算效率高,可解释性强,还减少了极端值对整体分布的影响,让整个分布更加集中。
同样,逻辑回归也存在和线性回归类似的缺点。作为分类模型,他是根据事物的线性分布转化为概率作为判断,也就是说如果一个事物不是简单的线性分布,那么它的结果也不会很理想。