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(θ) 增加了一个正则项 λ∑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 那项过拟合。
对于正规方程中,