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回归的一系列公式)。

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.

猜你喜欢

转载自blog.csdn.net/withing1113/article/details/84452960