回归和分类
- 线性回归的模型是求出输出特征向量Y和输入样本矩阵X之间的线性关系系数𝜃,满足𝐘=𝐗𝜃。此时Y是连续的,所以是回归模型。
- 如果Y是离散的,需要对Y再做一次函数转换,变为𝑔(𝑌)。令𝑔(𝑌)的值在某个实数区间的时候是类别A,在另一个实数区间的时候是类别B,以此类推,就得到了一个分类模型。
- 逻辑回归是分类模型。
- 如果结果的类别只有两种,那么就是一个二元分类模型了。
二元逻辑回归模型
-
函数g在逻辑回归中一般取为sigmoid函数,形式如下: g ( z ) = 1 1 + e − z g(z) = \frac{1}{1+e^{-z}} g(z)=1+e−z1
当z趋于正无穷时,𝑔(𝑧)趋于1,而当z趋于负无穷时,𝑔(𝑧)趋于0
-
令𝑔(𝑧)中的z为:𝑧=𝑥𝜃,这样就得到了二元逻辑回归模型的一般形式: h θ ( x ) = 1 1 + e − x θ h_{\theta}(x) = \frac{1}{1+e^{-x\theta}} hθ(x)=1+e−xθ1
如果ℎ𝜃(𝑥)>0.5 ,即𝑥𝜃>0, 则y为1。如果ℎ𝜃(𝑥)<0.5,即𝑥𝜃<0, 则y为0。y=0.5是临界情况,此时𝑥𝜃=0为。 -
从逻辑回归模型本身无法确定分类。ℎ𝜃(𝑥)的值越小,而分类为0的的概率越高,反之,值越大的话分类为1的的概率越高。如果靠近临界点,则分类准确率会下降。
二元逻辑回归的损失函数
- 假设我们的样本输出是0或1两类。那么我们有: P ( y = 1 ∣ x , θ ) = h θ ( x ) P(y=1|x,\theta ) = h_{\theta}(x) P(y=1∣x,θ)=hθ(x)
P ( y = 0 ∣ x , θ ) = 1 − h θ ( x ) P(y=0|x,\theta ) = 1 - h_{\theta}(x) P(y=0∣x,θ)=1−hθ(x)
- 把这两个式子写成一个式子 P ( y ∣ x , θ ) = h θ ( x ) y ( 1 − h θ ( x ) ) 1 − y P(y|x,\theta ) = h_{\theta}(x)^y(1-h_{\theta}(x))^{1-y} P(y∣x,θ)=hθ(x)y(1−hθ(x))1−y
- 用似然函数最大化来求解模型系数 L ( θ ) = ∏ i = 1 m ( h θ ( x ( i ) ) ) y ( i ) ( 1 − h θ ( x ( i ) ) ) 1 − y ( i ) L(\theta) = \prod\limits_{i=1}^{m}(h_{\theta}(x^{(i)}))^{y^{(i)}}(1-h_{\theta}(x^{(i)}))^{1-y^{(i)}} L(θ)=i=1∏m(hθ(x(i)))y(i)(1−hθ(x(i)))1−y(i)
- 对似然函数取对数后取反的表达式,即损失函数 J ( θ ) = − l n L ( θ ) = − ∑ i = 1 m ( y ( i ) l o g ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) l o g ( 1 − h θ ( x ( i ) ) ) ) J(\theta) = -lnL(\theta) = -\sum\limits_{i=1}^{m}(y^{(i)}log(h_{\theta}(x^{(i)}))+ (1-y^{(i)})log(1-h_{\theta}(x^{(i)}))) J(θ)=−lnL(θ)=−i=1∑m(y(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x(i))))
损失函数的优化
- 对于二元逻辑回归的损失函数极小化,常见的有梯度下降法,坐标轴下降法,等牛顿法等。
J ( θ ) = − Y T l o g h θ ( X ) − ( E − Y ) T l o g ( E − h θ ( X ) ) J(\theta) = -Y^T logh_{\theta}(X) - (E-Y)^T log(E-h_{\theta}(X)) J(θ)=−YTloghθ(X)−(E−Y)Tlog(E−hθ(X)) - 我们用𝐽(𝜃)对𝜃向量求导: ∂ ∂ θ J ( θ ) = X T ( h θ ( X ) − Y ) \frac{\partial}{\partial\theta}J(\theta) = X^T(h_{\theta}(X) - Y ) ∂θ∂J(θ)=XT(hθ(X)−Y)
- 在梯度下降法中向量𝜃的迭代公式:
θ
=
θ
−
α
X
T
(
h
θ
(
X
)
−
Y
)
\theta = \theta - \alpha X^T(h_{\theta}(X) - Y )
θ=θ−αXT(hθ(X)−Y)
𝛼为梯度下降法的步长。
二元逻辑回归的正则化
- 逻辑回归的L1正则化损失函数的优化方法常用的有坐标轴下降法和最小角回归法。
J ( θ ) = − ∑ i = 1 m ( y ( i ) l o g ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) l o g ( 1 − h θ ( x ( i ) ) ) ) + α ∣ ∣ θ ∣ ∣ 1 J(\theta) = -\sum\limits_{i=1}^{m}(y^{(i)}log(h_{\theta}(x^{(i)}))+ (1-y^{(i)})log(1-h_{\theta}(x^{(i)})))+\alpha ||\theta||_1 J(θ)=−i=1∑m(y(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x(i))))+α∣∣θ∣∣1 - 逻辑回归的L2正则化损失函数的优化方法和普通的逻辑回归类似。
J ( θ ) = − ∑ i = 1 m ( y ( i ) l o g ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) l o g ( 1 − h θ ( x ( i ) ) ) ) + 1 2 α ∣ ∣ θ ∣ ∣ 2 2 J(\theta) = -\sum\limits_{i=1}^{m}(y^{(i)}log(h_{\theta}(x^{(i)}))+ (1-y^{(i)})log(1-h_{\theta}(x^{(i)})))+\frac{1}{2}\alpha||\theta||_2^2 J(θ)=−i=1∑m(y(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x(i))))+21α∣∣θ∣∣22
多元逻辑回归
- 二元逻辑回归的模型和损失函数很容易推广到多元逻辑回归。
- OvR(one-vs-rest), 总是认为某种类型为正值,其余为0值。
- MvM(Many-vs-Many),它会选择一部分类别的样本和另一部分类别的样本来做逻辑回归二分类。
- 最常用的是OvO(One-Vs-One)。OvO是MvM的特例,每次我们选择两类样本来做二元逻辑回归。
二元逻辑回归
-
P ( y = 1 ∣ x , θ ) = h θ ( x ) = 1 1 + e − x θ = e x θ 1 + e x θ P(y=1|x,\theta ) = h_{\theta}(x) = \frac{1}{1+e^{-x\theta}} = \frac{e^{x\theta}}{1+e^{x\theta}} P(y=1∣x,θ)=hθ(x)=1+e−xθ1=1+exθexθ
P ( y = 0 ∣ x , θ ) = 1 − h θ ( x ) = 1 1 + e x θ P(y=0|x,\theta ) = 1- h_{\theta}(x) = \frac{1}{1+e^{x\theta}} P(y=0∣x,θ)=1−hθ(x)=1+exθ1
⇒ l n P ( y = 1 ∣ x , θ ) P ( y = 0 ∣ x , θ ) = x θ \Rightarrow ln\frac{P(y=1|x,\theta )}{P(y=0|x,\theta)} = x\theta ⇒lnP(y=0∣x,θ)P(y=1∣x,θ)=xθ
推广到多元逻辑回归
-
假设是K元分类模型,即样本输出y的取值为1,2,。。。,K。根据二元逻辑回归的经验,有:
l n P ( y = 1 ∣ x , θ ) P ( y = K ∣ x , θ ) = x θ 1 ln\frac{P(y=1|x,\theta )}{P(y=K|x,\theta)} = x\theta_1 lnP(y=K∣x,θ)P(y=1∣x,θ)=xθ1
l n P ( y = 2 ∣ x , θ ) P ( y = K ∣ x , θ ) = x θ 2 ln\frac{P(y=2|x,\theta )}{P(y=K|x,\theta)} = x\theta_2 lnP(y=K∣x,θ)P(y=2∣x,θ)=xθ2
…
l n P ( y = K − 1 ∣ x , θ ) P ( y = K ∣ x , θ ) = x θ K − 1 ln\frac{P(y=K-1|x,\theta )}{P(y=K|x,\theta)} = x\theta_{K-1} lnP(y=K∣x,θ)P(y=K−1∣x,θ)=xθK−1
-
又有:
∑ i = 1 K P ( y = i ∣ x , θ ) = 1 \sum\limits_{i=1}^{K}P(y=i|x,\theta ) = 1 i=1∑KP(y=i∣x,θ)=1
-
⇒ P ( y = k ∣ x , θ ) = e x θ k / 1 + ∑ t = 1 K − 1 e x θ t k = 1 , 2 , . . . K − 1 \Rightarrow P(y=k|x,\theta ) = e^{x\theta_k} \bigg/ 1+\sum\limits_{t=1}^{K-1}e^{x\theta_t}\;\;k = 1,2,...K-1 ⇒P(y=k∣x,θ)=exθk/1+t=1∑K−1exθtk=1,2,...K−1
P ( y = K ∣ x , θ ) = 1 / 1 + ∑ t = 1 K − 1 e x θ t P(y=K|x,\theta ) = 1/ 1+\sum\limits_{t=1}^{K-1}e^{x\theta_t} P(y=K∣x,θ)=1/1+t=1∑K−1exθt -
最大似然法获取损失函数,梯度下降。