【笔记】逻辑回归
一、介绍篇
1.1什么是逻辑回归
LR是Logistic Regression Classifier,本质上是线性回归,特殊之处在于特征到结果的映射中加入了一层逻辑函数g(z),即先把特征线性求和,然后使用函数**g(z)**作为假设函数来预测。g(z)可以将连续值映射到0 和1。逻辑回归使用的g(z)函数是sigmoid函数。因此逻辑回归=线性回归 + sigmoid。
逻辑回归的表达式为
σ(wTx)=11+e−wTx
\sigma(w^Tx)=\frac{1}{1+e^{-w^Tx}}
σ(wTx)=1+e−wTx1
1.2逻辑回归的优势
逻辑回归的优点:
- 它是直接对分类的可能性进行建模,无需实现假设数据分布,这样就避免了假设分布不准确所带来的问题;
- 它不是仅预测出“类别”,而是可得到近似概率预测,这对许多需利用概率辅助决策的任务很有用;
- 逻辑回归函数是任意阶可导的凸函数,有很好的数学性质,现有的许多数值优化算法都可直接用于求取最优解。
- 对于线性数据,(大部分时候)逻辑回归的拟合和计算都非常快,计算效率优于SVM和随机森林
二、推导篇
2.1逻辑回归推导
假设数据集为
Data:{(xi,yi)}i=1Nxi∈Rp,yi∈{0,1}
Data: {\{(x_i, y_i)\}}^{N}_{i=1} \\
x_i\in \mathbb{R}^p,y_i\in\{0,1\}
Data:{(xi,yi)}i=1Nxi∈Rp,yi∈{0,1}
sigmoid函数为
sigmoid:σ(z)=11+e−z
sigmoid:\sigma(z)=\frac{1}{1+e^{-z}}
sigmoid:σ(z)=1+e−z1
在线性回归中有
y=wTx+b
y=w^Tx+b
y=wTx+b
为了方便,我们将其中的权值向量www和输入向量xxx进行扩充,即w=(w1,w2,...,wn,b)w=(w_1,w_2,...,w_n,b)w=(w1,w2,...,wn,b);x=(x1,x2,...,xn,1)x=(x_1,x_2,...,x_n,1)x=(x1,x2,...,xn,1),则式(3)可以改写为y=wTxy=w^Txy=wTx
线性回归是将向量xxx映射为具体的数值yyy(连续),而逻辑回归是用来解决分类问题(通常为二分类问题),希望得到000或111的概率(区间[0,1][0,1][0,1]),即通过某种方式将数值yyy映射到区间[0,1][0,1][0,1]范围内。逻辑回归采用sigmoid函数来完成这样的映射,从而建立yyy与xxx之间的概率判别模型
P(Y∣X)
P(Y|X)
P(Y∣X)
有
p1=P(y=1∣x)=11+e−(wTx)
p_1=P(y=1|x)=\frac{1}{1+e^{-(w^Tx)}}
p1=P(y=1∣x)=1+e−(wTx)1
p0=P(y=0∣x)=1−P(y=1∣x)=e−(wTx)1+e−(wTx) p_0=P(y=0|x)=1-P(y=1|x)=\frac{e^{-(w^Tx)}}{1+e^{-(w^Tx)}} p0=P(y=0∣x)=1−P(y=1∣x)=1+e−(wTx)e−(wTx)
得到
P(Y∣X)=p1Yp01−Y,Y∈{0,1}
P(Y|X)=p_1^Yp_0^{1-Y},Y\in\{0,1\}
P(Y∣X)=p1Yp01−Y,Y∈{0,1}
对应的似然函数为
∏i=1NP(yi∣xi)
\prod_{i=1}^NP(y_i|x_i)
i=1∏NP(yi∣xi)
取对数,得到对数似然函数
L(w)=∑i=1NlogP(yi∣xi)=∑i=1N(yilogp1+(1−yi)logp0)=∑i=1N(yilogp1+(1−yi)log(1−p1))=∑i=1N(yi(logp1−yilog(1−p1))+log(1−p1)=∑i=1N(yilog(p11−p1)+log(1−p1))=∑i=1N(yi(wTxi)+loge−(wtxi)1+e−(wTxi))=∑i=1N(yi(wTxi)+log11+ewTxi)=∑i=1N(yi(wTxi)−log(1+ewTxi)
\begin{aligned}
L(w) &= \sum_{i=1}^N\log P(y_i|x_i)\\
&= \sum_{i=1}^N(y_i\log p_1+(1-y_i)\log p_0)\\
&=\sum_{i=1}^N(y_i\log p_1+(1-y_i)\log (1-p_1))\\
&=\sum_{i=1}^N(y_i(\log p_1-y_i\log (1-p_1))+\log (1-p_1)\\
&=\sum_{i=1}^N(y_i\log(\frac{p_1}{1-p_1})+log(1-p_1))
\\
&=\sum_{i=1}^N(y_i(w^Tx_i)+\log{\frac{e^{-(w^tx_i)}}{1+e^{-(w^Tx_i)}}})\\
&=\sum_{i=1}^N(y_i(w^Tx_i)+\log{\frac{1}{1+e^{w^Tx_i}}})\\
&=\sum_{i=1}^N(y_i(w^Tx_i)-\log{(1+e^{w^Tx_i}})\\
\end{aligned}
L(w)=i=1∑NlogP(yi∣xi)=i=1∑N(yilogp1+(1−yi)logp0)=i=1∑N(yilogp1+(1−yi)log(1−p1))=i=1∑N(yi(logp1−yilog(1−p1))+log(1−p1)=i=1∑N(yilog(1−p1p1)+log(1−p1))=i=1∑N(yi(wTxi)+log1+e−(wTxi)e−(wtxi))=i=1∑N(yi(wTxi)+log1+ewTxi1)=i=1∑N(yi(wTxi)−log(1+ewTxi)
对L(w)L(w)L(w)求极大值(即极大似然估计),即可得到www的估计值
w^=argmaxwL(w)
\hat w=\mathop{\arg\max}_{w}L(w)
w^=argmaxwL(w)
这样,问题就变成了以对数似然函数为目标的最优化问题,可采用梯度下降法或拟牛顿法。
2.2求解优化
令
g(wTxi)=11+e−(wTxi)
g(w^Tx_i) = \frac{1}{1+e^{-(w^Tx_i)}}
g(wTxi)=1+e−(wTxi)1
此时,
因为这里是求最大值,采用梯度上升法:
wj:=wj+a(∑j=1N(yi−g(wTxi))xij)
w_j:=w_j+a(\sum_{j=1}^N(y_i-g(w^Tx_i))x_i^j)
wj:=wj+a(j=1∑N(yi−g(wTxi))xij)