吴恩达MachineLearning-Week3
原笔记网址:https://scruel.gitee.io/ml-andrewng-notes/week1.html
红色字体为自己的标注、绿色字体为自己的感想。
目录
- 6.1 分类(Classification)
- 6.2 假设函数表示(Hypothesis Representation)
- 6.3 决策边界(Decision Boundary)
- 6.4 代价函数(Cost Function)
- 6.5 简化的成本函数和梯度下降(Simplified Cost Function and Gradient Descent)
- 6.6 进阶优化(Advanced Optimization)
- 6.7 多类别分类: 一对多(Multiclass Classification: One-vs-all)
- 7.1 过拟合问题(The Problem of Overfitting)
- 7.2 代价函数(Cost Function)
- 7.3 线性回归正则化(Regularized Linear Regression)
- 7.4 逻辑回归正则化(Regularized Logistic Regression)
6 逻辑回归(Logistic Regression)
6.1 分类(Classification)
在分类问题中,预测的结果是离散值(结果是否属于某一类),逻辑回归算法(Logistic Regression)被用于解决这类分类问题。
- 垃圾邮件判断
- 金融欺诈判断
- 肿瘤诊断
讨论肿瘤诊断问题:
7.4 逻辑回归正则化(Regularized Logistic Regression)
6 逻辑回归(Logistic Regression)
6.1 分类(Classification)
回顾一下,在监督学习中,有两种问题解决类型,分别是:回归与分类。对于结果为连续值的,我们使用回归算法。对于结果为离散型的,我们使用分类方法。
在分类问题中,预测的结果是离散值(结果是否属于某一类),逻辑回归算法(Logistic Regression)被用于解决这类分类问题。
- 垃圾邮件判断
- 金融欺诈判断
- 肿瘤诊断
我们不妨用肿瘤诊断举例,假设用线性回归的方法进行预测。用一条直线将y值划分。当y大于等于a时,y值为1;当y小于a时,y值为0.(0<=a<=1)可以发现,根本无法模拟得到理想的结果。因此,对于离散y值,我们不能采用线性回归的方法,于是考虑引入新的概念:分类。
区别于线性回归算法,逻辑回归算法是一个分类算法,其输出值永远在 0 到 1 之间。虽然名字中有回归两字,但那只是历史原因,仍然属于分类算法。
6.2 假设函数表示(Hypothesis Representation)
6.3 决策边界(Decision Boundary)
决策边界的概念,可帮助我们更好地理解逻辑回归模型的拟合原理。
回忆一下 sigmoid 函数的图像:
当然,通过一些更为复杂的多项式,还能拟合那些图像显得非常怪异的数据,使得决策边界形似碗状、爱心状等等。
简单来说,决策边界就是分类的分界线,分类现在实际就由 z(中的)决定啦。
记住:不是通过训练集得到的决策边界。而是通过训练集拟合得到,再由
得到的决策边界。
我们只要让的方程等于零,就可以计算得到决策边界。但是要注意边界的哪个方向得到y=1,哪个方向又是y=0,不要弄混。
6.4 代价函数(Cost Function)
那我们怎么知道决策边界是什么样?多少时能很好的拟合数据?当然,见招拆招,总要来个
。
回忆线性回归中的平方损失函数,其是一个二次凸函数(碗状),二次凸函数的重要性质是只有一个局部最小点即全局最小点。而上图中有许多局部最小点,这样将使得梯度下降算法无法确定收敛点是全局最优(由于分类方法中h(x)是一个较复杂的函数,而非线性回归中的线性函数)。
如果令此处的损失函数是一个凸函数,则可以只有一个局部最小点即全局最小点,从而最优化。这类讨论凸函数最优值的问题,被称为凸优化问题(Convex optimization)。
当然,损失函数不止平方损失函数一种。
对于逻辑回归,更换平方损失函数为对数损失函数,可由统计学中的最大似然估计方法推出代价函数 :
如左图,当训练集的结果为y=1(正样本)时,随着假设函数趋向于1,代价函数的值会趋于0,即意味着拟合程度很好。如果假设函数此时趋于0,则会给出一个很高的代价,拟合程度差,算法会根据其迅速纠正值,右图y=0同理。
区别于平方损失函数,对数损失函数也是一个凸函数,但没有局部最优值。
6.5 简化的成本函数和梯度下降(Simplified Cost Function and Gradient Descent)
由于懒得分类讨论,对于二元分类问题,我们可把代价函数简化为一个函数: