火眼®数据科学建模平台



聚焦大数据+算法模型:语义理解,图谱关系,机器学习,时序预测

让业务流程变得更加个性化,并最大化数据价值
中国高校SAS数据分析大赛2018宣讲会-华南赛区巡讲

达人专栏丨逻辑回归的预测函数与损失函数

发表时间:2020-03-12 20:00

逻辑函数我们知道,它是一种常见的S型函数,本来是用于研究人口增长模式的。它的公式和对应的形状也很简单:


而线性方程:
把线性方程代入逻辑函数,得到的就是我们逻辑回归算法的预测函数:

相当于线性函数是逻辑回归的核函数。至于能不能用其他的函数作为核函数,我想也是可以的吧,只要定义合理,不过线性函数肯定是最简单的。


损失函数

有了预测函数还不行,机器学习关键在于学习,而学习的关键就是损失函数,一个定义良好的损失函数是非常重要的。

既然逻辑函数对应是一个曲线,那我们首先想到的就是类似线性回归一样,直接将损失定义为所有样本的模型误差的平方和,类似如下:

这个定义很简单,很容易理解,可是这个并不是一个非凸函数(关于凸函数,有机会再讲),存在很多局部极小值,很难应用类似梯度下降的算法求解。因此,我们需要一个更好的定义。

实际上,逻辑回归预测函数的损失通常是如下定义的:

看图形就更加清楚了:
横轴是预测值(取值在0和1之间),纵轴是损失。当实际值y=1时,我们看左图,预测值越接近1(就是越接近真实值),则损失自然越小,反之损失越大。当实际值y=0时,也是一样解读。可见这个定义是符合损失的定义的。

我们把所有样本的损失汇总到一起,就是模型的总损失:

其中m是样本总量,取均值就是为了损失更加通用且方便比较。

接下来就是使用梯度下降来求解这个方程。


损失函数的梯度及推导过程

前面讲梯度下降的时候,我们知道梯度下降的核心是”沿着梯度的反方向移动“:
这里的重点就是损失函数的梯度的计算,即:
不过要计算出这个梯度却并不简单,整个过程如下:
这个推导过程涉及比较多的微积分知识,不过还好并不算复杂,细心点应该还是能推导出来的。关键的是下面两点:
我们统一一下公式所使用的符号:

等号左边是损失函数J对第j个参数theta求偏导数,等号右边的m是样本总量,上标i表示第i个样本,下标j表示第j个参数对应的特征的值。

梯度下降的公式如下:
这是更新参数theta的迭代过程,上标t表示迭代次数。把前面得到的梯度结果代入上式,就能得到完整的梯度下降迭代过程。


会员登录
登录
我的资料
留言
回到顶部