Third week of machine learning on Coursera
@(Coursera)
Classification
Logistic Regression Model其实是个分类算法,逻辑回归的假设函数其实是线性模型的基础上加上了个sigmod()函数:
hθ(x)=g(θTx)
g(z)=11+e−z,表示sigmoid函数.
Descision Boundary(决策边界)
Sigmoid()函数图像为:

- 当z≥0时,g(z)≥0.5,判定为1;
- 当z≤0时,g(z)<0.5,判定为0;
所以当θTx≥0,hθ(x)=1.
此时令θTx=0,得到的图形就是训练集的决策边界。

例如,如上图中得到的直线x1+x2=3就是训练集的决策边界。
线性模型如上篇博客所述《second week》,它的假设函数和损失函数分别为
hθ(x)=θTX
J(θ)=12m∑i=1m(hθ(x(i))−y(i))2
对线性模型求解最优的θ从而保证损失函数最小的方法是通过损失函数对每个θj求梯度,不断的更新θj,从而使得损失函数到达全局最优点。即梯度下降法。
备注:今天在回顾梯度下降法的时候,发现有个概念理解不对,求解损失函数的最小值时,为什么不能直接通过损失函数对θ求导=0,来求解Jθ的最小值呢?因为损失函数对θ的导数一定可以求出来,但是令导数为0时,θ的解却不一定可以求出来。所以也是为什么使用梯度下降法的原因,通过多次迭代使得损失函数逐渐逼近最小值。
Logistic Regression的假设函数:
hθ(x)=11+e−θTx
由于逻辑回归是个分类算法,它的假设函数值表示的是对应某个类的概率。
h(i)θ(x)=P(y=i | x;θ), 二分类问题中i=1,2
它的损失函数不同于线性模型选择的均方损失函数(最小二乘法),而是选择的是log对数损失函数。
注:关于损失函数的讲解请看这篇博客机器学习-损失函数
损失函数:
J(θ)=1m∑i=1mCost(hθ(xi),y(i))
Cost(hθ(x),y)={−log(hθ(x)),y=1;−log(1−hθ(x)),y=0;
上面两式结合得:
Cost=−ylog(hθ(x))−(1−y)log(1−hθ(x))
J(θ)=1m∑i=1m(−ylog(hθ(x))−(1−y)log(1−hθ(x)))
为了使J(θ)最小,重复:
θj:θj−α∂∂θjJ(θ)=1m∑i=1m(hθ(x(i))−y(i))x(i)j
注:J(θ)对θ的求导我本人没有求解出来,看视频AndrewNg直接得出结论了。
解决过拟合:
1、减少特征数量
- 手动选择需要保留的特征;
- 模型选择算法;
2、正则化
- 保留所有的特征,但是减小参数θj的数量级;
- 当我们有很多特征,每一个都对预测y值有用时,选择正则化;
Regularized linear regression
J(θ)=12m[∑i=1m(hθ(x(i))−y(i))2+λ∑j=1nθ2j]
上述损失函数J(θ)增加了一个正则项λ∑nj=1θ2j,注意这里的j从1,...,n.
所以对应梯度下降迭代:
θ0:θ0−α1m∑i=1m(hθ(x(i))−y(i))x(i)0
θj:=θj−α[1m∑i=1m(hθ(x(i))−y(i))x(i)j+λmθj]=θj(1−αλm)−α1m∑i=1m(hθ(x(i))−y(i))x(i)j
上述1−αλm<1,依次来减小θj的值,避免θj那项过拟合。
对于正规方程中,