机器学习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)=11+e−z
g(z)=\frac{1}{1+e^{-z}}
g(z)=1+e−z1
Sigmoid 函数的大致形状如下:
在线性回归中:
hθ(x)=θTx
h_\theta(\pmb{x})=\pmb{\theta^T}\pmb{x}
hθ(xxx)=θTθTθTxxx
而在Logistic 回归中:
hθ(x)=g(θTx)=11+e−θTx
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.6h_\theta(\pmb{x})=0.6hθ(xxx)=0.6,那么我们可以认为,病人患恶性肿瘤的概率为0.6.
用概率表示为:
P(y=1∣x;θ)=0.6
P(y=1|\pmb{x};\pmb{\theta})=0.6
P(y=1∣xxx;θθθ)=0.6
并且,
P(y=0∣x;θ)+P(y=1∣x;θ)=1P(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=0∣xxx;θθθ)+P(y=1∣xxx;θθθ)=1P(y=0∣xxx;θθθ)=1−P(y=1∣xxx;θθθ)
3 决策边界
在Logistic 回归中,
hθ(x)=g(θTx)g(z)=11+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+e−z1
假设hθ(x)>0.5h_\theta(\pmb{x})>0.5hθ(xxx)>0.5时,y=1y=1y=1;hθ(x)<0.5h_\theta(\pmb{x})<0.5hθ(xxx)<0.5时,y=0y=0y=0. 等价于θTx>0\pmb{\theta^T}\pmb{x}>0θTθTθTxxx>0时,y=1y=1y=1;θTx<0\pmb{\theta^T}\pmb{x}<0θTθTθTxxx<0时,y=0y=0y=0.
举个例子,假如我们要对下图中的坐标点进行分类,假如hθ(x)=g(θ0+θ1x1+θ2x2)h_\theta(\pmb{x})=g(\theta_0+\theta_1x_1+\theta_2x_2)hθ(xxx)=g(θ0+θ1x1+θ2x2),θ=[−311]\pmb{\theta}=\begin{bmatrix}-3\\1\\1\end{bmatrix}θθθ=⎣⎡−311⎦⎤(如何求解θ\pmb{\theta}θθθ,将会在下面介绍)
那么当θTx=−3+x1+x2≥0\pmb{\theta^T\pmb{x}}=-3+x_1+x_2\ge0θTxxxθTxxxθTxxx=−3+x1+x2≥0时,可以认为y=1y=1y=1,否则,y=0y=0y=0. 直线−3+x1+x2=0-3+x_1+x_2=0−3+x1+x2=0就是决策边界。
对于非线性的决策边界,假如hθ(x)=g(θ0+θ1x1+θ2x2+θ3x12+θ4x22)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),θ=[−10011]\pmb{\theta}=\begin{bmatrix}-1\\0\\0\\1\\1\end{bmatrix}θθθ=⎣⎢⎢⎢⎢⎡−10011⎦⎥⎥⎥⎥⎤,那么当θTx=−1+x12+x22≥0\pmb{\theta^T\pmb{x}}=-1+x_1^2+x_2^2\ge0θTxxxθTxxxθTxxx=−1+x12+x22≥0时,可以认为y=1y=1y=1,否则,y=0y=0y=0. 曲线−1+x12+x22=0-1+x_1^2+x_2^2=0−1+x12+x22=0就是决策边界。
当然,还会有更复杂的例子,不在一一说明。
4 代价函数
对于一个训练集,有mmm个样本。x∈[x0x1x2⋅⋅⋅xn]x\in\begin{bmatrix}x_0\\x_1\\x_2\\···\\x_n\end{bmatrix}x∈⎣⎢⎢⎢⎢⎡x0x1x2⋅⋅⋅xn⎦⎥⎥⎥⎥⎤,x0=1x_0=1x0=1,y∈{0,1}y\in\left\{0,1\right\}y∈{0,1},hθ(x)=11+e−θTxh_\theta(x)=\frac{1}{1+e^{-\theta^Tx}}hθ(x)=1+e−θTx1,如何确定θ\pmb{\theta}θθθ,这就要用到代价函数。
代价函数:
J(θ)=1m∑i=1mCost(hθ(x(i)),y(i))Cost(hθ(x),y)=12(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=1∑mCost(hθ(x(i)),y(i))Cost(hθ(x),y)=21(hθ(x)−y)2
Cost(hθ(x),y)={−log(hθ(x)),y=1−log(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(1−hθ(x)),y=1y=0
则,
J(θ)=1m∑i=1mCost(hθ(x(i)),y(i))=−1m[∑i=1my(i)log hθ(x(i))+(1−y(i))log (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=1∑mCost(hθ(x(i)),y(i))=−m1[i=1∑my(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))]
为了找到合适的θ\pmb{\theta}θθθ,我们需要minθ J(θ)\min_\theta\,J(\pmb{\theta})minθJ(θθθ)
5 梯度下降法求解 θ\pmb{\theta}θθθ
Repeat:Repeat:Repeat:
θj:=θj−α∂∂θjJ(θ)\theta_j:=\theta_j-\alpha\frac{\partial}{\partial\theta_j}J(\theta)θj:=θj−α∂θj∂J(θ)
(批处理,同时更新)
上式中:
∂∂θjJ(θ)=∑i=1m(hθ(x(i))−y(i))xj(i)
\frac{\partial}{\partial\theta_j}J(\theta)=\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}
∂θj∂J(θ)=i=1∑m(hθ(x(i))−y(i))xj(i)
6 多分类问题
上面我们所讨论的都是二分类问题,对于多分类的问题,我们可以转换成对多个二分类问题来解决。如下图所示: