这是我参与8月更文挑战的第6天,活动详情查看:8月更文挑战
Linear Regression(线性回归)
在了解逻辑回归之前,我们先简单介绍一下Linear Regression(线性回归)。 线性回归是利用连续性的变量来预估实际数值(比如房价),通过找出自变量与因变量之间的线性关系,确定一条最佳直线,称之为回归线。并且,我们将这个回归关系表示为
正则化
奥卡姆剃刀(Occam's razor)原理:在所有可能选择的模型中,我们应选择能够很好的解释数据,并且十分简单的模型。从贝叶斯的角度来看,正则项对应于模型的先验概率。可以假设复杂模型有较小的先验概率,简单模型有较大的先验概率。让L2范数的正则项||W||2最小,可以使得W的每个元素都很小,都接近于0。(L1范数让W等于0),而越小的参数说明模型越简单,越简单的模型越不容易产生过拟合的现象。
为什么L1范数会使权值稀疏?
任何的正则化算子,如果他在Wi=0的地方不可微,并且可以分解为“求和” 的形式,那么这个正则化算子就可以实现稀疏。
Logistic Regression(逻辑回归)
逻辑回归概述
与线性回归不同的是,逻辑回归并不是一个回归算法,它是一个分类算法;通过拟合一个逻辑函数来预测一个离散型因变量的值(预测一个概率值,基于0与1),来描述自变量对因变量的影响程度。自变量可以有一个,也可以有多个。其中,一个自变量被称为一元逻辑回归,而多个自变量被称为多元逻辑回归。 以实例而言,逻辑回归可以预测一封邮件是垃圾邮件的概率是多少。同时,因为结果是概率值,它同样可以对点击率等结果做排名模型预测。
逻辑回归步骤
首先,寻找一个合适的预测函数h(x)来预测输入数据的判断结果。其次,构造一个损失函数cost,来表示预测的函数值h(x)与训练集数据类别y的偏差(二者的差值等形式)。对所有训练数据的损失求平均或者求和记为J(θ),表示所有训练数据预测值和世纪类别的偏差。我们很容易得到J(θ)越小,预测得越准确,所以我们的目的就是寻找数J(θ)的最小值。寻找最小值有许多方法,这里我们通过梯度下降法(Gradient Descent)进行展示。 接下来,我们对上述内容进行详细解读: 预测函数:
损失函数
损失函数是由逻辑回归的预测函数公式推导而得,值得一提的是,上述的ω^T并不是ω的T次方,而是ω的转置的意思。如果您学习过线性代数的知识应该能很容易理解转置的含义,但没有学习过也没有关系,把它看成ωx使用即可。详细的推导过程不是必须要掌握的知识点,我们会将这部分内容放在文章附录,如果您感兴趣,可以在之后查看。
什么是梯度下降
我们可以观察一个最简单的函数
1.首先对 x 取任意一个值比如-0.8,我们可以得到一个 y 值:
2.其次,求更新方向。例如我们向正方向更新,得到图像如下:
可以发现,当我们向着正方向更新的时候,我们正在逐渐接近最终的结果(零点)。而两次更新之间的间隔(这里是 0.1),在机器学习当中,我们称为学习率。当学习率过大时,x 可能不能很好地收敛;当学习率过小时,x 的收敛速度可能过慢。
3.不断重复第 1、2 步,直到 x 收敛
以上就是梯度下降的主要思想,我们可以得到下降公式:
实战
实战代码: 逻辑回归