一、整体概述
LR假设数据服从伯努利分布(零一分布,二项分布),通过极大化似然函数的方法,运用梯度下降来求解参数,从而达到将数据二分类的目的。
- 极大似然原理:
- 简单理解:样本所展现的状态便是所有可能状态中出现概率最大的状态
- 参数估计:调整参数使实验结果发生的概率最大,此时参数的取值即为所求
- 为什么用极大似然函数?求解参数速度快,损失函数的更新速度只和数据有关,和sigmoid本身的梯度无关
- 为什么不用平方损失?梯度更新速度和sigmoid本身梯度相关.sigmoid梯度<=0,25,慢
二、损失函数
损失函数:极大似然函数(对其取对数<=>对数损失函数)(h是Sigmoid函数)
c
o
s
t
(
h
θ
(
x
)
,
y
)
=
−
∑
i
=
1
m
y
i
l
o
g
(
h
θ
(
x
)
)
+
(
1
−
y
i
l
o
g
(
1
−
h
θ
(
x
)
)
)
cost(h_θ(x),y)=-\sum_{i=1}^my_ilog(h_θ(x))+(1-y_ilog(1-h_θ(x)))
cost(hθ(x),y)=−∑i=1myilog(hθ(x))+(1−yilog(1−hθ(x)))
三、特征高度相关
- 训练过程中,若很多特征高度相关,会造成怎样的影响?
在损失函数最终收敛的情况下,不会影响分类器效果 - 那为什么还会在训练过程中将高度相关的特征去掉?
提高训练速度
四、处理非线性
LR是线性分类器吗,LR要处理非线性怎么办?
是线性
用K-means算出N个中心点,每一个类别的中心点只留少数几个,然后用核函数
五、为什么LR要使用Sigmod函数
忘了从哪个大神那看到的了,如果有谁知道,麻烦联系我加上链接,谢谢
- 首先,LR假设两个类别的特征服从均值不等,方差相等的高斯分布,也就是
p ( x ∣ y = 0 ) ∼ N ( μ 0 , σ ) p(x|y=0)∼N(μ_0,σ) p(x∣y=0)∼N(μ0,σ)
p ( x ∣ y = 1 ) ∼ N ( μ 1 , σ ) p(x|y=1)∼N(μ_1,σ) p(x∣y=1)∼N(μ1,σ)
为什么假设服从高斯分布?一方面是高斯分布比较容易处理,另一方面,从信息论的角度看,当均值和方差已知时,高斯分布是熵最大的分布,为什么要熵最大?因为最大熵的分布可以平摊风险,就好比不要把鸡蛋放到同一个篮子里。为什么假设方差相等?为了计算方便… - 定义风险:
R ( y = 0 ∣ x ) = λ 00 P ( y = 0 ∣ x ) + λ 01 P ( y = 1 ∣ x ) R(y=0|x)=λ_{00}P(y=0|x)+λ_{01}P(y=1|x) R(y=0∣x)=λ00P(y=0∣x)+λ01P(y=1∣x),
R ( y = 1 ∣ x ) = λ 10 P ( y = 0 ∣ x ) + λ 11 P ( y = 1 ∣ x ) R(y=1|x)=λ_{10}P(y=0|x)+λ_{11}P(y=1|x) R(y=1∣x)=λ10P(y=0∣x)+λ11P(y=1∣x)
λ i j λ_{ij} λij是样本实际标签为j时,却把它预测为i是所带来的风险。
我们认为,预测正确不会带来风险,因此
λ 00 = λ 11 = 0 λ_{00}=λ_{11}=0 λ00=λ11=0,
又认为 λ 10 = λ 01 λ_{10}=λ_{01} λ10=λ01,记λ。
所以,
R ( y = 0 ∣ x ) = λ P ( y = 1 ∣ x ) R(y=0|x)=λP(y=1|x) R(y=0∣x)=λP(y=1∣x)
R ( y = 1 ∣ x ) = λ P ( y = 0 ∣ x ) R(y=1|x)=λP(y=0|x) R(y=1∣x)=λP(y=0∣x) - 现在问题来了,我拿到一个样本,我应该把它预测为0还是预测为1好?
按照风险最小化的原则,应该选择风险最小的,
即 R ( y = 0 ∣ x ) < R ( y = 1 ∣ x ) R(y=0|x)<R(y=1|x) R(y=0∣x)<R(y=1∣x)时,预测为0的风险 < 预测为1的风险,
即 P ( y = 1 ∣ x ) < P ( y = 0 ∣ x ) P(y=1|x)<P(y=0|x) P(y=1∣x)<P(y=0∣x)时,应该把样本预测为0,
两边除一下,就会得到
P ( y = 1 ∣ x ) P ( y = 0 ∣ x ) < 1 \frac{P(y=1|x)}{P(y=0|x)}<1 P(y=0∣x)P(y=1∣x)<1
对不等式左边的部分取一下对数(为什么取对数?因为两个类别的特征服从均值不等,方差相等的高斯分布,取对数方便处理高斯分布里的指数),再利用贝叶斯公式进行展开,即得
l o g P ( y = 1 ∣ x ) P ( y = 0 ∣ x ) = l o g P ( x , y = 1 ) P ( x , y = 0 ) = l o g P ( x │ y = 1 ) P ( y = 1 ) P ( x │ y = 0 ) P ( y = 0 ) = l o g P ( x │ y = 1 ) P ( x │ y = 0 ) + l o g P ( y = 1 ) P ( y = 0 ) log \frac{P(y=1|x)}{P(y=0|x)} =log \frac{P(x,y=1)}{P(x,y=0)} =log \frac{P(x│y=1)P(y=1)}{P(x│y=0)P(y=0)} =log \frac{P(x│y=1)}{P(x│y=0)}+log \frac{P(y=1)}{P(y=0)} logP(y=0∣x)P(y=1∣x)=logP(x,y=0)P(x,y=1)=logP(x│y=0)P(y=0)P(x│y=1)P(y=1)=logP(x│y=0)P(x│y=1)+logP(y=0)P(y=1)
方便起见,假设x是一维的,套入高斯分布的公式,此外,由于 P ( y = 1 ) P(y=1) P(y=1)和 P ( y = 0 ) P(y=0) P(y=0)都是常数,第二项记为常数C1继续展开,将得到
= − ( x − μ 1 ) 2 2 σ 2 + ( x − μ 0 ) 2 2 σ 2 + C 1 = μ 1 σ 2 x + μ 0 σ 2 x + C 2 = θ x = l o g P ( y = 1 ∣ x ) P ( y = 0 ∣ x ) =-\frac{(x-μ_1 )^2}{2σ^2}+\frac{(x-μ_0 )^2}{2σ^2}+C1=\frac{μ_1}{σ^2} x+\frac{μ_0}{σ^2}x+C2=θx=log \frac{P(y=1|x)}{P(y=0|x)} =−2σ2(x−μ1)2+2σ2(x−μ0)2+C1=σ2μ1x+σ2μ0x+C2=θx=logP(y=0∣x)P(y=1∣x)
又 P ( y = 1 ∣ x ) + P ( y = 0 ∣ x ) = 1 P(y=1|x)+P(y=0|x)=1 P(y=1∣x)+P(y=0∣x)=1,即可得到
P ( y = 1 │ x ) = 1 / ( 1 + e − θ x ) P(y=1│x)= 1/(1+e^{-θx}) P(y=1│x)=1/(1+e−θx)