机器学习04:Logistic 回归(逻辑回归)

机器学习04:Logistic 回归

Logistic 回归是一种分类算法

1 什么是分类?

举个例子:肿瘤有恶性肿瘤和良性肿瘤,根据肿瘤的不同特征,比如说大小,我们可以将肿瘤分为恶性肿瘤和良性肿瘤两类,这就是分类。用0表示良性肿瘤,用1表示恶性肿瘤,那么:
y ∈ { 0 , 1 } y\in\left\{0,1\right\} y{0,1}
在这个分类中,结果只能是0或1,但是假设函数 h θ ( x ) h_\theta(\pmb{x}) hθ(xxx)可能大于1也可能小于0,为了使 h θ ( x ) h_\theta(\pmb{x}) hθ(xxx)保持在 [ 0 , 1 ] \left[0,1\right] [0,1]的范围内,我们引入Logistic 回归的Sigmoid 函数(也可以叫做Logistic 函数)

2 Sigmoid 函数

Sigmoid 函数:
g ( z ) = 1 1 + e − z g(z)=\frac{1}{1+e^{-z}} g(z)=1+ez1
Sigmoid 函数的大致形状如下:
机器学习04:Logistic 回归(逻辑回归)

在线性回归中:
h θ ( x ) = θ T x h_\theta(\pmb{x})=\pmb{\theta^T}\pmb{x} hθ(xxx)=θTθTθTxxx
而在Logistic 回归中:
h θ ( x ) = g ( θ T x ) = 1 1 + e − θ T x h_\theta(\pmb{x})=g(\pmb{\theta^T}\pmb{x})=\frac{1}{1+e^{-\theta^Tx}} hθ(xxx)=g(θTθTθTxxx)=1+eθTx1

假设函数 h θ ( x ) h_\theta(\pmb{x}) hθ(xxx)结果的含义

还是用上面肿瘤的例子,
h θ ( x ) = 恶 性 肿 瘤 发 生 ( 结 果 为 1 ) 的 概 率 h_\theta(\pmb{x})=恶性肿瘤发生(结果为1)的概率 hθ(xxx)=1
假如 h θ ( x ) = 0.6 h_\theta(\pmb{x})=0.6 hθ(xxx)=0.6,那么我们可以认为,病人患恶性肿瘤的概率为0.6.
用概率表示为:
P ( y = 1 ∣ x ; θ ) = 0.6 P(y=1|\pmb{x};\pmb{\theta})=0.6 P(y=1xxx;θθθ)=0.6
并且,
P ( y = 0 ∣ x ; θ ) + P ( y = 1 ∣ x ; θ ) = 1 P ( y = 0 ∣ x ; θ ) = 1 − P ( y = 1 ∣ x ; θ ) P(y=0|\pmb{x};\pmb{\theta})+P(y=1|\pmb{x};\pmb{\theta})=1\\ P(y=0|\pmb{x};\pmb{\theta})=1-P(y=1|\pmb{x};\pmb{\theta}) P(y=0xxx;θθθ)+P(y=1xxx;θθθ)=1P(y=0xxx;θθθ)=1P(y=1xxx;θθθ)

3 决策边界

Logistic 回归中,
h θ ( x ) = g ( θ T x ) g ( z ) = 1 1 + e − z h_\theta(\pmb{x})=g(\pmb{\theta^T}\pmb{x})\\ g(z)=\frac{1}{1+e^{-z}} hθ(xxx)=g(θTθTθTxxx)g(z)=1+ez1
假设 h θ ( x ) > 0.5 h_\theta(\pmb{x})>0.5 hθ(xxx)>0.5时, y = 1 y=1 y=1 h θ ( x ) < 0.5 h_\theta(\pmb{x})<0.5 hθ(xxx)<0.5时, y = 0 y=0 y=0. 等价于 θ T x > 0 \pmb{\theta^T}\pmb{x}>0 θTθTθTxxx>0时, y = 1 y=1 y=1 θ T x < 0 \pmb{\theta^T}\pmb{x}<0 θTθTθTxxx<0时, y = 0 y=0 y=0.

举个例子,假如我们要对下图中的坐标点进行分类,假如 h θ ( x ) = g ( θ 0 + θ 1 x 1 + θ 2 x 2 ) h_\theta(\pmb{x})=g(\theta_0+\theta_1x_1+\theta_2x_2) hθ(xxx)=g(θ0+θ1x1+θ2x2) θ = [ − 3 1 1 ] \pmb{\theta}=\begin{bmatrix}-3\\1\\1\end{bmatrix} θθθ=311(如何求解 θ \pmb{\theta} θθθ,将会在下面介绍)
机器学习04:Logistic 回归(逻辑回归)
那么当 θ T x = − 3 + x 1 + x 2 ≥ 0 \pmb{\theta^T\pmb{x}}=-3+x_1+x_2\ge0 θTxxxθTxxxθTxxx=3+x1+x20时,可以认为 y = 1 y=1 y=1,否则, y = 0 y=0 y=0. 直线 − 3 + x 1 + x 2 = 0 -3+x_1+x_2=0 3+x1+x2=0就是决策边界

对于非线性的决策边界,假如 h θ ( x ) = g ( θ 0 + θ 1 x 1 + θ 2 x 2 + θ 3 x 1 2 + θ 4 x 2 2 ) h_\theta(\pmb{x})=g(\theta_0+\theta_1x_1+\theta_2x_2+\theta_3x_1^2+\theta_4x_2^2) hθ(xxx)=g(θ0+θ1x1+θ2x2+θ3x12+θ4x22) θ = [ − 1 0 0 1 1 ] \pmb{\theta}=\begin{bmatrix}-1\\0\\0\\1\\1\end{bmatrix} θθθ=10011,那么当 θ T x = − 1 + x 1 2 + x 2 2 ≥ 0 \pmb{\theta^T\pmb{x}}=-1+x_1^2+x_2^2\ge0 θTxxxθTxxxθTxxx=1+x12+x220时,可以认为 y = 1 y=1 y=1,否则, y = 0 y=0 y=0. 曲线 − 1 + x 1 2 + x 2 2 = 0 -1+x_1^2+x_2^2=0 1+x12+x22=0就是决策边界
机器学习04:Logistic 回归(逻辑回归)

当然,还会有更复杂的例子,不在一一说明。

4 代价函数

对于一个训练集,有 m m m个样本。 x ∈ [ x 0 x 1 x 2 ⋅ ⋅ ⋅ x n ] x\in\begin{bmatrix}x_0\\x_1\\x_2\\···\\x_n\end{bmatrix} xx0x1x2xn x 0 = 1 x_0=1 x0=1 y ∈ { 0 , 1 } y\in\left\{0,1\right\} y{0,1} h θ ( x ) = 1 1 + e − θ T x h_\theta(x)=\frac{1}{1+e^{-\theta^Tx}} hθ(x)=1+eθTx1,如何确定 θ \pmb{\theta} θθθ,这就要用到代价函数
代价函数:
J ( θ ) = 1 m ∑ i = 1 m C o s t ( h θ ( x ( i ) ) , y ( i ) ) C o s t ( h θ ( x ) , y ) = 1 2 ( h θ ( x ) − y ) 2 J(\theta)=\frac{1}{m}\sum_{i=1}^mCost(h_\theta(x^{(i)}),y^{(i)})\\ Cost(h_\theta(x),y)=\frac{1}{2}(h_\theta(x)-y)^2 J(θ)=m1i=1mCost(hθ(x(i)),y(i))Cost(hθ(x),y)=21(hθ(x)y)2
C o s t ( h θ ( x ) , y ) = { − l o g ( h θ ( x ) ) , y = 1 − l o g ( 1 − h θ ( x ) ) , y = 0 Cost(h_\theta(x),y)=\begin{cases}-log(h_\theta(x)),&y=1\\ -log(1-h_\theta(x)),&y=0\end{cases} Cost(hθ(x),y)={log(hθ(x)),log(1hθ(x)),y=1y=0
则,
J ( θ ) = 1 m ∑ i = 1 m C o s t ( h θ ( x ( i ) ) , y ( i ) ) = − 1 m [ ∑ i = 1 m y ( i ) l o g   h θ ( x ( i ) ) + ( 1 − y ( i ) ) l o g   ( 1 − h θ ( x ( i ) ) ) ] J(\pmb{\theta})=\frac{1}{m}\sum_{i=1}^mCost(h_\theta(x^{(i)}),y^{(i)})\\=-\frac{1}{m}[\sum_{i=1}^my^{(i)}log\,h_\theta(x^{(i)})+(1-y^{(i)})log\,(1-h_\theta(x^{(i)}))] J(θθθ)=m1i=1mCost(hθ(x(i)),y(i))=m1[i=1my(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))]
为了找到合适的 θ \pmb{\theta} θθθ,我们需要 min ⁡ θ   J ( θ ) \min_\theta\,J(\pmb{\theta}) minθJ(θθθ)

5 梯度下降法求解 θ \pmb{\theta} θθθ

R e p e a t : Repeat: Repeat:
θ j : = θ j − α ∂ ∂ θ j J ( θ ) \theta_j:=\theta_j-\alpha\frac{\partial}{\partial\theta_j}J(\theta) θj:=θjαθjJ(θ)
(批处理,同时更新)

上式中:
∂ ∂ θ j J ( θ ) = ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) \frac{\partial}{\partial\theta_j}J(\theta)=\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)} θjJ(θ)=i=1m(hθ(x(i))y(i))xj(i)

6 多分类问题

上面我们所讨论的都是二分类问题,对于多分类的问题,我们可以转换成对多个二分类问题来解决。如下图所示:
机器学习04:Logistic 回归(逻辑回归)
机器学习04:Logistic 回归(逻辑回归)