Stanford机器学习-Logistic Regression

Classification

分类是我们实际生活中经常使用的一个方法,我们需要根据实际的需求将一些东西实际的分别开,例如:
这里写图片描述
我们需要识别邮件是正常的还是垃圾邮件;在线交易是否是欺诈的;肿瘤是良性的还是恶性的。在这些问题中,结果通常分为两类,即Y的取值为0或1,0表示的是Negative Class,1表示的是Positive Class,复杂情况下Y的取值可能还有其他,但都是些离散的值。

例如在之前预测肿瘤良恶性的例子中,我们给出了如图所示的数据集:
这里写图片描述

当没有最右边的数据时,我们设定阈值为0.5,当使用线性回归来拟合数据时,得到的是洋红色的直线,将纵坐标的0.5虚线延长后与拟合直线的交点,左侧的是0表示良性,右侧的是1,表示恶性,这样一看取得了想象中的好效果。但当我们再添加一个取值为1的数据后,继续使用线性回归算法拟合,拟合线如蓝色所示,按照同样的方法划分Positive Class和Negative Class时,会将一部分恶性的结果归类到良性中,结果就出现了偏差。
这时就需要一种新的算法Logistic Regression来解决分类问题。
这里写图片描述
他的取值永远在0和1之间。

Hypothesis Representation

这里写图片描述
在Logistic Regression模型中,我们希望h的取值是在0~1之间,它的假设为这里写图片描述
其中x表示特征变量,g代表逻辑函数,公式为这里写图片描述,函数图像如图所示,它的值的范围就是在0~1。该模型的作用就是在输入特征变量x的情况判断它的取值为1的概率,即这里写图片描述,反映的是一种条件概率。
这里写图片描述
比如当我们x的取值为0.7时,我们就可以说有70%的概率患癌,反过来也就是有30%的可能不会患癌。

Decision boundary

在前面的模型假设中:
这里写图片描述
h和g如图所示,当h的取值大于等于0.5即反映在图中是变量大于等于0时,y的值为1,反之为0。
当我们有如下的数据集时:
这里写图片描述
向量θ的取值为-3 1 1时,如果-3+x1+x2>=0即x1+x2>=3时,判定y=1,否则y=0,表示在图中,即洋红色线所分割那样,在指向的上方时y=1,下方y=0。这条线就是所谓的决策边界。当变量的形式更加复杂,如下图所示时:
这里写图片描述
道理相同,只是决策边界的形式可能更加的复杂。

Cost Function

这里写图片描述
在Logistic Regression模型中,我们该如何选择θ呢?这里和线性回归类似,我们也可以使用代价函数来作为评判标准。
如果我们继续使用之前定义的代价函数即平方误差函数
这里写图片描述,我们带入h的表达式,得到的图形如下所示:
这里写图片描述
得到的是一个非凸的图形,它会存在很多的局部最优值,从而影响梯度下降的效率。所以我们需要重新选择新的代价函数,如图所示
这里写图片描述
这里写图片描述
当y=1以及h为1时,Cost=0;当h趋近于0时,Cost的取值将趋近于无穷,直观上来看在h为0,使y=1时我们的学习算法将花费很大的代价,也就是事件是基本不可能发生的,这样符合我们的现实感受,当y=0的情况同理可以理解。

上面我们将代价函数设置成了分段函数的形式,为了计算的方便,我们通常可以将其变成如下所示的形式:
这里写图片描述
这里写图片描述,道理和分段函数是一样的。
·此时Logistic regression模型就如下所示:
这里写图片描述
我们的目的仍然是寻求使代价最小的取值θ,使用梯度下降的过程如下:
这里写图片描述
通过反复的迭代更新θ来找到我们想到的θ。
从上面看来仿佛Logistics regression的梯度下降和线性回归的梯度下降是一个东西,但实际上它们两个是完全不同的,因为因为我们的假设发生了变化。
除了使用梯度下降法之外,我们同样可以使用一些更为高级的方法来计算代价和它的偏导数 。
这里写图片描述
如共轭梯度法、局部优化法和有限内存局部优化法,他们不需选择学习率,通常比梯度下降的速度更快,同样也更加的复杂。
在Octave中使用梯度下降的一个例子如下:
这里写图片描述
相关的步骤解释如下:
这里写图片描述
在这里,我们同样可以使用特征缩放来加快迭代的速度。

Multiclass Classification:One-vs -all

在前面的肿瘤分类的例子中,我们只涉及到了两个类,即y的取值为0或是1,在实际中我们经常会碰到多分类的问题,比如
这里写图片描述
在邮件中,我们通常需要将不同的邮件分类到不同文件夹中,也就是一个打标签的过程,这里y的取值比如取1 2 3 4;下面两个例子同理可理解。那么这里就是一个一对多的问题。
这里写图片描述
在之前我们可以使用直线来划分,一边的为Positive Class,另一边是Negative Class。但在比如图中所示的有三个类时,此时使用一条直线就无法合适的工作了,我们需要将其分成三个基本的分类问题
这里写图片描述
也就是一对余的思想,最后,在我们需要做预测时,我们将所有的分类机都运行一遍,然后对每一个输入变量,都选择最高可能性的输出变量。
这里写图片描述
现在知道了基本的挑选分类器的方法,选择出哪一个分类器是可信度最高效果最好的,那么就可认为得到一个正确的分类,无论i 值是多少,我们都有最高的概率值,我们预测 y就是那个值。这就是多类别分类问题,以及一对多的方法,通过这个小方法,你现在也可以将逻辑回归分类器用在多类分类的问题上。

猜你喜欢

转载自blog.csdn.net/Forlogen/article/details/79885640
今日推荐