吴恩达机器学习第二周笔记(带编程作业代码)

逻辑回归

分类问题

参考吴恩达机器学习视频: 6 - 1 - Classification (8 min).mkv
在分类问题中,你要预测的变量吴恩达机器学习第二周笔记(带编程作业代码)是离散的值,我们将学习一种叫做逻辑回归 (Logistic Regression) 的算法,这是目前最流行使用最广泛的一种学习算法。

在分类问题中,我们尝试预测的是结果是否属于某一个类(例如正确或错误)。分类问题的例子有:判断一封电子邮件是否是垃圾邮件;判断一次金融交易是否是欺诈;之前我们也谈到了肿瘤分类问题的例子,区别一个肿瘤是恶性的还是良性的。

吴恩达机器学习第二周笔记(带编程作业代码)

我们从二元的分类问题开始讨论。

我们将因变量(dependent variable)可能属于的两个类分别称为负向类(negative class)和正向类(positive class),则因变量 吴恩达机器学习第二周笔记(带编程作业代码) ,其中 0 表示负向类,1 表示正向类。

我们在接下来的要研究的算法就叫做逻辑回归算法,这个算法的性质是:它的输出值永远在0到 1 之间。

顺便说一下,逻辑回归算法是分类算法,我们将它作为分类算法使用。有时候可能因为这个算法的名字中出现了“回归”使你感到困惑,但逻辑回归算法实际上是一种分类算法,它适用于标签[公式] 取值离散的情况,如:1 0 0 1。

模型函数选择

回顾在一开始提到的乳腺癌分类问题,我们可以用线性回归的方法求出适合数据的一条直线:
吴恩达机器学习第二周笔记(带编程作业代码)
根据线性回归模型我们只能预测连续的值,然而对于分类问题,我们需要输出0或1,我们可以预测:
吴恩达机器学习第二周笔记(带编程作业代码)
对于上图所示的数据,这样的一个线性模型似乎能很好地完成分类任务。假使我们又观测到一个非常大尺寸的恶性肿瘤,将其作为实例加入到我们的训练集中来,这将使得我们获得一条新的直线。
吴恩达机器学习第二周笔记(带编程作业代码)
吴恩达机器学习第二周笔记(带编程作业代码)
吴恩达机器学习第二周笔记(带编程作业代码)
吴恩达机器学习第二周笔记(带编程作业代码)

判定边界

参考吴恩达机器学习视频: 6 - 3 - Decision Boundary (15 min).mkv
吴恩达机器学习第二周笔记(带编程作业代码)
即:
吴恩达机器学习第二周笔记(带编程作业代码)

代价函数

参考吴恩达机器学习视频: 6 - 4 - Cost Function (11 min).mkv
根据之前线性回归的代价函数,理论上来说,我们也可以对逻辑回归模型沿用这个定义。但是问题在于,当我们将 吴恩达机器学习第二周笔记(带编程作业代码)带入到这样定义了的代价函数中时,我们得到的代价函数将是一个非凸函数(non-convexfunction)。
如图:
吴恩达机器学习第二周笔记(带编程作业代码)
这意味着我们的代价函数有许多局部最小值,这将影响梯度下降算法寻找全局最小值。
吴恩达机器学习第二周笔记(带编程作业代码)
吴恩达机器学习第二周笔记(带编程作业代码)
其中吴恩达机器学习第二周笔记(带编程作业代码)

简化的代价函数(非常重要)

吴恩达机器学习第二周笔记(带编程作业代码)
吴恩达机器学习第二周笔记(带编程作业代码)
吴恩达机器学习第二周笔记(带编程作业代码)
吴恩达机器学习第二周笔记(带编程作业代码)
吴恩达机器学习第二周笔记(带编程作业代码)
吴恩达机器学习第二周笔记(带编程作业代码)