8. 逻辑回归Logistic Regression
- pdf版本下载:https://pan.baidu.com/s/1i4FajHF
- html版本下载:https://pan.baidu.com/s/1i5kOls5
逻辑回归(Logistic Regression),按照写博客的经典句式,先要吹一波LR是机器学习十大经典算法之一。逻辑回归在本质上也是一种线性回归或者说是广义的线性回归,它可以处理一些非线性的问题。它常常用于一些分类问题当中,为了接下来解释的方便,我们仅仅讨论二分类问题下的逻辑回归。
1 Sigmoid函数
要了解逻辑回归,必须先知道Sigmoid函数,大家常常把它称之为S型转换函数,表达式为: f(x)=11+e−x,x∈(−∞,+∞) ,函数图像如下:
很明显,Sigmoid函数可以将连续变量 x 转换至
(0,1) 范围内。- Sigmoid还有一个非常重要的性质要提一下:
2 Logistic Regression基本形式
了解了Sigmoid函数之后,我们再来看一下逻辑回归。逻辑回归本质上就是一个经过了Sigmoid函数转换的线性回归,怎么回事呢?一个式子就可以说明了, f(wTx)=11+e−wTx 。相当于先做一个线性回归,再进行一次S函数转换。
- Logistic Regression形式十分简洁,但是作用还是很多的,比如说癌症等一些疾病的诊断;广告的点击率预测;垃圾邮件的分类等等
- f(x)=11+e−x 这个函数在 x>0 的时候取值大于0.5,在 x<0 的时候取值小于0.5,因此可以通过函数的取值来对样本进行分类,在 >0.5 的时候分类为正,相反分类为负。
3 参数求解
Logistic Regression中参数只有 w 。如何估计/求解呢?
首先做一些记号以及规定:
f(w,x)=g(wTx)=11+e−wTx
{P(y=1|x,w)=f(w,x) P(y=0|x,w)=1−f(w,x)需要注意的是,在逻辑回归中我们的损失函数是取为对数损失函数,形式如下:
J(f(w,x),y)={−log(f(w,x)), y=1 −log(1−f(w,x)), y=0 因此:
J(w)=1m∑i=1mJ(f(w,xi),yi)=−1m∑i=1m[yilog(f(w,xi))+(1−yi)log(1−f(w,xi))] 而:
P(y|x,w)=f(x,w)y⋅(1−f(w,x))1−y 所以似然函数为:
L(w)=∏i=1mP(yi|xi,w)=∏i=1mf(xi,w)yi⋅(1−f(w,xi))1−yi 取对数:
l(w)=∑i=1m[yilog(f(xi,w))+(1−yi)log((1−f(w,xi))] 利用梯度下降法更新参数:
∂∂wJ(w)=−1m∑i=1m[yif(w,xi)∂f(w,xi)∂w−1−yi1−f(w,xi)∂f(w,xi)∂w] =−1m∑i=1m[yif(w,xi)−1−yi1−f(w,xi)]f(w,xi)(1−f(w,xi))xi =−1m∑i=1m[yi(1−f(w,xi))−(1−yi)f(w,xi)]xi =1m∑i=1m[f(w,xi)−yi]xi
因此:
wnew=wold−α1m∑i=1mxi(f(w,xi)−yi) 其中, α 为学习率,并且这里应用的是梯度下降算法。在实际运算中,往往会替代为随机梯度下降或其他更有效率的算法。具体细节会在今后的章节当中细说。
4 算法评价
优缺点
- 优点:容易计算,易于理解与实现
- 缺点:拟合精度不一定理想
一些改进的措施:和线性回归类似,逻辑回归中也可以加入正则项以控制参数。
J(w)=−1m∑i=1m[yilog(f(w,xi))+(1−yi)log(1−f(w,xi))]+λ2m∑i=1nw2j
w0=w0−α1m∑i=1mxi0(f(w,xi)−yi) wj=wj−α1m∑i=1m[xij(f(w,xi)−yi)+λwj]