coursera Machine Learning Week3-1 学习笔记

来源:互联网 发布:庞珣 知乎 编辑:程序博客网 时间:2024/05/21 11:15

Part 6:Logistic Regression

    从这个部分开始进入分类这一大块内容的学习。对于二元分类(只区分1和0,或者说是或否)来说,线性(多项式)回归开始显得不适用了,因为这样的回归最后得出的公式输出分布太广,很难以界定1和0的分界点,而且这个分界点很容易受新添加的训练数据的影响而产生波动。而为了适应这种分类的特点,在线性(多项式)回归的基础上引出了逻辑回归。

    首先,我们需要重现构建逻辑回归的数学模型,对比线性回归,逻辑回归的假设函数(hypothesis function)变为:


    其实只是在原来的线性回归假设函数h(x)=θ' * x(这里θ‘表示θ的转置矩阵)的基础上再套了一个著名的sigmoid function:g(x)=1/(1+e^-x),而这个新的假设函数代表的含义就是在给定的参数θ下,对于属性x,y=1的概率。

    这里我们需要暂停一下,先来看一下什么是sigmoid function。sigmoid function的公式上面已经给出,下面我们来看一下sigmoid function的分布:

    可以看出sigmoid function是一个严格递增的函数,处处可导,并且分布非常的均匀,能够较好的平衡线性非线性之间的行为(至于为什么能平衡……求大牛给出解释)。通过这样的一个函数,我们就可以比较好的把一个分布范围很大的区间映射到[0,1]的区间。然后现在我们需要的输出是分类的标号0或者1,可以看到我们只需要以0.5作为阀值的分割点,如果sigmoid函数的输出≥0.5(x≥0),那么返回1;反之,如果输出<0.5(x<0),则返回0。

    而至于为什么这个新的假设函数的含义就是在给定的参数θ下,对于属性x,用y=1的概率呢?其实这个定义就是我们在定义新的假设函数时,自然而然引申出的定义。把sigmoid函数的输出看作为一个条件概率,也正好符合我们最后对其输出所进行的阀值划分。

    然后我们接着往下走,定义完了新的假设函数之后,我们需要继续修改我们的代价函数,原本线性回归的代价函数为:

    而逻辑回归的对于某元组x的代价函数为:

    在使用了一种更加酷炫的表达方式之后再把所有的元组的代价累加之后的公式即为:


    其实简单的来说就是用一种巧妙的方式重新把[0,1]的区间映射到了[0,+∞)。

    看到这里是不是感觉有点熟悉,是的,剩下来的问题又回到了之前的线性回归上,我们只需要利用梯度下降法来自适应的找出使得J(θ)最小的参数θ就可以了。

    最后,视频介绍了多类别的分类(比如最终预测的结果为low,medium,high三类的情况),使用的方法为One-vs-All,具体的步骤如下:

    1.给定m个类,我们构建m个分类器,每个类一个

    2.对于分类器j,使用类j的元组标记为1,非类j的元组标记为0,按照上述方法进行训练

    3.对于一个新的元组X,m个分类器同时对其进行判断,如果分类器j预测X是类j,则类j获得1票,反之预测X不是类j,除了j以外的每个类都获得1票,最后得票最多的类被指派为X

   


0 0