CAA机器学习
机器学习方法分类
机器学习:研究计算的手段,利用经验来改善自身性能。即研究在计算机上从数据中产生模型的算法——学习算法。模型泛指从数据中学习到的结果,在面对新的情况时,可以提供判断。
样本:数据是机器学习的基础,每条数据是关于一个事件或对象的描述,称为示例或样本,一组样本的集合称为数据集。一个样本由属性(特征)及对应的属性值构成,属性的数量称为维数,属性张成的空间称为属性空间、样本空间或输入空间。每个样本在样本空间都有对应的坐标,因此也叫特征向量。
训练:通过算法,从数据中获得模型的过程叫训练或学习。用于训练的数据叫训练数据,每个样本叫训练样本,训练样本集合叫训练集。训练后模型所得的数据的某种潜在假设,称为假设;数据的实际规律叫称为真相或真实。学习就是为了逼近真相,因此模型也叫学习器。
测试:习得模型后,用模型进 行预测称为测试。用于预测的样本叫预测样本。机器学习的目标就是习得真实规律,使模型能很好地适用于新样本,模型适用于新样本的能力称为泛化。通常假设样本空间的全体样本独立同分布。一般而言,训练样本越多,得到关于分布的信息越多,泛化能力就越强。
机器学习的分类
关于样本结果的信息称为标记(label),拥有标记信息的样本称为样例,所有标记的空间称为标记空间或输出空间。
根据训练数据是否含有标记信息,机器学习分为有监督学习和无监督学习。
有监督学习:训练数据含有标记信息,典型任务分为分类和回归,回归需要预测的标记是连续值;分类要预测的标记是离散值,只取到两个值时称为二分类。
无监督学习:训练数据没有标记信息,典型任务是聚类,即将训练样本分为多个集中的类,每个类称为一个簇。
半监督学习:
训练数据中只有少部分样本含有标记信息。若与专家(外界)交互,挑选重要样本通过询问获得标记,则称为主动学习;若让学习器不与外界交互,自动利用未标记样本提升学习性能,则称为半监督学习。
半监督学习必须对数据的分布做出假设,常见的有
聚类假设:假设数据存在簇结构,一个簇的样本同属一个类别。
流形假设:假设数据分布在流形结构上,临近样本拥有相似输出值。
半监督学习可进一步分类:
纯半监督学习:基于开放世界假设,未标记样本不是待测数据,模型用于样本外数据。
直推学习:基于封闭世界假设,未标记样本就是待测数据。
强化学习:机器以试错的方式进行学习,通过与环境进行交互获得的奖赏指导行为,目标是使机
器获得最大的奖赏。
使用马尔可夫决策过程描述:机器处于环境中,机器能感知环境的状态
,机器可以采取动作
改变状态,从而获得对应的奖赏
。
机器只能选择动作来影响环境,观察转移后的状态和反馈的奖赏感知环境。
策略:机器需要在环境中不断尝试,从而习得策略,即在状态下应该执行动作
。策略可以是确定性的,也可以以概率表示。策略的优劣取决于长期执行策略后得到的累积奖赏,因此机器无法立刻判断某个动作是否合理,需要等待最终结果,因此,强化学习可以看作延迟标记信息的监督学习。
假设空间与归纳偏好
归纳和演绎是科学推理的两大基本手段,归纳是从特殊到一般的泛化,演绎是从一般到特殊的转化。机器学习属于归纳学习,狭义的归纳学习要求从训练数据中获得概念,也成为概念学习或概念形成。
假设空间
学习过程可以看作在所有假设中进行搜索的过程,目的是找到与训练集匹配的假设。现实中可能面临多个假设与训练一致,这些假设的集合叫版本空间。
归纳偏好
一个具体的算法必须在版本空间中选择一个假设,算法在学习过程中对某类假设的偏好,叫做归纳偏好。学习算法必须具有某种偏好,才能产生有用的模型。
归纳偏好反映了学习算法本身所做出的“什么样的模型更好”的假设,归纳偏好是否与问题匹配,常常直接决定了算法能否取得好的性能。
奥卡姆剃刀:如有多个假设与观测相符,选择最简单的。
NFL(no free lunch)定理:机器学习不存在一种在所有情况下都优于其他算法的万能算法。若所有问题出现的概率相等或同等重要,则模型的总误差与选择的算法无关。
NFL定理说明了学习算法的选择要结合实际问题,算法的归纳偏好与问题是否匹配,往往起到决定性作用。
模型的评估和选择
误差:学习器实际输出与样本的真实输出之间的差异。学习器在训练集上的误差称为训练误差或经验误差,在新样本上的误差称为泛化误差,机器学习的目标是使泛化误差尽可能小。
欠拟合:学习器没有学习到样本的一般性质,训练误差和泛化误差都很大。通常是因为学习力低下导致,只需要增加训练轮数或模型复杂度。
过拟合:学习器学到了训练样本特殊的特性,训练误差很小,泛化误差很大。过拟合无法彻底避免,可通过降低复杂度、减少训练论述、增加样本数量缓解。
评估方法
通常准备测试数据,以测试误差作为泛化误差的近似。在训练中,应尽量不采用测试集数据,训练集数据应尽可能与真实样本同分布。
有时会进一步区分,模型实际使用中的数据称为训练集,用于评估和选择模型的叫做验证集,但有时不做区分。
利用验证集可以评估和选择模型,也可以进行模型调参。通常只能拿到一个数据集,需要分出训练集和验证集。
留出法:直接将数据集划为分训练集和测试集。分类任务重可采用分层抽样;一般用的样本用于训练;单次留出法的结果不够稳定,可采用多次求平均值。
交叉验证:留一交叉验证(k=n)或k折交叉验证,k常取10。
自助法:从样本中进行有放回抽样,抽样次数等于样本数量,以此作为训练集,未抽到的作为测试集。当样本数量足够大,测试机约含36.8%的样本。
性能度量
回归任务:常用指标为均方误差,即真实值与预测值之差的平方的平均值。
分类任务:分类错误的样本数占总样本的比例称为错误率,正确的比例称为精度。
查准率与查全率指标
二分类问题的查准率与查全率:将二分类的样本分为正例和反例两类,预测值和真实值的组合有四种情况,形成混淆矩阵:
查准率/精确率(precision):预测为正例,实际也为正例的比例,
查全率/召回率(recall):实际为正例的样本中,有多少被预测出,
查准率和查全率往往此消彼长,难以同时为高,可采用二者调和平均值作为评价:
有时两者重要性不同,可采用加权调和平均:
当大于1,则说明查全率更重要,反之查准率更重要,调和平均数对权重小的变化更敏感。
多分类问题:可构建每个类别对于其他类别的混淆矩阵,或个两两比较混淆矩阵,对每个混淆矩阵的指标求平均值得到评价结果。
宏平均:根据每个混淆矩阵算出查准率和查全率,再取平均值。
微平均:对混淆矩阵的每一个求平均,再计算查准率和查全率。
宏平均平等对待每个类,微平均平等对待每个样本。
曲线指标
预测时,预测器不仅能判断类别,还能给出概率。可人为地选择不同的概率为截断点,若预测为正例的概率超过截断点,则判为正例,反之判为负例。
若截断点较高,则不易判为正例,为1时全部判为负例;若截断点较低,则不易判为负例。
P-R曲线
调整截断点,查准率与查全率的变化关系图称为P-R图。若一个分类器的曲线在另一个的外侧,则该分类器更优(类似无差异曲线)。对于交叉情况,以查全率与查准率相等的平衡点进行比较。
ROC曲线与AUC
真正例率:实际为正例的样本中,有多少预测为正(召回率):
假正例率:实际为反例的样本中,有多少预测为正:
根据不同的截断点,对TPR和FPR作图,得到ROC曲线。当截断点为1时,两者都为0;当截断点为0时,两者都为1,因此ROC曲线是(1,1)与原点之间的曲线。
ROC曲线下方的面积称为AUC,上方的面积称为排序损失,AUC越大模型越好(凸向TPR)。
代价曲线
代价敏感错误率:考虑到两种错误的代价可能不同,令假反例FN的代价为,假正例FP的代价为
,代价敏感错误率
,n为样本数之和。对于多分类问题,只需定义所有错误的代价。
归一化的正例概率代价:在测试集中,假设正例所占的比例为p,那么正例概率代价
即用代价作为权重,对正例所占的比例进行加权调整。
模型代价
归一化代价:
正例概率代价乘以对应错误率,
期望总体代价
调整截断点取值,可得到FPR和FNR的不同取值,据此可绘制曲线。
若截断点为0,全部判为正例,FPR:实际为反例的样本中被判为正例的比例=1,FNR实际为正例的样本中被判为反例的比例=0。
若截断点为1,全部判为反例,FNR=1,FPR=0。
这些线段的包络线称为代价曲线,代价曲线下方的面积为期望总体代价,面积越小学习器越好。
比较检验
单个学习器的检验
单次留出法(检验单个学习器错误率是否超出阈值)
以错误率为例,可做假设
对于单次测试的结果,记样本量为n,分类错误的样本量为m。对于错误率为的模型,错误样本量服从二项分布
。
在显著水平下,可求出
P(错误样本数≥m)<α(小概率事件)的最大临界错误率
,若
,则拒绝原假设,否则接受原假设。
多次留出法
进行多次测试,得到多个错误率,可做出原假设
,求出均值和方差,构建t统计量
两个学习器的比较检验(错误率是否存在显著差异)
交叉验证t检验
对于两个学习器,使用k折交叉验证,得到k对错误率,然后作差,得到,做原假设
,构建t统计量:
问题:交叉验证的数据会存在部分折叠,导致数据间存在相关性,进而扭曲分布,导致高估了接受原假设的概率。
解决方法:采用5*2交叉验证法,每次做2折测试,重复五次,均值只取第一轮测试的两个错误率计算,,但每次都计算方差
,取各次的平均。构造t统计量:
McNemar检验
记算法A正确而B错误的样本数为,算法B正确而A错误的样本数为
,若两个学习器性能相同,应有
,则
服从正态分布
,因此构建卡方分布统计量:
多个学习器的比较检验
Friedman检验
针对每个数据集,分别测试k个算法,得到性能好坏的排序,利用N个数据集构建N组排序,求出平均序值。表示第i个算法的平均序值,
(1到k上均匀分布),基于此构建统计量:
Nemenyi检验
若在Friedman检验中,得出算法性能有显著差异,则需进一步区分各算法。
平均序值差别的临界值域,
是与k和显著性水平有关的量。
以平均序值为中心,做出长度为CD的线段,得到Friedman检验图:若两个算法线段无重叠,可认为存在显著差异
A与C存在显著差异,并且A优于C。
偏差-方差权衡
泛化误差等于偏差、方差与噪声之和
模型的泛化性能由算法的学习能力、数据的充分性和学习任务的难度共同构成。
偏差衡量的是估计量的期望值与真实值之间的差异程度;方差衡量了该估计量随不同的随机数据样本变化的程度。一般来说,方差和偏差之间存在权衡关系,目标是选择使均方误差最小的估计量。
偏差-方差窘境:若训练不足,欠拟合,偏差会主导泛化误差;若训练充足,训练数据的扰动会被学习到,方差主导泛化误差;若训练过于充足,训练数据的轻微扰动会使学习器发生显著变化,出现过拟合。
决策树
决策树是一种有监督学习算法,形如倒树状,顶部的叫做根节点,包含了样本全集,向下包含了内部节点,最末端的是叶节点,对应决策的结果。
决策树的递归过程:
1. 针对当前样本生成一个节点。
2. 如果所有样本属于同一类别,则标记为叶结点,不再划分,类别自然已决定。
3. 如果属性集为空,或所有样本所有属性都相同,则标记为叶结点,不再划分,类别以多数决定。
4. 选择最优划分属性,针对这个属性的每个取值生成一个分支。
(a) 如果分支为空,则标记为叶结点,不再划分,类别以划分前的多数决定
(b) 如果分支不为空,则回到步骤1继续细分
2、3、4(a)共三种结束条件
划分指标
信息熵
一般而言,希望决策树分支节点包含的样本尽量属于同一个类别,即纯度越来越高。信息熵就是度量样本纯度的指标,即样本集合D中各类样本所占比例为,则有信息熵:
信息熵越小,纯度越高
信息增益
若属性a具有V种取值,则可划分出V个节点,每个节点都有对应的信息熵,按样本数量进行加权,相比于分割前的减小量就是信息增益:
ID3决策树算法选择信息增益最大者为划分属性。
信息率
定义属性a的固有值:
据此定义增益率:
C4.5决策树算法选择增益率最大者作为划分属性。
信息增益准则偏好取值较多的属性,增益率准则偏好取值较少的属性。
基尼系数
基尼值表示从数据集中任意抽取两个样本,其类别标记不一致的概率。
属性a的基尼系数是各类别的基尼值按样本数量进行加权:
CART决策树选择基尼指数最小者作为划分属性。
剪枝
剪枝处理通过主动去掉分支,以降低过拟合的风险。
预剪枝
指在建立决策树的过程中,判断是否要剪枝。如果分割一个节点使得决策树在验证集上泛化能力下降,就不再进行划分。
预剪枝可以显著减少训练、测试的时间,但可能导致欠拟合问题。
后剪枝
指先生成一棵完整的决策树,然后从下到上考察每个节点,若划分后使得在验证集上的泛化性能下降,则不应划分,决定剪枝。
后剪枝能保留更多分支,欠拟合风险更小,泛化性能更好。但因为后剪枝需要先生成完整的决策
树,所以训练和测试所需时间更多。
集成学习
集成学习是通过构建并结合多个学习器来完成学习任务:先产生一组个体学习器,再用某种策略结合起来,例如投票、取平均,常可取得更好的效果。
若个体学习器的类型全部相同,则称为同质集成,这些个体学习器称为基学习器,相应的算法称为基学习算法。而若个体学习器的类型不同,则称为异质集成,个体学习器称为组件学习器。
集成学习的优点:
1.统计上,假设空间更大,单学习器可能误选假设。
2.计算上,单学习器可能陷入局部最优。
3.表示上,单学习器的假设可能与真实假设不符合。
Boosting
是串行生成的序列化方法。先使用训练集进行初始训练,再将之前做错的样本重点关注,并重新训练下一个基学习器,多次训练后,将所有基学习器进行加权。可使用重赋权法或重采样法调整不同样本的关注度。
Boosting主要关注降低偏差,能基于泛化性能很弱的学习器构建很强的集成。
Bagging
是同时生成的并行化方法。利用自助法产生若干个子数据集,分别训练学习器,最后结合。
Bagging主要关注降低方差,通过制造更丰富的训练集减少学习器受样本的扰动。不剪枝决策树、神经网络就是易受样本扰动的学习器。
随机森林是Bagging的扩展变体,每次分类随机抽取k个属性进行划分,推荐。
结合策略
平均法
用于数值型输出,包括简单平均法和加权平均法。若个体学习器性能相差较大,则宜采用加权平均法,用基学习器的性能作为权重;若个体学习器的性能差别不大,则宜采用简单平均法。
投票法
用于分类任务,包括绝对多数投票法、相对多数投票法和加权投票法。学习器直接给出类标记的预测,称为硬投票。学习器给出样本属于不同类的概率,称为软投票。若基学习器类别不同,不能直接比较概率,只能进行硬头票。
学习法
若训练数据足够多,可以将个体学习器的结果作为输入,形成次级训练集,再训练一个学习器,称
为学习法,以Stacking方法为代表。
为了避免过拟合,在训练个体学习器用过的样本就不要用于次级训练集的生成。
此时个体学习器称为初级学习器,用于结合的学习器称为次级学习器或元学习器。
多样性
误差-分析分解
记表示集成学习器的泛化误差,
表示个体学习器泛化误差的加权均值,
表示个体学习器的加权分歧值,则有
说明个体学习器准确性越高、多样性越大,则集成越好。
多样性度量
以二分类任务为例,记样本总量为m,二分类任务可形成列联表:
常见多样性度量有:
在K统计量中,表示分类结果一致的概率
,
表示分类结果偶然一致的概率:
每对分类器的多样性度量与平均误差可绘制为散点图,例如K-误差图,点云位置越高,说明个体
分类器准确性越低;点云越靠右,说明个体学习器的多样性越小:
多样性的增强
数据样本扰动:基于采样法,从初始数据集产生不同的数据子集
输入属性扰动:每次训练只选部分属性构成的子集
输出表示扰动:利用翻转法、输出调制法,将输出的表示方法稍作变动
算法参数扰动:改变学习器的参数
聚类分析
聚类任务及其评价
聚类任务:属于无监督学习,目标是将样本划分为不同的子集,每个子集称为一个簇,使簇内的样本尽可能相似,不同簇的尽可能不同,即簇内相似度高,簇间相似度低。
距离度量
距离度量应满足的性质:
1.非负性 2.同一性(相同位置距离为0)3.对称性 4.直递性
对于两个n维向量,闵可夫斯基距离定义为:
类比于向量的范数(范数就是向量的长度):
,
范数就是闵可夫斯基距离的特殊情况。
曼哈顿距离:当p=1,
欧式距离:当p=2,
切比雪夫距离:当p=,
可以加权使用。
以上是有序属性,属性上定义了序:1和2更接近,离3更远。对于无序属性,两两之间的距离无法直接比较:令表示在属性u上取值为a的样本数,
表示第i个簇中,属性u上取值为a的样本数,记总簇数为k,则属性u上两个离散值a与b之间的VDM距离为:
(遍历每个簇中份额之差的p次方)
对于混合属性,可以将有序属性排在无序属性之前,计算闵可夫斯基距离:
有时可舍弃直递性,采用非度量距离,比如:人和马都与人马接近,但人和马非常不相似。可通过距离度量学习来确定适合样本的距离算式。
性能度量
外部指标:将聚类结果与某个模型进行比较。
从m个样本中任选出两个样本S、D,参考模型和待评价模型得出的结果可形成如下列联表:
由此给出如上外部指标,均在之间,且越大越好。
内部指标:直接考察聚类结果。
DB指数:首先对于每个簇,计算它与其他簇的簇内样本平均距离之和与簇中心点距离之比的最大值,再对每个簇求平均。
Dunn指数:用各对簇的簇间距离最小值,除以簇内距离的最大值,越大越好:
簇内距离采用簇内样本距离的最大值,簇间距离采用两簇内样本距离的最小值。
原型聚类
原型聚类假设聚类结构能通过一组原型刻画,先对原型进行初始化,在对原型更新迭代求解。
K-均值聚类
以最小化簇心距离为目标,簇心距离采用欧氏距离范数其步骤为:
1.指定k的值,随机选择k个样本作为初始中心
2.针对每个样本,离哪个初始中心最近,就划分到哪个簇
3.重新计算每个簇的簇心
4.重复步骤23,直至一定次数或簇心稳定。
学习向量量化LVQ
假设数据样本带有类别标记,以此辅助聚类。
1.随机初始化一组原型向量
2.随机选择一个样本,求出最近的向量
3.若类别标记相同,则使原型向量靠近样本,若不同则远离样本。
4.重复直至一定次数或原型向量稳定。
在习得一组原型向量后,根据距离最近原则对样本空间进行簇的划分,称为Voronoi剖分。
高斯混合聚类
采用概率模型表达聚类原型,假设样本是多个多维正态分布按一定比例混合,簇划分原则是原型对应的后验概率。
高斯混合聚类需先指定簇的数量,步骤如下:
1.随机初始化模型参数:簇的中心坐标、协方差矩阵、混合比例
2.求各成分的后验概率,每个样本归类到后验概率最大者
3.用极大似然估计重新求出参数,令相应后验概率最大化
4.重复直至一定次数或似然函数稳定
密度聚类
密度聚类假设聚类结构能通过样本分布的紧密程度确定,从样本密度的角度考察样本之间的可连接性,基于可连接样本扩展聚类簇,无需事先指定簇的数量。
邻域是指某一样本
距离内的范围,对应的Minpts指样本的
邻域中至少包含的样本数,对应的样本称为核心点;若样本不在指定的
邻域内,但在核心点的
邻域内,则称为边界点;既不是核心点、也不是边界点的称为噪声点。
对于两个相关样本,其关系可能有
密度直达:样本落在核心对象的邻域里,即核心点。
密度可达:两个样本以若干样本作为媒介密度直达,不满足对称性(边界对象)。
密度相连:两个样本都与第三个样本密度可达,满足对称性。
DBSCAN算法:簇由密度可达关系到处的最大密度相连样本集合。步骤:
1.找出所有核心对象
2.任选一个核心对象为种子,找出密度可达的样本生成簇
3.再选未成簇的核心对象,重复上一步,直至所有核心对象均成簇。
层次聚类
用不同层次对数据集进行划分,形成树形聚类结构,可以自上而下建立,也可以自下而上建立。只需指定层级结构便可指定簇的数量。
AGNES是一种自下而上的层次聚类,步骤:
1.将每个样本都看成一个簇,计算所有簇之间的距离。
2.找到距离最近的两个簇,进行合并
3.更新簇之间的距离,重复步骤直至一个簇。
距离度量可采用样本点距离的最小距离、最大距离、平均距离等,相应称为单链接、完全链接、平均链接。
数据降维
KNN
KNN是一种有监督学习算法,对于给定样本,寻找距离其最近的k个样本,并基于这k个样本进行预测:分类问题会输出频数最高的值;回归问题会输出平均值。k的取值和距离的度量会对输出结果产生影响。
KNN的特点
懒惰算法:不需要提前训练,收到测试样本后再处理即可。对应地,需要事先训练的算法称为急切算法。
KNN算法的泛化错误率不超过贝叶斯最优分类器的2倍。
高维数据的难点(维数灾难):1.距离计算困难 2.数据样本稀疏
降维嵌入:对于高维的数据样本,只需提取少数与机器学习任务有关的维度。
降维的评估:可比较降维前后学习器的性能。若将数据降至二维或三维,也可使用可视化技术。
数据降维方法
多维缩放:要求样本的距离在降维后仍得到保持。
线性降维:基于线性变换方法降维。对于样本X,利用变换矩阵W,得到,其元素
。
主成分分析
是一种线性降维方法,首先将数据做标准化处理,平移令均值为0,缩放使方差为1,选择一个超平面,将样本投影到超平面上,超平面应满足:
最近重构性:样本到超平面的距离尽可能近
最大可分性:样本在超平面上的投影尽可能分开——解释尽可能多的方差。
设样本构成矩阵,只需对
进行特征值分解,只取前几个最大的特征值,对应单位特征向量
构成的矩阵就是投影矩阵。各个特征值所对应特征向量的分量称为载荷,原样本在投影后的分量称为在各主成分上的得分。
特征向量是彼此正交的单位向量:
重建:只需对主成分进行逆变换,由于只保留了部分特征值,所以无法完全重建。
双标图
可视化主成分的一种方法是通过双标图(biplot)。双标图绘制两样东西,左侧和底部使用一种标签,顶部和右侧使用另一种标签。对于主成分,双标图显示哪些变量彼此相关,以及观测值如何随所示的两个主成分变化。
碎石图
在选择主成分数量时,数量越少,则降维越多,但信息丢失也越多,选择标准有:
1.根据特征值占比,选择前若干个主成分
2.根据方差解释比例,选择前若干个主成分,使方差解释比例之和大于一定值
方差解释比例PVE是投影后某分量方差与变换前所有分量方差之和的比值。