【机器学习】“请介绍一下Logistic Regression”

如何回答“介绍一下Logistic Regression”

​ 最近在准备暑期实习的面试,正在撸机器学习,然而最可怕的事情不在于,数学不好,看不懂,而在于好不容易看懂了却不知道如何讲清楚。随决定将一些基本内容写成小作文。供大家参考。作文不是很成熟,如果有错误,请不吝指出。

对数几率回归

​ logistic回归虽然叫回归,但实际上是一个分类模型,是广义线性模型的一种:

​ 线性模型是学习样本属性的线性回归,使得模型预测值接近于真实值,比如:

[单属性线性回归]:
f(xi)=wxi+byi f(x_i) = wx_i+b \approx y_i
[多元线性线性回归]:
f(xi)=wTxi+b f(\boldsymbol{x_i}) = \boldsymbol{w^Tx_i}+b

线性模型的性能可以用均方误差度量:
w,b)=argw,bmini=1m(f(xi)yi)2使使 (w^*,b^*) = \arg_{w,b}\min\sum_{i=1}^m(f(x_i)-y_i)^2,参数估计的目标是使得均方误差最小化,使用的是最小二乘法。
参数估计的目标是使得均方误差最小化,即最小二乘法。分别对两个参数求导可以得到闭式解。

如果给普通线性模型的预测结果增加一个联系函数得到接近于真实值的预测值,这样的模型成为广义线性模型:
g(y)=wTx+by=g1(wTx+b) g(y) = \boldsymbol{w^Tx}+b y = g^{-1}(\boldsymbol{w^Tx+b})
比如对数线性回归g(y)=ln(y)g(y)=ln(y)

[对数几率回归g(y)=lny1yg(y)=ln\frac{y}{1-y}]

回归模型会产生一个预测值,对于二分类任务,需要将这个预测值变成0/1分类值:加一个单位阶跃函数就能够实现这个目标。

logistic回归就是联系函数对数几率函数(一种sigmoid函数) g(y)=11+eyg(y)=\dfrac{1}{1+e^{-y}}的广义线性分类模型。它近似于阶跃函数的形状,但又避免了阶跃函数不连续的缺点。于是得到:
y=11+ewTx+b=ewTx+b1+ewTx+b=p(y=1x)=π(x) y = \frac{1}{1+e^{-\boldsymbol{w^Tx}+b}} =\frac{e^{\boldsymbol{w^Tx}+b}}{1+e^{\boldsymbol{w^Tx}+b}} = p(y=1|x) = \pi(x)
将这个yy视为xx分类为正样例的概率,那么反例的概率就是1y1-y.
1y=ewTx+b1+ewTx+b=11+ewTx+b=p(y=0x)=1π(x) 1-y =\frac{e^{-\boldsymbol{w^Tx}+b}}{1+e^{-\boldsymbol{w^Tx}+b}} =\frac{1}{1+e^{\boldsymbol{w^Tx}+b}} = p(y=0|x) = 1-\pi(x)
可以得到:
lny1y=wTx+blnp(y=1x)p(y=0x)=wTx+bw=(w,b),lnp(y=1x)p(y=0x)=wTx ln\frac{y}{1-y} = \boldsymbol{w^Tx}+b \\ 也就是:ln\frac{p(y=1|x)}{p(y=0|x)} = \boldsymbol{w^Tx}+b \\ 令 \boldsymbol{w} =(\boldsymbol{w},b),\\ 得到:ln\frac{p(y=1|x)}{p(y=0|x)} = \boldsymbol{w^Tx}
也就是说,对数几率回归模型将输入样本xx 时输出为 y=1y=1的对数几率建模为一个线性模型。

线性模型的值越大,概率值越接近1,样本越可能时正样本,值越小,概率值越接近0,样本越可能是负样本。

那么,参数怎么确定呢?采用极大似然估计啊:

  • 极大似然估计的想法是: 已经知道模型的输入,也知道期望的结果。那么我希望估计模型的参数,能够使得得到我期望结果的可能性最大

于是对于所有的独立样本,得到正确分类的概率pip_i(我的期望结果)

似然函数就是使概率连乘最大。但连乘不好计算,取对数似然变的求和。
【机器学习】“请介绍一下Logistic Regression”

那么,求对数似然函数的最大值就可以得到参数的估计值。即对数几率回归的参数估计是以对数似然函数为目标函数的最优化问题。可以通过梯度下降法或牛顿法进行求解。

估计出参数值w^\hat{w}后,学到的模型就是:
Py=1x)=ew^x1+ew^xP(y=0x)=11+ew^x P(y=1|x)=\frac{e^{\hat{w}\cdot x}}{1+e^{\hat{w}\cdot x}}\\ P(y=0|x) = \frac{1}{1+e^{\hat{w}\cdot x}}

Bonus时间

关于LR和SVM的区别和联系的一点总结
联系**

  1. 都可以处理分类问题,基本模型处理线性二分类问题,改进模型处理多分类
  2. 都可以增加不同的正则化项,L1,L2等。很多实验中两种算法结果相近

区别

  1. LR是参数模型。SVM是非参数模型
  2. 目标函数:
    1. LR是logistical loss
    2. SVM是hinge loss
  3. SVM 处理只考虑支持向量,即和分类最相关的少数点。logistic通过非线性映射,大大减小了离分类平面较远的点的权重,相对提升了与分类最相关的数据点的权重
  4. 逻辑回归相对来说模型更简单,好理解,特别是大规模线性分类时比较方便。而SVM的理解和优化相对来说复杂一些,SVM转化为对偶问题后,分类只需要计算与少数几个支持向量的距离,这个在进行复杂核函数计算时优势很明显,能够大大简化模型和计算。
  5. logic 能做的 svm能做,但可能在准确率上有问题,svm能做的logic有的做不了。