Logistic回归的基本思想与公式推导

讲前小碎话

Logistic回归是一种线性分类模型,通常用来解决线性二分类或多分类问题。无论是在李航老师的《统计学习方法》书中,还是在吴恩达老师的机器学习课程中,都是先假设随机变量x服从Logistic分布,即有如下的分布函数和概率密度函数:

F(x) = P(X\leq x) = \frac{1}{1+e^{-(x-\mu)/y}}

f(x)=F^{^{'}}(x) = \frac{e^{-(x-\mu)/y}}{\gamma (1+e^{-(x-\mu)/\gamma})^{2}}

可是为什么定义这样的分布函数和概率密度函数,对于初学者来说,还是很难理解的。我们从Logistic回归的来源(也就是从贝叶斯学习发展来的)来理解其的基本思想,会让人明白很多!

对数似然比假设

后验概率:p(w|x)在x条件下,事件w发生的概率。后验概率 = 先验概率 × 类别条件概率。对于分类问题,当属于某一类的后验概率最大时,判断为该类别。

p(w|x)=p(x|w)p(w)

几率:一个事件的几率,是指该事件发生的概率与该事件不发生的概率的比值,事件发生的概率为p,则该事件的对数几率为\frac{p}{1-p}。Logistic回归的对数几率函数为log\frac{p}{1-p}

贝叶斯分类器极大似然估计:对于贝叶斯分类器来说,极大似然估计参数时的似然函数为\Pi p(x_{i}|w)(频率派的做法,可以先看一下贝叶斯学习的极大似然估计法~),参数估计时对其进行最大化。

线性判别函数:对于线性分类器来说:线性判别函数是分类超平面的数学公式表示。

线性判别函数:g(x)=\Sigma w_{i} x_{i}+ w_{0}=w^{T}x+ w_{0}

分类超平面:g(x)=w^{T}x+ w_{0} = 0

线性判别:if w^{T}x+ w_{0} > 0  assign x to w_{1} ; if w^{T}x+ w_{0} < 0 assign x to w_{2}

对数几率似然假设:假设似然比(likelihood ratio)的对数为线性判别函数。(是先有的这个假设,才有的sigmoid函数,以及Logistic回归的一系列公式)。面试的时候曾被问道为什么要做这么一个假设,因为想用回归的方式去解决分类问题,这时候需要找到一个函数将类别y与线性回归的预测值联系起来,但是单位阶跃函数不连续,因此使用了对数几率函数,假设对数几率为线性函数。 这时候为什么要假设对数几率为线性函数而不是假设几率为线性呢?几率(似然比)的取值范围是0~+∞,而线性函数的取值范围是-∞~+∞,取值范围不同,目标函数不同,此时则不能采用最大似然估计的方式估计参数了,并且假设几率为线性函数的话,本质就是典型的线性分类模型。

log(\frac{p(x|w)}{1-p(x|w)}) = \beta^{T}x+\beta _{0},带入贝叶斯公式,推导得到log(\frac{p(w|x)}{1-p(w|x)}) = w ^{T}x+w _{0}(注意\betaw是不同的,应该差了一个常数倍数)。

log(\frac{p}{1-p}) = w^{T}x+ w_{0},计算p得:p=\frac{1}{1+e^{-(w^{T}x+w_{0})}}。令\nu=w^{T}x+w_{0},得: p=\frac{1}{1+e^{-\nu }},即为x属于某一类w的概率。而Logistic回归的h(x^{(i)})=p

引入sigmoid函数

在这里就不赘述了,sigmoid函数公式:

f(x) = \frac{1}{1+e^{-x}},函数图像如下,即当计算得到的x属于w_{1}的概率大于0.5时,属于标签w_{1}类,否则属于w_{2}类(二分类问题)。

image

\nu=w^{T}x+w_{0}越大时,x离分类超平面w^{T}x+w_{0}=0越远,将其判断为这一类的概率越大,即p越接近于1。

求参数的方式

最大似然估计求参数

求参数\theta =(w_{0},w_{1},w_{2}....w_{n}),可采用最大似然估计法求解。

对数似然: 

L(\theta)=log(\Pi p(y^{(i)}|x^{(i)};\theta))

= \Sigma log((h_{\theta}(x^{(i)})^{y(i)}(1-h_{\theta}(x^{(i)}))^{1-y^{(i)}})

=\Sigma y^{(i)}log(h(x^{(i)})) + (1-y^{(i)})log(1-h(x^{(i)}))

 求取L(\theta)的最大值,即为求-L(\theta)的最小值,可以采用梯度下降法求解。

定义Cost function

在吴恩达老师的机器学习课程中,是这样引入Logisti回归的cost fnction的:

在线性回归中,我们常用的损失函数为平方损失函数,即:

cost(h(x^{(i)}),y(x^{(i)})) = \frac{1}{2}(h(x^{(i)})-y(x^{(i)}))^{2},则总损失:

J(\theta)=\frac{1}{m}\Sigma \frac{1}{2}(h_{\theta}(x^{(i)})-y(x^{(i)}))^{2}

此时的J(\theta)为一非凸函数,无法采用梯度下降的方法求得最优解,因此采用另一种cost function:

cost(h(x^{(i)}), y(x^{(i)}))=\begin{cases} -log(h(x^{(i)}))& \text{ if } y^{(i)}= 1\\ -log(1-h(x^{(i)}))& \text{ if } y^{(i)}= 0 \end{cases}

注意:该cost function是从最大似然估计法得来的!

此时计算得到的J(\theta)如下:

J(\theta)=-\Sigma (y^{(i)}log(h(x^{(i)})) + (1-y^{(i)})log(1-h(x^{(i)}))),为凸函数,可以通过梯度下降方法求得最小值。函数图如下:

梯度下降求参数

在这里就不详细推导了,具体可以看梯度下降的相关知识~

参考文献

【1】周志华,机器学习,清华大学出版社,2016.

【2】中国科学院大学《机器学习》课程课件, Chapter3 Liner Classification.

  • 7
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值