Logistic 回归是一种分类方法,因变量可以是二分类也可以是多分类,但常用于二分类问题。

函数表达式:
二分类logistic回归 r语言 二分类logistic回归步骤_二分类

函数在坐标图上的形状:

二分类logistic回归 r语言 二分类logistic回归步骤_二分类_02


可以看到,z趋向于负无穷大时,值越接近 0;z趋向于正无穷大时,值越接近 1,这样就可以使输出值在 0 到 1 之间。处理二分类问题时,用 0 和 1 分别表示两种情况,Logistic函数 就可以对数据进行非线性拟合。


假设函数

对于分类问题,要让估算值在 0 到 1 之间:
二分类logistic回归 r语言 二分类logistic回归步骤_代价函数_03
使用 Logistic 模型来假设函数:
二分类logistic回归 r语言 二分类logistic回归步骤_代价函数_04
最后构造的预测函数:
二分类logistic回归 r语言 二分类logistic回归步骤_代价函数_05
根据这个方程,当一个合适 二分类logistic回归 r语言 二分类logistic回归步骤_代价函数_06 被求出时,把因变量 二分类logistic回归 r语言 二分类logistic回归步骤_代价函数_07 代入方程,求出 二分类logistic回归 r语言 二分类logistic回归步骤_代价函数_08


决策界限

先预测一下情况:


下面是一个样本训练集:

二分类logistic回归 r语言 二分类logistic回归步骤_代价函数_09


坐标系中的直线为决策边界,直线左下方的点代入方程中,求出的 二分类logistic回归 r语言 二分类logistic回归步骤_代价函数_08 值小于 0.5,预测的 二分类logistic回归 r语言 二分类logistic回归步骤_机器学习_11 值为 0;直线右上方的点代入方程中,求出的 二分类logistic回归 r语言 二分类logistic回归步骤_代价函数_08 值大于 0.5,预测的 二分类logistic回归 r语言 二分类logistic回归步骤_机器学习_11 值为 1。这样,找出合适的 二分类logistic回归 r语言 二分类logistic回归步骤_代价函数_06再列举另一个样本训练集:

二分类logistic回归 r语言 二分类logistic回归步骤_二分类logistic回归 r语言_15


坐标系中的圆也是决策边界,圆内预测的 二分类logistic回归 r语言 二分类logistic回归步骤_机器学习_11 值为 0,圆外预测的 二分类logistic回归 r语言 二分类logistic回归步骤_机器学习_11


代价函数

线性回归中的代价函数:
二分类logistic回归 r语言 二分类logistic回归步骤_二分类_18
改写为另外一种形式:
二分类logistic回归 r语言 二分类logistic回归步骤_机器学习_19
其中 二分类logistic回归 r语言 二分类logistic回归步骤_二分类logistic回归 r语言_20 部分:
二分类logistic回归 r语言 二分类logistic回归步骤_Logistic回归_21
如果直接以这种方式求值的话,会导致代价函数的形状为非凸函数,有很多的局部最优解,难以找出局部最优解。我们需要使代价函数的形状为凸函数,所以需要改变一下代价函数的形式。

需要达到的效果如下图所示:

二分类logistic回归 r语言 二分类logistic回归步骤_二分类logistic回归 r语言_22


构造Cost函数

分为两种情况考虑:

二分类logistic回归 r语言 二分类logistic回归步骤_二分类_23

y = 1 时的图像:

二分类logistic回归 r语言 二分类logistic回归步骤_代价函数_24


如果 二分类logistic回归 r语言 二分类logistic回归步骤_代价函数_08 趋近于 1,越贴近于我们的实际值 二分类logistic回归 r语言 二分类logistic回归步骤_机器学习_26,那么 二分类logistic回归 r语言 二分类logistic回归步骤_二分类logistic回归 r语言_20 就趋近于 0,可以达到需求;但是如果 二分类logistic回归 r语言 二分类logistic回归步骤_代价函数_08 趋近于 0,那么 二分类logistic回归 r语言 二分类logistic回归步骤_二分类logistic回归 r语言_20 就趋近于 二分类logistic回归 r语言 二分类logistic回归步骤_Logistic回归_30,无法达到需求。y = 0 时的图像:

二分类logistic回归 r语言 二分类logistic回归步骤_二分类_31


如果 二分类logistic回归 r语言 二分类logistic回归步骤_代价函数_08 趋近于 0,越贴近于我们的实际值 二分类logistic回归 r语言 二分类logistic回归步骤_Logistic回归_33,那么 二分类logistic回归 r语言 二分类logistic回归步骤_二分类logistic回归 r语言_20 就趋近于 0,可以达到需求;但是如果 二分类logistic回归 r语言 二分类logistic回归步骤_代价函数_08 趋近于 1,那么 二分类logistic回归 r语言 二分类logistic回归步骤_二分类logistic回归 r语言_20 就趋近于 二分类logistic回归 r语言 二分类logistic回归步骤_Logistic回归_30,无法达到需求。

为了更方便地写出代价函数并推导出梯度下降,合并为一个式子:
二分类logistic回归 r语言 二分类logistic回归步骤_代价函数_38
这样代价函数就变成:
二分类logistic回归 r语言 二分类logistic回归步骤_机器学习_39
Cost 函数和 J(θ) 函数是基于最大似然估计推导得到的,我们可以不需要深入了解推导过程,但是要把这个代价函数了解清楚,这是大多数情况下用来拟合 Logistic 函数的代价函数。


梯度下降

接下来对 二分类logistic回归 r语言 二分类logistic回归步骤_代价函数_06 进行梯度下降 ( 二分类logistic回归 r语言 二分类logistic回归步骤_Logistic回归_41为学习率 ):
二分类logistic回归 r语言 二分类logistic回归步骤_Logistic回归_42
二分类logistic回归 r语言 二分类logistic回归步骤_二分类logistic回归 r语言_43 求导,下面是最后的形式:
二分类logistic回归 r语言 二分类logistic回归步骤_Logistic回归_44
可以发现和一般的多元梯度下降的规则是一样的:
二分类logistic回归 r语言 二分类logistic回归步骤_代价函数_45
但是式子中 二分类logistic回归 r语言 二分类logistic回归步骤_代价函数_08