美文网首页机器学习_周志华
《机器学习(周志华)》学习笔记(三)

《机器学习(周志华)》学习笔记(三)

作者: 红色的Ricky | 来源:发表于2016-12-10 21:57 被阅读1312次

    Q:机器学习中最简单的学习算法是什么?

    A:
    最简单的机器学习算法莫过于线性回归算法了。线性回归算法的基本形式如下:
    $$ f(x)=θ_0 x_0+θ_1 x_1+θ_2 x_2+···+θ_n x_n $$
    其中x是自变量,θ是参数。我们训练的目的就是调整θ,使得我们输入一系列x值后得到的f(x)的解禁真实值。一个常见的例子是房价预测例子。通过住房面积、房间个数两个特征来预测房价,则f(x)就是代表房价,x0=1,x1=住房面积,x2=房间个数。

    Q:线性回归模型的训练过程是怎样的?

    A:
    要一个线性模型效果最好,就要令其误差最小。也就是找出所有参数θ使得预测值f(x)与真实值y的差最小。那么我们可以建立一个函数:
    J(θ)=∑_(i=1)^m▒〖(f(θ_i )-y_i)〗^2
    这个其实是把每一次训练的均方误差加起来,得到了总的均方误差。令这个函数取最小值,那么就得到了一组θ使得f(x)与y的差最小,也就使得我们的回归模型效果最好。

    Q:线性回归模型是用来做预测的,但做分类任务时应该用那一个模型?

    A:
    上面提到的线性模型是最基本的线性模型,把这个基本线性模型加以改造,就可以得到用于分类任务的回归模型。
    假设我们输入一组住房面积和房间个数的数据,预测到了一组住房的房价,比如A房80万,B房135万,C房150万等。如果我们认为画一条线,认为140万一下为低档房,140万以上为高档房,那我们就可以根据住房面积和房间个数来给住房分类了。也就是说在预测的基础上加上一个判断条件,就构成了分类算法。
    对数几率回归模型,或者称逻辑回归(Logit Regression)就是这样一种基于回归的分类算法。

    Paste_Image.png

    对数几率回归函数输出的的值是0到1范围的数。对于一个二分类任务来说,假如只分正例和反例(好瓜和坏瓜),那么我们可以认为函数输出的值越大,则这个样本是正例的几率越大,值越小,样本是反例的可能越大。这就是“对数几率回归”名字的又来。我们可以定一个临界值,一般是0.5,当输出值大于0.5时认为该样本是正例,否则为反例。

    Q:对数几率回归又是怎样训练出来的呢?

    A:
    我们知道,对数几率回归函数的输出值是一个概率。那么一个对率回归模型越好,意味着当输入模型的样本为正例时,模型的输出值越大(越接近1),当输入模型的样本为反例时,模型的输出值越小(越接近0)。
    因此我们可以构建一个函数

    Paste_Image.png

    上式中hθx是对率模型的输出值,yi是样本的真实标记,当样本为正例时y取1,为反例时y取0。这整一个函数的含义就是把每个样本属于其真实标记的概率加起来。若我们使l(θ)最大,那就可以找到一组θ使得每个样本属于其真实标记的概率最大,亦即使得正例的函数值尽可能接近1,反例的函数值尽可能接近0。如此我们就得到了一个优秀的对数几率回归模型。

    Q:对数几率回归模型是处理二分类任务的,那处理多分类任务时怎么办?

    A:
    多分类任务可以凭借二分类任务为基础得到解决。解决思路一般有一对一,一对多,和多对多三种。

    一对一策略:举个例子,现在有A、B、C、D四个种类,要确定某个样本属于四类中的哪一类。那么我们可以事先训练好六个二分类的分类器——A/B、A/C、A/D、B/C、B/D、C/D。然后把要确定类别的样本分别放入这六个分类器。假设分类结果分别是A、A、A、B、D、C。可以知道六个分类器中有三个认为这个样本术语A,认为是B、C、D的各有一个。所以我们可以认为这个样本就是术语A类的。

    一对多策略:举个例子,现在有A、B、C、D四个种类,要确定某个样本属于四类中的哪一类。那么我们可以事先训练好四个二分类的分类器——A/BCD、B/ACD、C/ABD、D/ABC,分类器输出的是一个函数值。然后把要确定类别的样本分别放入这四个分类器。假设四个分类器的结果分别是“属于A的概率是0.9”,“属于B的概率是0.8”、“属于C的概率是0.7”、“属于B的概率是0.6”。那我们可以认为这个样本是属于A。

    多对多策略:每次将若干个类作为正类,若干个其他类作为反类。其中需要这种策略需要特殊的设计,不能随意取。常用的技术:纠错输出码。工作步骤分为:

    • 编码:对N个类别做M次划分,每次划分将一部分类别作为正类,一部分划分为反类,从而形成一个二分类训练集;这样一共产生M个训练集,可以训练出M个分类器。
    • 解码:M个分类器分别对测试样本进行预测,这些预测标记组成一个编码,将这个预测编码与每个类别各自的编码进行比较,返回其中距离最小的类别最为最终预测结果。
    Paste_Image.png

    以原书的例子做一个详细的演示:
    假如现在有一个训练数据集,可以分四个类——C1, C2, C3, C4
    再具体一点可以想像为——西瓜可以分为一等瓜、二等瓜、三等瓜、四等瓜,要训练一个分类系统,使之能判断一个西瓜的等级。

    我们对训练数据集做五次划分

    • 第一次,标记C2为正例,其他为反例,训练出一个二分类的分类器f1
    • 第二次,标记C1、C3为正例,其他为反例,训练出一个二分类的分类器f2
    • 第三次,标记C3、C4为正例,其他为反例,训练出一个二分类的分类器f3
    • 第四次,标记C1、C2、C4为正例,其他为反例,训练出一个二分类的分类器f4
    • 第五次,标记C1、C4为正例,其他为反例,训练出一个二分类的分类器f5

    根据这五次划分的过程,每一个类都获得了一个编码(向量):

    • C1:(-1,1,-1,1,1)
    • C2:(1,-1,-1,1,-1)
    • C3:(-1,1,1,-1,1)
    • C4:(-1,-1,1,1,-1)

    若现在有一个测试样本,五个分类器对应的累计结果为
    f1:反, f2:反, f3:正, f4:反, f5:正
    即该测试样本对应的编码/向量为(-1,-1,1,-1,1)
    那么分别计算这个测试样本的编码与四个类别的编码的向量距离,可以使用欧氏距离,算的与C3类的距离是最小的。因此判定该测试样本属于C3类。

    相关文章

      网友评论

        本文标题:《机器学习(周志华)》学习笔记(三)

        本文链接:https://www.haomeiwen.com/subject/olpumttx.html