《机器学习》西瓜书学习笔记(二)

上一篇笔记在这里:《机器学习》西瓜书学习笔记(一)


第三章 线性模型

3.1 基本形式

  • 线性模型:试图学得一个通过属性的线性组合来进行预测的函数,即

用向量形式写成

非线性模型可以由线性模型转化而成。

3.2 线性回归

误差平方和

所谓线性回归,就是已知数据集学成一个线性模型f(x)=w1x1+w2x2+...+wdxd+b=wTx+b,使得误差平方和最小。

具体的做法很简单,就是分别求Ew,b关于w和b的偏导并使其为0.

令上面的两个式子为0,解得:

下面我们讨论矩阵形式:
我们把w和b写成向量形式^w=(w,b),把数据集D表示成m(d+1)的矩阵X*。每一行对应一个示例,改行前d个元素表示d个属性值,最后一个为1:

把标记写成向量形式:y=(y1;y2;...;ym)

误差平方和的矩阵形式

解得,

考虑单调可微函数g(x),令y=g-1(wTx+b)。这样的模型称为广义线性模型

3.3 对数几率回归

上一节的线性模型用于回归学习,分类学习就需要有新的方法。
考虑二分类任务,输出标记y在0和1之间,我们将z=wTx+b转成0/1值,最理想的是单位阶跃函数

单位阶跃函数

但是单位阶跃函数不连续,不好算,所以我们用逻辑回归函数来代替,逻辑回归函数是一种Sigmoid函数。

逻辑回归函数

若将y视为样本x作为正例的可能性,则1-y是反例的可能性,二者比例y/1-y称为几率,其对数ln(y/1-y)称为对数几率
我们可以用极大似然法来估计w和b。
我个人认为教材上写的有点难以理解,我找了一些博客:

  • 机器学习系列-Logistic回归:我看你像谁 (下篇)
  • 机器学习-逻辑回归与最大似然估计

3.4 线性判别分析

先搬一段维基(手动滑稽)

线性判别分析 (LDA)是对费舍尔的线性鉴别方法的归纳,这种方法使用统计学,模式识别和机器学习方法,试图找到两类物体或事件的特征的一个线性组合,以能够特征化或区分它们。所得的组合可用来作为一个线性分类器,或者,更常见的是,为后续的分类做降维处理。

翻译成大白话就是:把样例集投影到一条直线上,要求相同类的样例尽可能近,不同类的样例尽可能远。

给定数据集D={(xi,yi),i=1~m,0<=yi<=1},令XiμiΣi分别表示示例的集合、均值向量、协方差矩阵。将数据投影到直线w上,则两类样本的投影分别为wTμ0wTμ1;若将所有样本都投到直线上,则两类样本的协方差分别为wTΣ0wwTΣ1w。这里wTμ0wTμ1wTΣ0wwTΣ1w均为实数。
类内协方差wTΣ0w+wTΣ1w要求尽可能小。
类间距离||wTμ0-wTμ1||22要求尽可能大。
则可得到最大化目标


类内散度矩阵
类间散度矩阵

则J可以表示为:

J也被称为Sb和Sw的“广义瑞利商”

由于J的分子和分母都是关于w的二次项,因此解与w的长度无关,仅与其方向有关 。令wTSww=1,则原问题等价于求w使得-wTSbw最小。由拉格朗日乘数法,等价于:


注意到 Sbμ01同向,则代入得

实际上可以对Sw进行奇异值分解,详见教材。

LDA可以推广到多任务之中,详见教材。

3.5 多分类学习

经典的拆分策略有三种:

  1. 一对一(OvO)
  2. 一对其余(OvR)
  3. 多对多(MvM)
《机器学习》西瓜书学习笔记(二)_第1张图片
OvO和OvR示意图

一种MvM常见技术:纠错输出码(Error Correcting Output Codes,ECOC),主要分两步:

  • 编码:对N个类别做M次划分,每次划分将一部分类别化为正类,另一部分分为反类,产生M个训练集——M个分类器。
  • 解码:M个分类器分别预测,这些预测标记组成一个编码,将其与每个类别的编码比较,区别最小的就是最终结果。

3.6 类别不平衡问题

类别不平衡,就是指分类任务中不同类别的训练样例数目差别很大的情况。

从线性分类器的角度来说,若

3.46
则预测为正例。
然而,正反例数目不同时,观测几率m+/m-,由于我们假设无偏采样,则观测几率就代表真实几率,于是若
3.47
则预测为正例。
但是原来的分类器基于3.46进行决策,所以需要 再缩放操作。

3.48 再缩放操作

但是我们很难保证“训练集是真实样本总体的无偏采样”。现有技术有3种做法:

  1. “欠采样”:直接去除一些反例。
  2. “过采样”:增加一些正例。
  3. 阈值移动:不增不减,但是预测时采取式(3.48)。

下一篇:《机器学习》西瓜书学习笔记(三)

你可能感兴趣的:(《机器学习》西瓜书学习笔记(二))