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

  • 更新时间:2019-05-21

概述

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

算法介绍

引用Andrew Ng机器学习课程中的例子来说明:
下图所示,一个二分类问题,label为1或0,红色的叉叉为样本点,在图中样本点分布均匀的情况下,使用线性回归也可以解决这个问题,当 $ x>0.5$ 时,输出为1,反之为0,当样本点为多维向量时,这个一元线性回归函数就可以写成:
h θ ( x ) = θ T x + b (1) h_\theta(x) = \theta^Tx+b \tag{1} hθ(x)=θTx+b(1)
图1
当样本点分布为下图所示情况时,使用一元线性回归就不是很合适了,因为没办法确定样本点的分界阈值,整个线性回归模型会因为这一个样本点作出很大的改变,导致模型的输出值超出了[0, 1]这个区间。
这里写图片描述
最理想的判断输出预测值的是“单位阶跃函数“(unit-step function),即若预测值大于零就判为正例,小于零就判为反例,等于零则可以任意判别,如下图所示,但这个单位阶跃函数不连续,因此使用sigmoid函数做替代。
这里写图片描述
于是,引入了逻辑函数来优化回归模型,我们的目标是: 0 ≤ h θ ( x ) ≤ 1 (2) 0 \leq {h_\theta(x)} \leq{1} \tag{2} 0hθ(x)1(2) , 给出如下公式:
h θ ( x ) = g ( θ T x ) (3) h_\theta(x) = g(\theta^Tx) \tag{3} hθ(x)=g(θTx)(3) 其中, g ( z ) = 1 1 + e − z g(z) = \frac{1}{1+e^{-z}} g(z)=1+ez1 称为逻辑函数,于是逻辑回归的公式为: h θ ( x ) = 1 1 + e − ( θ T x + b ) (4) h_\theta(x) = \frac{1}{1+e^{-(\theta^Tx+b)}} \tag{4} hθ(x)=1+e(θTx+b)1(4)

这里写图片描述
对公式(4)取“对数几率"可得: ln ⁡ y 1 − y = θ T x + b (5) \ln \frac{y}{1-y}=\theta ^Tx+b \tag{5} ln1yy=θTx+b(5)

参数的求解

设y为后验概率估计 p ( y = 1 ∣ x ) p(y=1|x) p(y=1x),则式(4)变为: ln ⁡ P ( y = 1 ∣ x ) P ( y = 0 ∣ x ) = θ T x + b (6) \ln \frac{P(y=1|x)}{P(y=0|x)}=\theta ^Tx+b \tag{6} lnP(y=0x)P(y=1x)=θTx+b(6)
于是,样本为正例:
P ( y = 1 ∣ x ) = e θ T x + b 1 + e θ T x + b (7) P(y=1|x)=\frac{e^{\theta ^Tx+b}}{1+e^{\theta ^Tx+b}} \tag{7} P(y=1x)=1+eθTx+beθTx+b(7) 样本为反例: P ( y = 0 ∣ x ) = 1 1 + e θ T x + b (8) P(y=0|x)=\frac{1}{1+e^{\theta ^Tx+b}} \tag{8} P(y=0x)=1+eθTx+b1(8) 通过“极大似然法"对 θ \theta θ b b b 进行估计,给定一个样本,估计对的概率为:
P ( y i ∣ x i ; θ , b ) = y i P ( y = 1 ∣ x i ; θ , b ) + ( 1 − y i ) P ( y = 0 ∣ x i ; θ , b ) (9) P(y_i|x_i;\theta,b) = y_iP(y=1|x_i;\theta,b)+(1-y_i)P(y=0|x_i;\theta,b) \tag{9} P(yixi;θ,b)=yiP(y=1xi;θ,b)+(1yi)P(y=0xi;θ,b)(9)
最大化似然函数: l ( θ , b ) = ∑ i = 1 m ln ⁡ P ( y i ∣ x i ; θ , b ) (10) l(\theta,b) = \sum^m_{i=1}\ln P(y_i|x_i;\theta,b) \tag{10} l(θ,b)=i=1mlnP(yixi;θ,b)(10)
由式(7)(8)(9)可知,最大化式(10)相当于最小化:
l ( θ , b ) = ∑ i = 1 m − y i ( θ T x + b ) + ln ⁡ ( 1 + e θ T x + b ) (11) l(\theta,b)=\sum^m_{i=1}{-y_i(\theta ^Tx+b)+\ln(1+e^{\theta ^Tx+b})} \tag{11} l(θ,b)=i=1myi(θTx+b)+ln(1+eθTx+b)(11) 可根据牛顿法、梯度下降法等求解参数最优解。

参考资源:
吴恩达《machine learning》公开课
周志华《机器学习》
李航《统计学习方法》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值