机器学习 - Logistic 回归
(Logistic 回归实际上是处理分类问题的方法)
-
动机
在处理标签为二值的数据,即二分类任务时,如果使用基本的线性回归模型是无法准确预测的,应当以 “0”, “1”来作为模型的输出,从而判断数据的类别。所以 h ( x ) h(x) h(x) 的值域应当在 [ 0 , 1 ] [0,1] [0,1] 内,但是线性回归模型 h ( x ) = θ X T + b h(x)=θX^T+b h(x)=θXT+b 不满足此种情形。
我们需要对函数进行变换。
-
Logistic 回归
为了根据 h ( x ) h(x) h(x) 函数输出值进行类别判断,我们可以使用阶跃函数,例如:
g ( h ( x ) ) = { 0 , h ( x ) < 0.5 1 , h ( x ) ≥ 0.5 g(h(x))=\begin{cases} 0,h(x)<0.5\\ 1,h(x)\geq0.5 \end{cases} g(h(x))={0,h(x)<0.51,h(x)≥0.5
使用 g ( h ( x ) ) g(h(x)) g(h(x)) 作为模型的输出值作为预测结果。
但是阶跃函数不满足单调可导性质,而后期优化需要求导,所以我们使用近似阶跃函数的替代函数,Sigmoid 函数:
S i g m o i d ( z ) = 1 1 + e − z , 其 中 z = h ( x ) = θ X T + b Sigmoid(z)=\frac{1}{1+e^{-z}},其中 z=h(x)=θX^T+b Sigmoid(z)=1+e−z1,其中z=h(x)=θXT+b
此时令 h ( x ) = 1 1 + e − ( θ X T + b ) , 导 数 为 h ′ ( x ) = h ( x ) ( 1 − h ( x ) ) h(x) = \frac{1}{1+e^{-(θX^T+b)}},导数为 h'(x)=h(x)(1-h(x)) h(x)=1+e−(θXT+b)1,导数为h′(x)=h(x)(1−h(x))
则此时的 h ( x ) h(x) h(x) 为模型的判别函数。
-
优化
在优化模型,即最小化损失函数时,因为 h ( x ) h(x) h(x) 值域为 [ 0 , 1 ] [0,1] [0,1] ,所以我们可以把其函数值视为分类时的概率 θ θ θ:
y 0 1 p 1-θ θ p ( y = 1 ∣ x ; θ ) = θ = h ( x ) p(y=1|x;θ) = θ=h(x) p(y=1∣x;θ)=θ=h(x)
p ( y = 0 ∣ x ; θ ) = 1 − θ = 1 − h ( x ) p(y=0|x;θ) = 1-θ=1-h(x) p(y=0∣x;θ)=1−θ=1−h(x)则 p ( y ∣ x ; θ ) = [ h ( x ) ] y [ 1 − h ( x ) ] 1 − y p(y|x;θ)=[h(x)]^y[1-h(x)]^{1-y} p(y∣x;θ)=[h(x)]y[1−h(x)]1−y ,并以此作为损失函数。
优化过程
-
写出似然函数
假设全独立,l ( θ ) = ∏ i = 1 n p ( y i ∣ x i ; θ ) = ∏ i = 1 n [ h ( x ) ] y [ 1 − h ( x ) ] 1 − y l(θ)=\prod_{i=1}^{n}p(y_i|x_i;θ)=\prod_{i=1}^{n}[h(x)]^y[1-h(x)]^{1-y} l(θ)=∏i=1np(yi∣xi;θ)=∏i=1n[h(x)]y[1−h(x)]1−y
-
取对数似然
l ( θ ) = ∑ i = 1 n y l o g ( h ( x ) ) + ( 1 − y ) l o g ( 1 − h ( x ) ) l(θ)=\sum_{i=1}^{n} ylog(h(x))+(1-y)log(1-h(x)) l(θ)=∑i=1nylog(h(x))+(1−y)log(1−h(x))
-
对 θ θ θ 求偏导
已知 h ( x ) = S i g m o i d ( x ) h(x)=Sigmoid(x) h(x)=Sigmoid(x),对函数中各 θ θ θ 求偏导:
∂ L ( θ ) ∂ θ j = ∑ i = 1 n [ y i − h ( x i ) ] x i j \frac{\partial L(θ)}{\partial θ_j}=\sum_{i=1}^{n}[y_i-h(x_i)]x_i^j ∂θj∂L(θ)=∑i=1n[yi−h(xi)]xij
-
梯度下降算法更新 θ θ θ
θ j : = θ j + α ∂ L ( θ ) ∂ θ j = α ∑ i = 1 n [ y i − h ( x i ) ] x i j θ_j:=θ_j+α\frac{\partial L(θ)}{\partial θ_j}=α\sum_{i=1}^{n}[y_i-h(x_i)]x_i^j θj:=θj+α∂θj∂L(θ)=α∑i=1n[yi−h(xi)]xij
-
-
线性表示的角度(Logistic 分布、概率)来看
设 z = θ X T z=θX^T z=θXT
p ( Y = 1 ∣ X ) = e z 1 + e z p(Y=1|X)=\frac{e^z}{1+e^z} p(Y=1∣X)=1+ezez
p ( Y = 0 ∣ X ) = 1 1 + e z p(Y=0|X)=\frac{1}{1+e^z} p(Y=0∣X)=1+ez1∙ \bullet ∙ 一个事件的几率: o p p s = p 1 − p opps=\frac{p}{1-p} opps=1−pp,对数几率: l o g p 1 − p log\frac{p}{1-p} log1−pp
∙ \bullet ∙ 对于 Logistic 回归而言, l o g p ( Y = 1 ∣ X ) 1 − p ( Y = 1 ∣ X ) = z = θ X T log\frac{p(Y=1|X)}{1-p(Y=1|X)}=z=θX^T log1−p(Y=1∣X)p(Y=1∣X)=z=θXT
即输出 Y = 1 Y=1 Y=1 的对数几率是关于输入 X 的线性函数。
z 越大,概率越接近 1;
z 越小,概率越接近 0. -
凸优化的角度来看
若用平方损失代入 Sigmoid 函数,会发现是非凸的。所以可以使用概率角度的极大似然估计进行计算。
- 写出似然函数,取对数似然 → 凸函数;
- 加“负号”,变为代价函数,转为求最小;
- 使用梯度下降。
-
多分类
假设有 3 个类别。
-
one vs. one
两两一组进行二分类,每两类得一条分类决策边界,共得到 6 个概率,取最大。
C1 为区分 蓝色三角 与 红色矩形 的决策边界,可获得某样本所属类别的两个概率 P ( 蓝 色 三 角 ∣ C 1 ) P(蓝色三角 | C1) P(蓝色三角∣C1), P ( 红 色 矩 形 ∣ C 1 ) P(红色矩形 | C1) P(红色矩形∣C1) ;
C2 为区分 蓝色三角 与 绿色圆圈 的决策边界,可获得某样本所属类别的两个概率 P ( 蓝 色 三 角 ∣ C 2 ) P(蓝色三角|C2) P(蓝色三角∣C2), P ( 绿 色 圆 圈 ∣ C 2 ) P(绿色圆圈|C2) P(绿色圆圈∣C2) ;
C3 为区分 红色矩形 与 绿色圆圈 的决策边界,可获得某样本所属类别的两个概率 P ( 红 色 矩 形 ∣ C 3 ) P(红色矩形|C3) P(红色矩形∣C3), P ( 绿 色 圆 圈 ∣ C 3 ) P(绿色圆圈|C3) P(绿色圆圈∣C3) ;
使用优胜者策略,例如绿色比红色的概率大,则只需再比较绿色与蓝色即可。
从以上 6 个概率中选出最大值,即可判定此样本所属类别。 -
one vs. all / rest
将其中一类视为新的类别 A,其他两类视为新类别 B,每一类得到一条属于自己得决策边界,可计算出属于 类别 A 得概率,而 1-P(A) 为属于类别 B 得概率,最终相当于得到 3 个概率,取最大。
C1 为区分 蓝色三角 与 其他形状 的决策边界,可获得某样本所属类别的两个概率 P ( 蓝 色 三 角 ∣ C 1 ) P(蓝色三角|C1) P(蓝色三角∣C1)。
( P ( 其 他 形 状 ∣ C 1 ) = 1 − P ( 蓝 色 三 角 ∣ C 1 ) P(其他形状|C1) = 1 - P(蓝色三角|C1) P(其他形状∣C1)=1−P(蓝色三角∣C1) );C2 为区分 绿色圆圈 与 其他形状 的决策边界,可获得某样本所属类别的两个概率 P ( 绿 色 圆 圈 ∣ C 2 ) P(绿色圆圈|C2) P(绿色圆圈∣C2)。
( P ( 其 他 形 状 ∣ C 2 ) = 1 − P ( 绿 色 圆 圈 ∣ C 2 ) P(其他形状|C2) = 1 - P(绿色圆圈|C2) P(其他形状∣C2)=1−P(绿色圆圈∣C2) );C3 为区分 红色矩形 与 其他形状 的决策边界,可获得某样本所属类别的两个概率 P ( 红 色 矩 形 ∣ C 3 ) P(红色矩形|C3) P(红色矩形∣C3)。
( P ( 其 他 形 状 ∣ C 3 ) = 1 − P ( 红 色 矩 形 ∣ C 3 ) P(其他形状|C3) = 1 - P(红色矩形|C3) P(其他形状∣C3)=1−P(红色矩形∣C3) );从以上 3 个概率 P ( 蓝 色 三 角 ∣ C 1 ) P(蓝色三角|C1) P(蓝色三角∣C1), P ( 绿 色 圆 圈 ∣ C 2 ) P(绿色圆圈|C2) P(绿色圆圈∣C2), P ( 红 色 矩 形 ∣ C 3 ) P(红色矩形|C3) P(红色矩形∣C3)中选出最大值,即可判定此样本所属类别。
-
-
特点与应用
-
优点
(1) 可以输出概率,而非只是 0/1 的判定;
(2) 可解释性强,可控性高;
(3) 训练速度相比其他模型较快,特征工程后效果也不错;
(4) 因为结果可以是概率,所以可以做排序模型;
(5) 向模型中添加特征比较容易;
(6) 值得注意的是,梯度下降是初始值敏感的。 -
应用
(1) CTR预估
(2) 推荐系统的 learning to rank
(3) 多种分类场景
(4) 多种系统的 baseline 版本
-