量化百科

机器学习算法复习之logistic回归

由ypyu创建,最终由ypyu 被浏览 12 用户

logistic回归可译为逻辑斯蒂回归、对数几率回归。与线性回归同属于广义线性模型。在分类问题中,可以作为一个优先选择的基准算法。

与简单线性回归的区别

用途不同:用于分类(二分类)

假设函数改变:添加了一个转换函数(转换输出)

目标函数改变:重新定义了 cost function(由平方差损失函数变为交叉熵损失函数

通俗理解

logistic回归就是在线性回归的基础上,用一个转换函数将连续型的输出转换为离散型的输出,从而将用作回归问题的线性回归模型变成解决分类问题的模型。

比如在二维特征空间内,就可以简单表现为一条将不同类型数据分隔开的直线。(上图)


数学原理

1、sigmoid函数

这个转换函数是一个sigmoid函数:

$f(x)=w^{T}\phi(x)+w_{0}$

sigmoid函数将连续型的输入值映射到0-1区间,将其转换为概率值。

2、从似然函数到新的代价函数

将连续型的输出值代入转换函数,重新定义预测函数的形式:

$f(x)=g(w^{T}x)=\frac{1}{1+e^{-(w^{T}x)}}$

在logistic回归下,我们不再实用平方差作为损失函数(在这种情况下平方差损失函数不再是凸函数),而需要重新定义损失函数。

我们从条件概率的角度考虑,二分类情况下,给定特征的取值,判断是正类的条件概率是f(x),是负类的概率是1-f(x):

——也可以从超平面分隔的角度考虑。

$P(y=1|x)=f(x)$

$P(y=0|x)=1-f(x)$

将上式整合在一起

$P(y|x)=(f(x))^{y}(1-f(x))^{1-y}$

这个条件概率公式可以说是描述了一个条件概率分布,用最大似然估计法(思路见线性回归笔记)去估计这个概率分布的参数:

(1)似然函数:

$L(w)=\prod_{i=1}^{m}(f(x^{(i)}))^{y^{(i)}}(1-f(x^{(i)}))^{1-y^{(i)}}$

这里的f(x)见上面,是一个关于w的函数。

(2)对数似然:

$logL(w)=\sum_{i=1}^{m}(y^{(i)}logf(x^{(i)})+(1-y^{(i)})log(1-f(x^{(i)})))$

(3)加负号得到新的代价函数:(令上面的概率函数取最大,就是令这里的代价函数取最小)

$J(w)=-[\sum_{i=1}^{m}(y^{(i)}logf(x^{(i)})+(1-y^{(i)})log(1-f(x^{(i)})))]$

在用梯度下降进行求解时,为消除数据规模的影响,常常要除以m:

$-[\frac{1}{m}\sum_{i=1}^{m}(y^{(i)}logf(x^{(i)})+(1-y^{(i)})log(1-f(x^{(i)})))]$

(这个代价函数的特点是误判的代价率是不同的,越接近0,代 价不仅越高,而且是升高的越快)

参数更新公式:(梯度下降相关知识见线性回归笔记)

$w_{j}=w_{j}-\alpha\frac{\partial J(w_{j})}{\partial w_{j}}=w_{j}-\alpha\frac{1}{m}\sum_{i=1}^{m}({f(x^{(i)})-y^{(i)}})x_{j}^{(i)}$

(注意求导以及加减过程中的符号问题)

3、多分类问题:softmax

设总类别数为C,对应的指示类别的数字是(0,1,...,C-1)。

过程:

首先构建C个二分类器,比如有3类甲乙丙,第一个分类器分的是甲和非甲,第二个是乙和非乙,第三个是丙和非丙。

然后C个分类器分别输出C个值,对于每个输出值,用softmax函数转换(而不是sigmoid):即先指数化,然后归一化。

例如输出值为5、-1、3,先指数化e^5、e^(-1)、e^3,然后e^5/(e^5+e^(-1)+e^3)等,得到C个在(0,1)之间的值,选值最大的那个即为那一类。

softmax多分类也可用于神经网络,此时神经网络最后一层(输出层)的node数是C个。

——softmax顾名思义,max就是取最大的,soft是软编码,就是数值比如为0.5,0.2,0.3,是比相对大小。硬编码就比如独热编码,不是0就是1。再比如sigmoid的二分类问题,不是0就是1.


算法评价

优点

1、算法本身易于理解,易于解释结果

2、计算代价不高,速度很快

3、操作简单,调参容易(不需调参,除非要正则化以及选择小批量梯度下降)

4、可以处理小数据多特征的样本(不容易过拟合)

5、有很好的数学性质,可用于求最优解而无局部最优问题(相对于神经网络)

缺点

1、准确度相对低(容易欠拟合),尤其是特征量很大时。

2、是线性分类器,对非线性问题解决的不好。

由于logistic回归的缺点,后面更复杂的算法才有用武之地:

比如SVM通过最大间隔提升准确度,通过核函数可以处理非线性问题。

比如决策树用特征构建树结构,基于信息增益准则分类,可以处理非线性问题。

比如神经网络通过更多的层和单元以及激活函数也能处理非线性问题。


应用

logistic回归广泛用于工业问题上,特别是二分类领域,可以得出概率值,适用于根据分类概率排名的领域,如搜索排名等。

logistic回归的扩展softmax可以应用于多分类领域,如手写字识别等。


参考:

优达学城:机器学习课程

网易云课堂:Python数据分析与机器学习实战

吴恩达机器学习课程

周志华《机器学习》

李航《统计学习方法》

标签

机器学习算法机器学习经典算法