【Machine Learning, Coursera】机器学习Week3 Logistic Regression

Logistic Regression

Logistic regression is a method for classifying data into discrete outcomes.
逻辑回归将数据归类为离散的结果并输出


Example: Predict whether a tumor is malignant or not.
Training set { ( x ( 1 ) , y ( 1 ) ) , ( x ( 2 ) , y ( 2 ) ) , . . . , ( x ( m ) , y ( m ) ) }
x=Tumor size
y=Malignant tumor or benign tumor( y { 0 , 1 } )


1. Classification

逻辑回归虽然名为“回归”,但它解决的其实是分类问题。以下面的三个场景为例,它们均属于二分类问题,习惯上把我们关注的某一现象的存在归为y=1(如垃圾邮件、恶性肿瘤细胞),反之则为y=0.
此外,还有多分类问题,详见本节第六部分。
这里写图片描述

我们可以尝试用线性回归的方法解决根据肿瘤大小判断是否为恶性肿瘤这一分类问题。显然,一个直观的想法是,以 h θ ( x ) = 0.5 为阈值,当 h θ ( x ) > 0.5 时,认为肿瘤是恶性肿瘤的几率更大,预测y=1,反之,为良性肿瘤,预测y=0。
这里写图片描述
可以看到,在只有左侧八个观测点的原始回归中,我们可以近似得到如图所示的一条回归线,以 h θ ( x ) = 0.5 为界,可对训练样本中的肿瘤细胞进行正确的归类。这似乎说明线性回归法是可行的。
但是,当新增一个观测点时,线性回归结果就不甚乐观了。新观测点会吸引回归线向自己靠近,由此增大了 h θ ( x ) = 0.5 时的x值。在新的回归下,左侧两个恶性肿瘤观测点会被错误地归类为良性肿瘤。
此外,在二分类的归类问题中,y只有0或1两个离散的取值,而线性回归得到的“概率” h θ ( x ) 取值范围大,可能大于1,也可能小于0,这不符合我们对概率(介于0~1之间)的认知。
因此,线性回归并不是一个解决归类问题的好办法。我们需要构造一个新的模型来解决分类问题。

2. Sigmoid Function

Sigmoid Function:

g ( z ) = 1 1 + e z

这里写图片描述
Sigmoid函数又称S型函数或逻辑函数,其取值范围在(0,1)之间,是一种理想的分类问题假设函数表达形式。将z替换成x和θ的函数 θ T x (不一定为线性形式,需根据具体的问题来确定),即可得到假设函数
h θ ( x ) = g ( θ T x ) = 1 1 + e θ T x

对于上述肿瘤分类问题,当输出结果 h θ ( x ) = 0.7 时,可以解释为

对于一个肿瘤大小为x的患者,该肿瘤为恶性肿瘤的可能性为0.7

h θ ( x ) 的含义为给定x和θ时y=1的概率, h θ ( x ) = P ( y = 1 | x ; θ )

3. Decision Boundary

在第二部分提到,用于替换z的函数需要根据具体的问题来确定。如对于左图的分类问题,替换成线性函数是合适的;而对于右图中的问题,替换成圆的一般方程的形式更合适。
替换z的函数在参数θ确定后,以特征x为轴作图(n=2 or 3)可得到一条决策边界(Decision Boundary),这一概念能更好地帮助我们理解逻辑回归的假设函数。
这里写图片描述
以左图为例, z = θ T x .
对于该二分类问题,我们有

P r e d i c t   y = 1   i f   h θ ( x ) 0.5 P r e d i c t   y = 0   i f   h θ ( x ) < 0.5

由Sigmoid图像可以知道,这其实等价于
P r e d i c t   y = 1   i f   z = θ T x 0 P r e d i c t   y = 0   i f   z = θ T x < 0

θ T x = 0 即为该分类问题的决策边界,在边界右上方的区域y=1,边界左下方的区域y=0。逻辑回归其实就是要找到最佳的参数θ,使得决策边界能尽可能地将不同类别的样本区分开来。

4. Cost Function

回顾线性回归的代价函数

J ( θ ) = 1 m i = 1 m 1 2 ( h θ ( x ( i ) ) y ( i ) ) 2

可以看到,线性回归的代价函数有明显的实际意义(表示平方损失),如果逻辑回归也采用这种形式的代价函数,我们不仅无法直观地解释其含义,还会面临存在多个局部最优解的问题,因为逻辑回归的 h θ ( x ) 是非线性的,这样构造的 J ( θ ) 很可能为非凸函数(non-convex)。
因此,我们希望构造一个可解释的凸函数,作为逻辑回归的代价函数:

J ( θ ) = 1 m i = 1 m C o s t ( h θ ( x ( i ) ) , y ( i ) )

在逻辑回归中,Cost函数的表达式为

C o s t ( h θ ( x ) , y ) = { l o g ( h θ ( x ) ) i f   y = 1 l o g ( 1 h θ ( x ) ) i f   y = 0

它等价于

C o s t ( h θ ( x ) , y ) = y l o g ( h θ ( x ) ) ( 1 y ) l o g ( 1 h θ ( x ) )

作图可以帮助我们更直观地理解Cost函数。我们的直觉是,当分类完全正确时,Cost应该为0,而当分类错误非常离谱,如 h θ ( x ) = 0 而实际上y=1,或者 h θ ( x ) = 1 而实际上y=0时,应当用一个很大的Cost来惩罚算法。
这里写图片描述

将简化的Cost表达式带入J(θ),有

相关文章
相关标签/搜索