Skip to content

Stanford机器学习笔记——Logistic Regression

1. Sigmoid ​

线性回归针对的是连续值,逻辑回归则是针对离散的分类问题。如图所示:

需要注意的是,虽然绘图是在二维平面内,但是数据其实是有三个维度:x1,x2 和 y。假设:

fθ(x)=θTx=θ0+θ1x1+θ2x2

则:

y={1if fθ(x)≥00if fθ(x)<0

令:

hθ(x)=g(fθ(x))=g(θTx)=11+e−θTx

如图:

则:

y={1if hθ(x)≥0.50if hθ(x)<0.5

2. Cost Function ​

令:

Cost(hθ(x),y)={−log(hθ(x))if y=1−log(1−hθ(x))if y=0

图像如下:

  • y=1 时
    • 若 hθ(x)=1,则 Cost=0
    • 若 hθ(x)=0,则 Cost→∞
  • y=0 时
    • 若 hθ(x)=1,则 Cost→∞
    • 若 hθ(x)=0,则 Cost=0

将以上两种情况统一起来,可以得到:

Cost(hθ(x),y)=−ylog(hθ(x))−(1−y)log(1−hθ(x))

令:

J(θ)=1m∑i=1mCost(hθ(x(i)),y(i))=−1m∑i=1m[y(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))]

运行梯度下降,即对于 j=0,1,...n:

θj:=θj−α∂∂θjJ(θ)

在只有一个样本的情况下:

∂∂θjJ(θ)=−(y1g(θTx)−(1−y)11−g(θTx))∂∂θjg(θTx)=−(y1g(θTx)−(1−y)11−g(θTx))g(θTx)(1−g(θTx))∂∂θjθTx=−(y(1−g(θTx))−(1−y)g(θTx))xj=(hθ(x)−y)xj

TIP

对于 Sigmoid 函数:

g(z)=11+e−z

由于:

g′(z)=e−z(1+e−z)2=11+e−ze−z1+e−z=g(z)(1−g(z))

因此:

∂∂θjg(θTx)=g(θTx)(1−g(θTx))∂∂θjθTx

因此对于 j=0,1,...n:

θj:=θj−α1m∑i=1m(hθ(x(i))−y(i))xj(i)

与线性回归的形式是一致的。

3. 多类分类 ​

假如一共有 k 类,如果求某个样本属于第 i 类的可能性,则将 i 类作为是 y=1,其它 k−1 类作为是 y=0。因此:

hθ(i)(x)=P(y=i|x;θ)      (i=1,2,...,k)

对于一个样本 x,选取最大的 hθ(i)(x),则该样本属于第 i 类。