6.1 分类问题
https://www.bilibili.com/video/BV164411b7dx?p=32
在这个以及接下来的几个章节中,开始介绍分类问题。
在分类问题中,你要预测的变量是离散的值,我们将学习一种叫做逻辑回归 (Logistic Regression) 的算法,这是目前最流行使用最广泛的一种学习算法。
在分类问题中,我们尝试预测的是结果是否属于某一个类(例如正确或错误)。分类问题的例子有:判断一封电子邮件是否是垃圾邮件;判断一次金融交易是否是欺诈;之前我们也谈到了肿瘤分类问题的例子,区别一个肿瘤是恶性的还是良性的。当然也会存在多元的分类问题,例如1,2,3,4…
我们先从二元的分类问题开始讨论。
我们将因变量(dependent variable)可能属于的两个类分别称为负向类(negative class)和正向类(positive class),则因变量 ,其中 0 表示负向类,1 表示正向类。
我们尝试使用回归算法去解决分类问题,当在左边八个实例的情况下,似乎能够找到一条合适的回归线,令
hθ(x)=0.5,将两部分分开,大于0.5则预测为1,小于0.5则预测为0,看似非常合理
但一旦出现最右边的案例,当回归线从粉色到蓝色,那么依旧使用hθ(x)=0.5就非常不合理了
所以,不能使用回归算法来解决分类问题
另一方面,如果我们要用线性回归算法来解决一个分类问题,对于分类,取值为 0 或者1,但如果你使用的是线性回归,那么假设函数的输出值可能远大于 1,或者远小于 0,即使所有训练样本的标签都等于 0 或 1。尽管我们知道标签应该取值0 或者1,但是如果算法得到的值远大于1或者远小于0的话,就会感觉很奇怪。所以我们在接下来的要研究的算法就叫做逻辑回归算法,这个算法的性质是:它的输出值永远在0到 1 之间。
顺便说一下,逻辑回归算法是分类算法,我们将它作为分类算法使用。有时候可能因为这个算法的名字中出现了“回归”使你感到困惑,但逻辑回归算法实际上是一种分类算法,它适用于标签取值离散的情况,如:1 0 0 1。
在接下来的章节中,我们将开始学习逻辑回归算法的细节。
6.2 假说表示
https://www.bilibili.com/video/BV164411b7dx?p=33
在这节中,我要给你展示假设函数的表达式,也就是说,在分类问题中,要用什么样的函数来表示我们的假设。此前我们说过,希望我们的分类器的输出值在0和1之间,因此,我们希望想出一个满足某个性质的假设函数,这个性质是它的预测值要在0和1之间。
回顾在一开始提到的乳腺癌分类问题,我们可以用线性回归的方法求出适合数据的一条直线:
根据线性回归模型我们只能预测连续的值,然而对于分类问题,我们需要输出0或1,我们可以预测:
对于上图所示的数据,这样的一个线性模型似乎能很好地完成分类任务。假使我们又观测到一个非常大尺寸的恶性肿瘤,将其作为实例加入到我们的训练集中来,这将使得我们获得一条新的直线。
这时,再使用0.5作为阀值来预测肿瘤是良性还是恶性便不合适了。可以看出,线性回归模型,因为其预测的值可以超越[0,1]的范围,并不适合解决这样的问题。
我们引入一个新的模型,逻辑回归,该模型的输出变量范围始终在0和1之间。 逻辑回归模型的假设是:
X 代表特征向量
g 代表逻辑函数**(logistic function)是一个常用的逻辑函数为S形函数(Sigmoid function)**
公式为:
python代码实现:
import numpy as np
def sigmoid(z):
return 1 / (1 + np.exp(-z))
该函数的图像为:
合起来,我们得到逻辑回归模型的假设:
对模型的理解:
hθ( )的作用是,对于给定的输入变量,根据选择的参数计算输出变量=1的可能性**(estimated probablity)**
即例如 hθ(x) = P(y =1 | x ; θ),如果对于给定的x,通过已经确定的参数计算得出hθ(x)=0.7,则表示有70%的几率y为正向类,相应地y为负向类的几率为1-0.7=0.3。
6.3 判定边界
https://www.bilibili.com/video/BV164411b7dx?p=34
现在讲下决策边界(decision boundary)的概念。这个概念能更好地帮助我们理解逻辑回归的假设函数在计算什么。