目录
第一章 绪论
1.1 基本术语
- 一组记录的集合称为一个数据集;
- 每条记录是关于一个事件或对象的描述,称为示例(或样本);
- 反映事件或对象在某方便的表现或性质的事项,称为属性(或特征),其值称为属性值;
- 属性张成的空间称为属性空间(或样本空间、输入空间);
- 根据训练数据是否拥有标记信息,可将学习任务分为监督学习和无监督学习:
- )监督学习:分类和回归
- )无监督学习:聚类
1.2 假设空间
- 归纳和演绎是科学推理的两大基本手段:
- )归纳:从特殊到一般的“泛化”过程;
- )演绎:从一般到特殊的“特化”过程。
- 存在着一个与训练集一致的“假设集合”称为“版本空间”。
1.3 归纳偏好
- 机器学习算法在学习过程中对某种类型假设的偏好称为归纳偏好(或偏好)。
- 学习算法自身的归纳偏好与问题是否相配往往会起到决定性的作用。
第二章 模型评估与选择
2.1经验误差与过拟合
- 通常把分类错误的样本数占样本总数的样本比例称为错误率: a:错误样本,m:总样本
- 精度 = 1 - 错误率 . 即 精度 =
- 学习器的实际的预测输出与样本的真实输出之间的差异称为误差
- 学习器在训练集上的误差称为训练误差(或经验误差),在新样本上的误差称为泛化误差。
2.2 评估方法
将数据集D拆分为训练集S和测试集T的常用方法:
1.留出法
1)、直接将数据集D划分为两个互斥的集合,训练集S和测试集T:
2)、训练测试集的划分要尽可能保持数据分布的一致性,避免因数据划分过程引入额外的偏差,而对最终结果产生影响;
3)、一般要采用若干次随机划分、重复进行试验评估后取平均值作为留出法的评估结果;
4)、训练样本 S : 测试样本T 通常在2:1 ~ 4:1之间。
2.交叉验证法
1)、将数据集D划分k个大小相似的互斥子集,每个子集都尽可能保持数据集分布的一致性;然后用k-1个子集的并集作为训练集,余下的一个子集作为测试集,从而可获得k次训练和测试,最终返回k个结果的均值。
2)、评估结果的保真性和稳定性很大程度取决于k值,故又称k折交叉验证,k最常用的取值是10.
3)、若数据集D中包含m个样本,令k=m, 则得到了交叉验证法的一个特例:留一法
留一法:优点:不受随机样本划分方式的影响,结果比较准确;
缺点:数据集比较大时,计算开销难以忍受
3.自助法
1)、给定包含m个样本的数据集D,对数据集D又放回的采样m次(每次从D中挑选一个样本),得到训练集D',不出现在D'中的数据作为测试集(D\D');
2)、实际模型与预期模型都使用m个训练样本;
3)、约有1/3的样本没在训练集出现,用作训练集;
(样本在采样中始终不被采到的概率是 ,取极限:
4)、自助法在数据集较小,难以有效划分训练/测试集时很有用;
5)、自助法能从初始数据集中产生多个不同的数据集,这对集成学习等方法有很大的好处;
6)、自助法产生的数据集改变了初始数据集的分布,这会引入估计偏差,在数据集足够时,留出法和交叉验证法更常用。
2.3性能度量
1.性能度量反映了任务需求,在对比不同模型的能力,使用不同的性能度量往往会导致不同的评判结果。
2.回归任务最常用的性能度量是均方误差:
对于数据分布D和概率密度函数p(·),均方误差可描述为:
3.错误率与精度(准确率)是分类任务中最常用的两种性能变量,即适用于二分类任务,也适用于多分类任务;
错误率是分类错误的样本数占样本总数的比例:
精度是分类正确的样本数占样本总数的比例:
对于数据分布D和概率密度函数p(·),错误率与精度:
4.查准率、查全率与F1
真实情况 | 预测结果 | |
正例 | 反例 | |
正例 | TP(真正例) | FN(假反例) |
反例 | FP(假正例) | TN(真反例) |
查准率:
查全率:
查准率和查全率是一对矛盾的度量;查准率高时,查全率往往会会偏低;查准率低时,查全率往往会高
5. 以查准率为纵轴、查全率为横轴作图,就得到了查准率-查全率曲线,简称P-R曲线(或PR曲线)或P-R图(PR图)。若一个学习器的P-R曲线被另一个学习器的曲线完全“包住”,则后者性能优于前者;若两个学习器的P-R曲线发生交叉,则使用平衡点(BEP),即查准率=查全率时的取值,值大的更优。
6. F1度量:
(m表示样例总数)
若给查准率设置不同权重,可得到F1度量的一般形式Fβ:
β > 0,且当β = 1时,退化成标准的F1;
当β > 1时,查全率有更大影响;
当β < 1时,查准率有更大影响。
8.ROC与AUC
受试者工作特征ROC绘制过程:根据分类器的概率预测结果对样例排序;并按此顺序依次选择不同的“截断点”逐个把样例作为正例进行预测,每次计算出当前分类器的“真正率”和“假正率”,然后分别以它们为纵轴、横轴绘图,即可得到ROC曲线。
真正率:
假正率:
1)、若某个分类器的ROC曲线被另一个分类器的曲线完全“包住”,则后者性能优于前者;
2)、若曲线有交叉,根据ROC曲线下面积的大小进行比较,即AUC:
a.n0,n1是正例和反例的个数;
b.ri是第i个反例(-)在整个测试样例中的排序;
c.当所有的反例都排在正例的前面时,AUC值达到最大1。
2.4比较检验
1.定义:先试用某种实验评估方法测得学习器的某个性能度量结果,然后对这些结果进行比较
2.关于性能比较:
1)、测试性能并不等于泛化性能
2)、测试性能会随着测试集的变化而变化
3)、很多机器学习算法本身有一定的随机性
3.常用的比较方法:
1)、交叉验证t检验(成对双边t检验):若k折交叉验证法得到的测试错误率分别为和,其中和是在第i折训练/测试集得到的结果。(在一个数据集上比较两个分类器的性能)
求差:
均值:
方差:
t统计量: 服从自由度为k-1的t分布;
a.若t值 < 临界值(),两个分类器的性能没有显著差别;
b.若t值 > 临界值,两个分类器的性能有显著差别,平均错误率较小的分类器性能较优。
2)、Friedman检验与Nemenyi后续检验(在一组数据集上比较多个分类器的性能)
在N个数据集上比较K个算法:使用留出法或交叉验证法得到每个算法在每个数据集上的测试结果,然后在每个数据集上,根据测试性能由好到坏排序,并赋予序值1,2,3....;若算法的测试性能相同,则平均序值。令表示第i个算法的平均序值:
当k和N都比较大时,服从自由度为k-1的分布
服从自由度为k-1和(k-1)/(N-1)的F分布
a.若 < 临界值,则所有比较的算法是相同的;
b.若 > 临界值,则所有比较的算法是显著不同的,则需要进行后续检验,常用的有Nemenyi后续检验。
计算平均序值差别的临界阈值:
a.如果两个算法的平均序值之差 < 临界阈值,则两个算法的性能在相应的置信度下没有显著差别;
b.反之则有显著差别;
c.平均序值较小的算法的性能较优。
第三章 线性模型
3.1基本形式
1.给定由d个属性描述的示例,其中是在第个属性上的取值,线性模型试图学得一个通过属性的线性组合来进行预测函数,即:
一般的向量形势:
3.2线性回归
1.给定数据集,其中,
线性回归试图学得:,使得;
2.最小二乘法:基于预测值和真实值的均方差最小化的方法来估计参数w和b,需要优化的方程:
最小化均方误差:
分别对w,b求导:
①
②
令式①和②为零可得到w和b最优解的闭式解:
3.广义线性模型:即将线性回归的预测值,再做一个非线性的函数变化,去逼近真实值得到的模型称为广义线性回归:
其中g(·)称为联系函数,理论上g函数可以使任意函数。当g函数被指为指数函数时,得到的函数模型称为对数线性回归。
将真实的对数作为线性模型逼近的目标,即:
3.3 对数几率回归
1.对分类任务,在广义性规模中:只需找一个单调可微函数将分类任务的真实标记y与线性回归模型预测值练习起来
2.对二分类任务,输出标记y∈{0,1},二线性回归模型产生的预测值z=W^T+b是实值,所以需要将z转化为0/1值,这就需要只用单位阶跃函数:
0表示判为反例,0.5表示可任意判别,1表示判为正例
因为单位阶跃函数不连,所以不能直接作为g函数,因此需要一个单调可微的替代函数,即对数几率函数(logistic function):
它将z值转化为一个接近0或1的y值,并且将其输出值在z=0附近变化很陡,对应的模型称为对数几率回归(logistic regression)。虽然名字是回归,却是一种分类学习方法。
优点:①可以直接对分类可能性进行预测,将y视为样本x作为正例的概率;
②无需事先假设数据分布,这样就避免了假设分布不准确所带来的问题;
③是任意阶可导的凸函数,可以直接应用现有数值优化算法取得最优解。
将对数几率函数作为g(·)代入得:
输出y视为样本x属于正例的概率:
输出y视为样本x属于反例的概率:
给定数据集,对数回归模型最大化“对数似然”:
3.4 多分类学习
1.主要方法:①直接将二分类学习推广到多分类;
②利用二分类学习器完成多分类任务。(√)
2.考虑N个类别C1,C2,...,Cn,多分类学习的基本思路是“拆解法”,即将多分类任务拆解成若干个二分类任务求解;常用的方法有:一对一(One vs One,OvO),一对其余(One vs Rest,OvR),多对多(Many vs Many, MvM)。
3.一对一:一对一拆分方法在训练阶段将原始的N个类别两两配对,学习N(N-1)/2个分类器,最终结果通过投票方式产生:即把被预测得最多的类别作为最终分类结果。
4.一对其余:在训练阶段分别将原始的N个类别中某一例作为正例,其余类作为反例,学习N个二分类器。首先将待测样本提交给所有分类器预测,得到N个分类结果:①若仅有一个分类器预测为正类,则对应的类别标记作为最终分类结果;②若有多个分类器测为正类,则选择置信度最大的类别标记作为分类结果。
5.二者比较:
一对一:①训练N(N-1)/2个分类器存储和测试时间大;
②训练只用两个类的样例,训练时间短。
一对其余:①训练N个分类器,存储开销和测试时间短;
②训练用到全部训练样例,训练时间长。
预测性能取决于具体数据分布,多数情况下两者差不多。
6.多对多:若干类作为正类若为个其他类作为反类,最常用的MvM技术:纠错输出码(ECOC)。
7.纠错输出码:将编码的思想引入类别拆分,并尽可能解码中具有容错性,主要分为两步;
编码:对N个类别做M次随机划分,每次划分将一部分类别划分正类,其余类划分为反类;→构建M个二分类器,得到每个类标记,长度为M的编码。
解码:测试样本交给M个分类器预测→长度为M的预测编码。
以某种距离最小的编码所对应的类别作为预测结果。
①ECOC对分类器错误有一定容忍和修正能力,编码越长,纠错能力越强。
②对同等长度的编码,理论上来说,任意两个类别之间的编码距离越远,则纠错能力越强。
第四章 支持向量机
4.1线性支持向量
给定训练样本集
线性分类器决策边界的线性方程:
其中N=(ω1;ω2;...;ωd)为法向量,决定了超平面的方向;b为位移项,决定了超平面与原点之间的距离。
假设决策边界能将训练样本正确分类,即对于任意样本点(xi,yi)∈D:
通过调整决策边界的参数w和b,总可以得到:
距离超平面最近的这几个训练样本点使等号成立,被称为“支持向量”两个异类支持向量到超平面的距离之和被称为“间隔”记为:
欲找到具有“最大间隔”的划分超平面,就要找到能满足约束的参数w和b,使γ最大,即:
线性支持向量机的学习问题是一个凸二次优化问题。
求解方法:①用现成的优化计算包求解;
②用拉格朗日乘子法求解。(✔)
4.2 拉格朗日乘子法
1.引入拉格朗日乘子法αi≥0得到拉格朗日函数:
①
2.令L(w,b,α)对w,和b的偏导为零可得:
②,③
3.将②代入①,得到对偶优化问题:
因为对偶优化问题的二次项前面有个负号,而原始线性支持向量机学习的优化问题的二次项前面没有负号,这说明原来要优化的最小问题已经转化成了对偶优化问题。即:
*
再对上述最大问题稍作变形,就可等价为下面的最小化问题:
再结合拉格朗日函数的约束条件,就可得到原始问题的最终优化问题:
解出α后,求出w和b即可得到线性SVM的最终模型:
因为式*中有不等式约束,因此上述过程需要满足KKT条件,即:
i
KKT条件表明,除非训练样本满足yif(xi)=1,否则必有拉格朗日乘子法αi=0,那些α>0的训练样本都落在最大边缘的边界bi1和bi2上,都是支持向量。可见,最终支持向量模型的参数w和b仅仅依赖于这些支持向量。
由于对偶优化问题是一个二次规划问题,可使用通用的二次规划算法来求解;然而,该问题的规模正比于训练样本的数目,对于大型数据集,会造成很大的开销。为了避开这个障碍,人们通过利用问题本身的特性,提出很多高效的算法,如SMO序列最小化优化算法。
SMO的基本思路是先固定αi之外的所有参数,然后求αi的极值,由于存在约束:
若固定αi之外的其他变量,则αi可由其他变量导出。于是,SMO每次选择两个变量αi和αj并固定其他参数,这样,在参数初始化后,SMO不断执行如下两个步骤直至收敛:
①选取一对需更新的变量αi和αj;
②固定αi和αj以外的参数,求解式(*)获得更新后的αi和αj;
6.3核函数
在前面讨论中,我们假设训练样本是线性可分的,即存在一个划分超平面能将训练样本正确分类。然而现实任务中,原始样本空间也许并不存在一个能正确划分两类样本的超平面。如异或问题。
对这样的问题,可将样本从原始空间,使得样本在这个特性空间内线性可分。如果原始空间是有限维,即属性数有限,那么一定存在一个高纬特征空间使样本可分。
令φ(x)表示将x映射后的特征向量,于是特征空间中划分超平面所对应的模型可表示为:
w和b为模型参数。
求解上面的优化问题,涉及到计算 ,这是样本xi与xj映射到特征空间之后的内积。由于特征 空间维数可能很高,甚至可能是无穷维,因此直接计算通常是非常困难的。为了避开,一个基本的想法是:不显式地设计映射 φ(·), 而是设计一个核函数:
xi和xj在高维特征空间的内积等于它们在原始样本 空间中通过核函数K(·,·)计算的结果。有了这样的核函数,我们就不必直接去计算高维甚至无穷维特 征空间中的内积了。
定理(核函数):令Χ为输入空间,K(·,·)是定义在Χ * Χ上的对称函数,则k是核函数当且仅当对于数据D={x1,x2,...,xm},“核矩阵”K总是半正定的:
定理表明,只要一个对称函数所对应的核矩阵半正定,它就能作为核函数使用。
常使用的核函数包括:
还可以通过函数组合得到:
①若κ1和κ2为核函数,则对于任意正数γ1、γ2,其线性组合:
也是核函数;
②若κ1和κ2为核函数,则核函数的直积:
也是核函数。
③若κ为核函数,则对于任意函数g(x):
也是核函数。
于是,核函数的选择成为非线性SVM的最大变数,若核函数选择不合适,就意味着将样本映射到了一个不合适的特征空间,从而很可能导致非线性SVM性能不佳。
第五章 贝叶斯分类器(朴素贝叶斯)
5.1贝叶斯学习基础知识
1.用P(h)表示在没有观察到训练数据之前假设h拥有的初始概率,P(h)被称为假设h的先验概率。
2.P(D)表示训练数据集D的先验概率,那么P(D|h)就表示假设h成立时D的概率。
3.计算概率的基本公式:
①交换规则:P(A,B) = P(B,A)
②乘法规则:P(A,B)=P(A|B)P(B)=P(B|A)P(A)
③贝叶斯定理:P(h|D) = P(D|h)P(h) / P(D)
④全概率法则:如果事件A1,A2,...,An互斥,且满足:
4.贝叶斯网络
(1)定义:一种用来表示变量间连续概率的有向无环图模型,图中的节点表示变量,有向边表示变量间的依赖关系,依赖关系的强弱用标识在边旁边的条件概率表示。
(2)获得一组变量的贝叶斯网络图的两种方法:
①由领域专家根据经验直接给定;
②通过已知的训练数据学习得到;(这个过程叫贝叶斯网络结构学习)
③一旦确定贝叶斯网络结构,剩下的问题就是根据已知的训练数据来计算各个变量联合发生的概率值,这个过程叫贝叶斯网络参数学习。
综上,贝叶斯网络学习可分为“结构学习”和“参数学习”。
5.2贝叶斯最优分类器
设给定的训练样本集包括几个样本,每个样本包括m个属性来描述,且每个样本具有一个已知的类标记C,那么对于某一待测样x就可以表示成m个属性值组成的矢量,分类就是预测它的类标记C,实际就是求解给定的m个属性值时C的概率。
具体公式:
即得到贝叶斯最优分类器的分类公式。(NP难问题)
5.3朴素贝叶斯
1.如果引入属性条件独立假设,即在给定类标记的前提下,所有的属性变量完全相互独立,所以在贝叶斯最优分类器的公式中,所有属性联合发生的概率就可以简化为给定类标记C时,单个属性值αi发生的概率对所有的属性值累积:
这就是朴素贝叶斯分类器的表达式。
2.因为给定的训练样本集,来估计各个概率值P(C),和P(αi)|C)是一件容易且高效的事,具体公式:
朴素贝叶斯的贝叶斯网络图: