1 逻辑回归和线性回归的区别
-
线性回归方程为 z=f(x)=θ∗x,其中x为输入特征,θ为模型参数;损失函数记为L(θ)=∣∣y−f(x)∣∣22,通过梯度下降法求出最优的θ值。
-
逻辑回归(此处只针对二分类问题)是处理分类问题的,y的取值为0,1,需要对上述线性回归函数z做一步函数变化g(z),此时逻辑回归的方程可以写为g(z)=1+e−z1
-
其中g(z)的导数可以记为:
g′(z)=dzd∗1+e−z1=(1+e−z1)2∗(e−z)=1+e−z1∗(1−1+e−z1)=g(z)∗(1−g(z))
令g(z)中的z为:z=xθ,这样就可以得到逻辑回归模型的一般形式hθ(x)=1+e−xθ1
2 逻辑回归损失函数为交叉熵而不是MSE
-
按照逻辑回归的定义,假设我们的样本输出是0或者1两类。那么我们有
P(y=1∣x,θ)=hθ(x)
P(y=0∣x,θ)=1−hθ(x)
由于逻辑回归假设样本服从伯努利分布,因此上面两个式子可以合并为
P(y∣x,θ)=hθ(x)y(1−hθ(x))1−y ,其中y的取值是0或者1
得到了y的概率分布函数表达式,我们就可以用似然函数最大化来求解我们需要的模型系数θ,这里可以表示为:
L(θ)=∏i=1m(hθ(x(i)))y(i)(1−hθ(x(i)))1−y(i),其中m为样本个数
对似然函数对数化取反后的表达式为:
J(θ)=−lnL(θ)=∑i=1m(y(i))ln(hθ(x(i)))+(1−y(i))ln(1−hθ(x(i))))
对θ求导可得 ∂θ∂J(θ)
=−m1∑i=1m[hθ(x(i))y(i)∂θ∂hθ(x(i))+1−hθ(x(i))(1−y(i))∂θ−∂hθ(x(i))]
=−m1∑i=1m[hθ(x(i))y(i)(hθ(x(i))(1−hθ(x(i))x(i)+1−hθ(x(i))(1−y(i))(hθ(x(i))(1−hθ(x(i))x(i)]
=−m1∑i=1my(i)x(i)−hθ(x(i))x(i)
=−m1∑i=1m[y(i)−hθ(x(i))]x(i)
用矩阵表示,且加入学习率以后,θ的梯度下降更新公式可以记为:
θ:=θ−XT(hθ(X)−Y)
-
若采用MSE作为损失函数,则
J(θ)=2m1∑i=1m[hθ(x(i))−y(i)]2,
此时的J(θ)关于参数θ是非凸函数,存在多个局部解;而交叉熵函数则是关于参数θ的高阶连续可导的凸函数,因此可以根据凸优化理论求的最优解。
J(θ)=2m1∑i=1m[hθ(x(i))−y(i)]2,
此时的J(θ)关于参数θ是非凸函数,存在多个局部解;而交叉熵函数则是关于参数θ的高阶连续可导的凸函数,因此可以根据凸优化理论求的最优解。
-
MSE求梯度
∂θ∂J(θ)=−m1∑i=1m[y(i)−hθ(x(i))]∗[hθ(x(i))(1−hθ(x(i))]x(i)
<=0.25(−m1∑i=1m[y(i)−hθ(x(i))]∗x(i)),
即MSE的梯度值<=0.25交叉熵梯度值,容易造成梯度消失。即MSE的梯度值<=0.25交叉熵梯度值,容易造成梯度消失。
3 逻辑回归的注意点
- 可解释性强(优点)
- 由于z=xθ,其中求最优θ值是会受到x的取值影响(如有两个特征数量级x1/x2=10000,则模型在优化的过程中,x1的影响量将是x2的10000倍,在学习过程中会忽略x2的影响,导致模型的学习效果变差)。另外,类似xθ类型的机器学习模型,归一化后使得更加容易找到最优解。如归一化前和归一化后的搜索空间和搜索过程如下所示:
- 逻辑回归没有特征的交叉,难以实现个性化(针对传统的逻辑回归而言,后续改进模型也加入了交叉项,可以参考FM)
即z=θ0+θ1x1+θ2x2,其中x1和x2是两类特征(可以分别看做产品特征和用户特征),对于同一批产品,x2的取值实际不会对这批产品的结果产生影响。举例如下:取θ0=0, θ1=1, θ2=1,该批产品有三件,对应特征分别为
产品 |
x1 |
x21 |
x22 |
H1 |
100 |
300 |
100 |
H2 |
200 |
300 |
100 |
H3 |
300 |
300 |
100 |
对于用户1
①z11=100∗1+300=400
②z21=200∗1+300=500
③z31=300∗1+300=600
对于用户2
①z12=200∗1+100=300
②z22=100∗1+200=400
③z32=200∗1+300=500
该批产品的得分相对顺序,不会受到用户特征的影响