【ML算法】监督学习——逻辑回归

  • 更新时间:2018-08-24

前言

挺久没更新博客了,满是愧疚,最近一直在鼓捣数据,感觉没什么可写的,于是翻出之前没有完成的机器学习算法,继续完善~

概述

逻辑回归(Logistic Regression,LR),西瓜书中叫做对数几率回归,虽然叫回归,但实际上是一种分类算法,主要处理二分类问题,LR模型简单,但应用非常广,很多公司都是应用LR解决工业界问题,因为简单,模型生成后,处理速度快,可以满足工业需求。
逻辑回归的主要用途:
(1)解决二分类以及多分类问题
二分类问题比较好理解,例如电信运营商客户是否流失、是否采取某项决策等,LR通过训练数据给定的label值,反复迭代,最终生成样本的分布函数,将位置样本进行分类,如果样本类别多,可以通过多个LR组合解决。
(2)判别预测
LR不仅可以输出类别,还可以输出类别所占概率,在进行预测时更具解释性,并且在模型融合时很有优势。

算法介绍

引用Andrew Ng机器学习课程中的例子来说明:
下图所示,一个二分类问题,label为1或0,红色的叉叉为样本点,在图中样本点分布均匀的情况下,使用线性回归也可以解决这个问题,当 x>0.5 时,输出为1,反之为0,当样本点为多维向量时,这个一元线性回归函数就可以写成:

(1)hθ(x)=θTx+b

【ML算法】监督学习——逻辑回归
当样本点分布为下图所示情况时,使用一元线性回归就不是很合适了,因为没办法确定样本点的分界阈值,整个线性回归模型会因为这一个样本点作出很大的改变,导致模型的输出值超出了[0, 1]这个区间。
【ML算法】监督学习——逻辑回归
最理想的判断输出预测值的是“单位阶跃函数“(unit-step function),即若预测值大于零就判为正例,小于零就判为反例,等于零则可以任意判别,如下图所示,但这个单位阶跃函数不连续,因此使用sigmoid函数做替代。
【ML算法】监督学习——逻辑回归
于是,引入了逻辑函数来优化回归模型,我们的目标是:(2)0hθ(x)1 , 给出如下公式:
(3)hθ(x)=g(θTx)
g(z)=11+ez 称为逻辑函数,于是逻辑回归的公式为:
(4)hθ(x)=11+e(θTx+b)

【ML算法】监督学习——逻辑回归
对公式(4)取“对数几率”可得:

(5)lny1y=θTx+b

参数的求解

设y为后验概率估计 p(y=1|x),则式(4)变为:

(6)lnp(y=1|x)p(y=0|x)=θTx+b

于是,样本为正例:
(7)p(y=1|x)=eθTx+b1+eθTx+b
样本为反例:
(8)p(y=0|x)=11+eθTx+b
通过“极大似然法”对 θ  b 进行估计,给定一个样本,估计对的概率为:
(9)p(yi|xi;θ,b)=yip(y=1|xi;θ,b)+(1yi)p(y=0|xi;θ,b)

最大化似然函数:
(10)l(θ,b)=i=1mlnp(yi|xi;θ,b)

由式(7)(8)(9)可知,最大化式(10)相当于最小化:
(11)l(θ,b)=i=1myi(θTx+b)+ln(1+eθTx+b)
可根据牛顿法、梯度下降法等求解参数最优解。
- 参考资源:
吴恩达《machine learning》公开课
周志华《机器学习》