逻辑回归其实是一个分类算法而不是回归算法。通常是利用已知的自变量来预测一个离散型因变量的值(像二进制值0/1,是/否,真/假)。简单来说,它就是通过拟合一个逻辑函数(logit fuction)来预测一个事件发生的概率。所以它预测的是一个概率值,自然,它的输出值应该在0到1之间。--计算的是单个输出
1.假设函数(Hypothesis function)
首先要先介绍一下Sigmoid函数,也称为逻辑函数(Logistic function):
从上图可以看到sigmoid函数是一个s形的曲线,它的取值在[0, 1]之间,在远离0的地方函数的值会很快接近0或者1。它的这个特性对于解决二分类问题十分重要
因为在二分类中,输出y的取值只能为0或者1,所以在线性回归的假设函数外包裹一层Sigmoid函数,使之取值范围属于(0,1),完成了从值到概率的转换。逻辑回归的假设函数形式如下:
则若P(y=1|x;)=0.7,表示输入为x时,y=1的概率为70%。
2.决策边界--假设函数的一个属性,决定于其参数
决策边界,也称为决策面,是用于在N维空间,将不同类别样本分开的直线或曲线,平面或曲面。
根据以上假设函数表示概率,我们可以推得
所以 h(x)=0.5, 即=0 时为决策边界。
线性决策边界:
非线性决策边界:
3.代价函数(优化目标):
在线性回归中,我们给出代价函数定义:
由于它是一个凸函数,所以可用梯度下降直接求解,局部最小值即全局最小值。
但在逻辑回归中,是一个复杂的非线性函数,属于非凸函数,直接使用梯度下降会陷入局部最小值中。类似于线性回归,逻辑回归的J()的具体求解过程如下:
对于输入x,分类结果为类别1和类别0的概率分别为:
P(y=1|x;)=h(x); P(y=0|x;)=1-h(x);
则整合之后为:P(y|x;)=
似然函数为:
对数似然函数为:
根据最大似然估计,此时应该使用梯度上升求最大值,为了便于使用梯度下降法,这里将J()=-
求解的最小值可以使用梯度下降法,根据梯度下降可得的更新过程为:
下面来求偏导,式中α为学习步长:
由此,的更新过程可以写成:(下式的一般省略)
除了梯度下降之外,还有以下优化代价函数的方法:
1. 共轭梯度法(Conjugate Gradient)
2. BFGS
3. L-BFGS
在这些方法中,相比梯度下降,有以下优点和缺点:
1. 不需要主观的选择学习率α,算法中的内循环会自动调节
2. 速度更快
3. 算法更复杂
多元分类:一对多
多分类(multi-classification)是指分类的结果不只两类,而是有多个类别。
逻辑回归本质上是一种二分类的算法,但是可以通过搭建多个二分类器的思想,实现多分类。
针对类别A ,设 A 为正类,非A 为反类,搭建二分类器
针对类别B ,设 B为正类,非B 为反类,搭建二分类器
针对类别 ,设 为正类,非 为反类,搭建二分类器
.......
这是我在进行机器学习的过程中关于逻辑回归的笔记和总结,希望能够帮助大家,如果文章中有错误,希望大家指出,我们一起进步。