机器学习笔记(7)分类和表观

/*本课程笔记依托于Machine Learning——Andrew Ng(Stanford University)*/

在这一篇笔记中我想和大家探讨一下分类问题,前面的回归是倾向于求出real value,而这里的分类更加倾向于按照学习样本对未知数据进行分类,首先我们需要简述一下分类和回归在实际问题的中会有什么不同的表现

在这里我们引用一个判断肿瘤细胞是否为恶性肿瘤,0为否,1为是,上面是训练数据,如果我们使用线性回归来对数据进行拟合,当数据为原始的8个点时,拟合的结果为粉色直线,假设我们规定当可能性>0.5时就认为细胞为肿瘤细胞,<0.5则为正常细胞。通过拟合出的粉色直线可以看出好像还能完全符合,但是这里会带来一个问题,分类问题是要将结果指定在0-1之间(也就是是该类和不是该类之间),但是在利用线性回归算法时我们可以发现得到的值,可能存在<0以及>1的情况,这显然与分类问题的准则不相符。其次,当我们添加了最右边的第九个点的时候,线性回归算法给出的结果就会大大改变,变为蓝色直线,这个时候再取中间分界点0.5就会发现,有两个肿瘤细胞被误判成了正常细胞,因为极端值的出现干扰了线性回归对于数据的拟合,导致了问题,而且上面的同样会超出1或者低于0,这个时候我们就不能使用线性回归来拟合数据,所以这里我们就要使用Logistic Regression(逻辑回归),不要因为算法中有回归就自然而然的认为这时回归算法,Logistic Regression则是标准的分类算法,使用分类算法可以很好的避免上面提到的两个问题。所以说再遇到分类问题时使用回归算法并不是一个很聪明的决定

首先和学习线性回归一样,我们需要给出分类问题中的假设函数长什么样子,既然线性回归算法应用在分类问题上不能保证最后的结果一定落在0-1之间,那么我们就需要设计一个假设函数来使最后的结果落在0-1上

首先我们需要假设,假设函数为,然后我们需要定义逻辑函数g(z),在这里我们的逻辑函数(Logistic function)是一个常见的逻辑函数:s形函数(Sigmoid function),接下来我们将逻辑函数与假设函数连在一起就得到了完整的假设函数,至于s函数为什么可以限定值域在0-1,我们用MATLAB画一下函数图象就一目了然了。经由假设函数求出的现在不是real value而是一个概率值。

同样的假设函数也可以用概率论的知识改写,这个表达式表示x条件下y等于1的概率(参数为θ),因为分类问题中训练集的结果只有0和1,所以我们同样可以用概率论的方法改写y等于0的表达式

在上面我们说明了分类问题中的假设函数长什么样子,接下来我们介绍一下决策边界(decision boundary)通过决策边界我们可以更好的理解假设函数在计算什么

前面我们说过了,分类问题实际上只有两个结果0 1,也就在什么时候我们应该认为结果是0什么时候应该认为结果是1,这就是决策边界,也可以理解成某一个阈值,当计算数值大于阈值时就可以说结果为1,当计算数值小于阈值时就可以说结果为0。这样看起来比较抽象,就引入上文中的肿瘤细胞的例子,当假设函数求的值≥0.5时,我们就说这个细胞是肿瘤细胞的概率比较大,而结果<0.5时我们就说这个细胞不是肿瘤细胞的概率大,这里的0.5就是我们说的决策边界

我们将引入下一个例子更深入的阐述什么是决策边界

现在我们有这样一个训练样本集和假设函数,你可能会奇怪这里的g(z)函数怎么回变成这个样子,其实在多元线性回归中我们就已经阐述了这个问题,这个表达和前面的表达是对等的,当我们对θ向量取值[-3;1;1]的时候同时应用决策边界就会出现下面的情况

即约定当-3+x1+x2≥0时认为y=1,当y=0时相反,就是这样一条线,很好的将训练集分成了两部分,在具体问题中0 1的具体意义还需要自己指定

当然前面我们是使用一次假设函数来进行分类,同样我们也可以用二次三次甚至更高次假设函数来进行分类,例如将下面的训练集进行分类同样我们也可以用逻辑回归的方法来进行分类假设函数改写成这个样子,这样我们就有了5个参数,当我们让θ=[-1;0;0;1;1],根据上面的方法,我们可以得到这个式子,和上面道理相同,决策边界就是一个圆这样就实现了运用多次幂假设函数进行分类,实际上我们可以看出,在上述两个例子中实际决定决策边界的是参数θ,下面的笔记中我们会谈到如何自动的确定参数θ的值

About the author

NOBUG.IN

Add comment

By NOBUG.IN

Your sidebar area is currently empty. Hurry up and add some widgets.