6.1 离散分类问题

线性回归算法不适用分类问题。

6.2 假设表示(方程)

逻辑函数(sigmoid函数): g ( z ) = 1 1 + e − z g(z)={1\over 1+e^{-z}} g(z)=1+ez1
逻辑回归假设函数:
h θ ( x ) = g ( Θ T x ) = 1 1 + e − Θ T x h_\theta(x)=g(\Theta^Tx)={1\over 1+e^{-\Theta^Tx}} hθ(x)=g(ΘTx)=1+eΘTx1
《machine learning》6逻辑回归

h(x)指的是在给定参数 Θ \Theta Θ的前提下,y=1(患病)的概率
条件概率:
h θ ( x ) = P ( y = 1 ∣ x ; Θ ) h_\theta(x)=P(y=1|x;\Theta) hθ(x)=P(y=1x;Θ)
《machine learning》6逻辑回归

6.3 判定界限

若果 h ( x ) > = 0.5 h(x)>=0.5 h(x)>=0.5,判定会患病即" y = 1 y=1 y=1"
反之 h ( x ) < 0.5 h(x)<0.5 h(x)<0.5,判定不会患病即" y = 0 y=0 y=0"
又因为 h θ ( x ) = g ( Θ T x ) = 1 1 + e − Θ T x h_\theta(x)=g(\Theta^Tx)={1\over 1+e^{-\Theta^Tx}} hθ(x)=g(ΘTx)=1+eΘTx1。由图像可知:
Θ T x > 0 \Theta^Tx>0 ΘTx>0时, h θ ( x ) = g ( Θ T x ) > 0.5 h_\theta(x)=g(\Theta^Tx)>0.5 hθ(x)=g(ΘTx)>0.5
Θ T x < 0 \Theta^Tx<0 ΘTx<0时, h θ ( x ) = g ( Θ T x ) < 0.5 h_\theta(x)=g(\Theta^Tx)<0.5 hθ(x)=g(ΘTx)<0.5

《machine learning》6逻辑回归
假设函数: h θ ( x ) = g ( θ 0 + θ 1 x 1 + θ 2 x 2 ) h_\theta(x)=g(\theta_0+\theta_1x_1+\theta_2x_2) hθ(x)=g(θ0+θ1x1+θ2x2)
判定界限: Θ T x = 0 = θ 0 + θ 1 x 1 + θ 2 x 2 \Theta^Tx=0=\theta_0+\theta_1x_1+\theta_2x_2 ΘTx=0=θ0+θ1x1+θ2x2
下面的例子中判定界限: − 3 + x 1 + x 2 = 0 -3+x_1+x_2=0 3+x1+x2=0
《machine learning》6逻辑回归
通过构造高次多项式的判定边界函数可以获得复杂的判定边界:
《machine learning》6逻辑回归

6.4 损失函数

如果直接用线性回归中的损失函数,其中的
h ( x ) − y = g ( Θ T x ) − y = 1 1 + e − Θ T x − y h(x)-y=g(\Theta^Tx)-y={1\over 1+e^{-\Theta^Tx}-y} h(x)y=g(ΘTx)y=1+eΘTxy1
该损失函数不是凸函数,有很多局部最优解。不适用于逻辑回归。
《machine learning》6逻辑回归
使用对数函数作为损失函数。
下图所示将患病y=1作为预测前提,损失函数为 C o s t ( h θ ( x ) , y ) = − l o g ( h θ ( x ) ) Cost(h_\theta(x),y)=-log(h_\theta(x)) Cost(hθ(x),y)=log(hθ(x))。损失函数值越大,证明预测错了,其实是没患病,损失函数值很小,证明预测正确,确实患病了。
《machine learning》6逻辑回归
下图所示将没患病y=0预测前提,损失函数为 C o s t ( h θ ( x ) , y ) = − l o g ( 1 − h θ ( x ) ) Cost(h_\theta(x),y)=-log(1-h_\theta(x)) Cost(hθ(x),y)=log(1hθ(x))。损失函数值越大,证明预测错了,其实是患病了,损失函数值很小,证明预测正确,确实没患病。
《machine learning》6逻辑回归

6.5 简化损失函数并求梯度

用一个函数表示y=1和y=0的两种情况:
C o s t ( h θ ( x ) , y ) = − y l o g ( h θ ( x ) ) − ( 1 − y ) l o g ( 1 − h θ ( x ) ) Cost(h_\theta(x),y)=-ylog(h_\theta(x))-(1-y)log(1-h_\theta(x)) Cost(hθ(x),y)=ylog(hθ(x))(1y)log(1hθ(x))
《machine learning》6逻辑回归
损失函数:
J ( Θ ) = − 1 m ∑ i = 1 m [ l o g h θ ( x ( i ) ) + ( 1 − y i ) l o g ( 1 − h θ ( x ( i ) ) ) ] J(\Theta)=-{1\over m}\sum^m_{i=1}[logh_\theta(x^{(i)})+(1-y^{i})log(1-h_\theta(x^{(i)}))] J(Θ)=m1i=1m[loghθ(x(i))+(1yi)log(1hθ(x(i)))]
优化函数:求偏导数推得梯度函数:
θ j : = θ j − α ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x ( i ) = θ j − α ∑ i = 1 m ( 1 1 + e − Θ T x − y ( i ) ) x ( i ) \theta_j:=\theta_j-\alpha\sum^m_{i=1}(h_\theta(x^{(i)})-y^{(i)})x^{(i)}=\theta_j-\alpha\sum^m_{i=1}({1\over 1+e^{-\Theta^Tx}}-y^{(i)})x^{(i)} θj:=θjαi=1m(hθ(x(i))y(i))x(i)=θjαi=1m(1+eΘTx1y(i))x(i)
= θ j − α ∑ i = 1 m ( 1 1 + e − ( θ 0 + θ 1 x 1 + θ 2 ( x 2 ) 2 + ⋯ + ) − y ( i ) ) x ( i ) =\theta_j-\alpha\sum^m_{i=1}({1\over 1+e^{-(\theta_0+\theta_1x_1+\theta_2(x_2)^2+\cdots+)}}-y^{(i)})x^{(i)} =θjαi=1m(1+e(θ0+θ1x1+θ2(x2)2++)1y(i))x(i)
《machine learning》6逻辑回归

6.6 高级优化函数

高级优化函数:

  • 共轭梯度法
  • BFGS
  • L-BFGS
    优点:
  • 不需要手动选择学习率 α \alpha α
  • 收敛速度远远快于梯度下降
    缺点:
  • 更复杂

逻辑回归解决多类别分类问题

构造 C n 2 C^2_n Cn2个伪两类别分类问题
《machine learning》6逻辑回归
《machine learning》6逻辑回归

相关文章: