异常样本检测:可视化,概率统计(正态分布,高斯分布),PCA降维去除异常值,isolation forest(那些密度很高的簇是可以被切很多次才会停止切割,但是那些密度很低的点很容易很早的就停到一个子空间了)
学习器在所有新样本上的误差——泛化误差(generalization error)
学习能力过强,以至于把训练样本所包含的不太一般的特性都学到了——过拟合(overfitting)
机器学习的大部分带参模型只是改变了最优化目标中的损失函数:如果是Square loss,那就是最小二乘了;如果是Hinge Loss,那就是著名的SVM了;如果是log-Loss,那就是Logistic Regression了。大部分模型的参数都是通过最优化损失函数(可能还加个规则项)而计算(梯度下降,坐标下降等)得到
降维从一定程度起到了提炼优质低维属性和降噪的效果,特征选择则是直接剔除那些与学习任务无关的属性而选择出最佳特征子集
机器学习的核心任务就是:在模型简单的基础上保证模型的契合度
划分训练集与测试集
- 留出法——互斥集合
- 交叉验证法——划分为k个大小相同的互斥子集,采用分层抽样的方法获得这些子集。每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集,这样就有K种训练集/测试集划分的情况,从而可进行k次训练和测试,最终返回k次测试结果的均值
- 自助法——适用于数据集较小的情况,每次随机从D 中挑选一个样本,将其拷贝放入D',然后再将该样本放回初始数据集D 中,最后将D'作为训练集,D-D'作为测试集
性能度量
- 均方误差(mean squared error,MSE)
- 混淆矩阵——TP 实际和预测均为positive;FN实际上positive,预测为negative;FP实际上negative,预测为positive;TN实际和预测均为negative
- P-R曲线——谁的曲线下的面积大,谁的性能更优。当P=R时的取值,平衡点的取值越高,性能更优。ROC曲线以“真正例率”(True Positive Rate,TPR)为横轴,纵轴为“假正例率”(False Positive Rate,FPR),ROC偏重研究基于测试样本评估值的排序好坏。ROC曲线下的面积定义为AUC(Area Uder ROC Curve)AUC越大,证明排序的质量越好;代价敏感错误率与代价曲线
比较检验
- 假设检验——显著水平a一般为0.01,0.05,0.1,单个学习器
- 交叉检验t检验——两个学习器
- McNemar检验——二分类,两个学习器
- Friedman检验与Nemenyi后续检验——多个学习器
偏差与方差——偏差指的是预测的期望值与真实值的偏差,方差则是每一次预测值与预测值得期望之间的差均方。偏差体现了学习器预测的准确度,而方差体现了学习器预测的稳定性。在欠拟合时,偏差主导泛化误差,而训练到一定程度后,偏差越来越小,方差主导了泛化误差。期望泛化误差=方差+偏差
线性模型
- 线性回归——最小二乘法,试图学到一个线性模型尽可能准确地预测新样本的输出值,若属性值之间存在“序关系”,则可以将其转化为连续值,否则转化为向量
- 线性几率回归——引入了一个对数几率函数(logistic function),将预测值投影到0-1之间,从而将线性回归问题转化为二分类问题。
- 线性判别分析(Linear Discriminant Analysis,LDA)——将训练样本投影到一条直线上,使得同类的样例尽可能近,不同类的样例尽可能远。类内散度矩阵越小越好,类间散度矩阵越大越好,“广义瑞利商”(generalized Rayleigh quotient)越大越好
- 多分类学习——将多分类问题拆解为多个二分类问题,训练出多个二分类学习器,最后将多个分类结果进行集成得出结论。有三种拆分策略:OvO:将这N个类别进行两两配对(一个正类/一个反类),从而产生N(N-1)/2个二分类学习器,在测试阶段,将新样本放入所有的二分类学习器中测试,得出N(N-1)个结果,最终通过投票产生最终的分类结果;OvM:每次取出一个类作为正类,剩余的所有类别作为一个新的反类,从而产生N个二分类学习器,在测试阶段,得出N个结果,若仅有一个学习器预测为正类,则对应的类标作为最终分类结果;MvM:每次取若干个类作为正类,若干个类作为反类(通过ECOC码给出,编码),若进行了M次划分,则生成了M个二分类学习器,在测试阶段(解码),得出M个结果组成一个新的码,最终通过计算海明/欧式距离选择距离最小的类别作为最终分类结果
- 类别不平衡问题——分类问题中不同类别的训练样本相差悬殊的情况
预测结果离散为分类(classification),连续则为回归(regression)。回归是通过输入的属性值得到一个预测值。两者均为监督学习(supervised learning),即有标记信息。而聚类和关联规则为无监督学习。
决策树
决策树的构造是一个递归的过程,直至当前结点包含的样本全属于同一类别;当前属性集为空,或是所有样本在所有属性上取值相同,无法划分;当前结点包含的样本集合为空,不能划分。ID3算法使用信息增益为准则来选择划分属性,信息增益越大,表示使用该属性划分样本集D的效果越好。
- C4.5算法使用了“增益率”(gain ratio)来选择划分属性。
- CART决策树使用“基尼指数”(Gini index)来选择划分属性,表示类别标记不一致的概率,越小越好
- 剪枝(pruning)是决策树算法对付过拟合的主要手段
- 二分法处理连续值,以不同权重划分到不同分支中去来处理缺失值
神经网络
M-P神经元模型(阈值逻辑单元)最理想的激活函数是阶跃函数,即将神经元输入值与阈值的差值映射为输出值1或0;采用Sigmoid函数来近似,将较大范围内变化的输入值挤压到 (0,1) 输出值范围内,也称为挤压函数(squashing function)
感知机(Perceptron),又叫功能神经元(functional neuron)由两层神经元组成的一个简单模型,但只有输出层是M-P神经元,即只有输出层神经元进行激活函数处理。通过对属性加权与另一个常数求和,再使用sigmoid函数将这个输出值压缩到0-1之间,从而解决分类问题
在神经网络中,输入层与输出层之间的层称为隐含层或隐层(hidden layer),隐层和输出层的神经元都是具有激活函数的功能神经元。只需包含一个隐层便可以称为多层神经网络。
- 多层前馈神经网络(multi-layer feedforward neural network)每层神经元与下一层神经元之间完全互连,神经元之间不存在同层连接和跨层连接
- BP神经网络算法,又叫误差逆传播算法(error BackPropagation)使用梯度下降法(gradient descent)以单个样本的均方误差的负梯度方向对权重进行调节。梯度下降法沿着负梯度方向去搜索最优解,负梯度方向是函数值下降最快的方向,优化算法,迭代,求解损失函数最小值。BP算法每次更新只针对于单个样例,BP算法的最终目标是要最小化整个训练集D上的累积误差。
产生过拟合问题,解决方法:
- 提早停止训练或引入正则化(regularization);
- 局部极小点,只要满足该点在参数空间中的梯度为零,看邻域,全局最小看所有点;
- 深度学习:增大模型复杂度办法,一是增加隐层的数目,二是增加隐层神经元的数目;
- 训练多隐层神经网络方法,一是无监督逐层训练(unsupervised layer-wise training),每次训练一层隐节点,把上一层隐节点的输出当作输入来训练,本层隐结点训练好后,输出再作为下一层的输入来训练,这称为预训练pre-training。全部预训练完成后,再对整个网络进行微调fine-tuning训练。如深度信念网络(DBN,deep belief network),二是权共享(weight sharing),令同一层神经元使用完全相同的连接权,如卷积神经网络(CNN,Convolutional Neural Network)
支持向量机(SVM,Support Vector Machine)
SVM属于监督学习的一种。找到一个合适的超平面,该超平面能够将不同类别的样本分开,超平面只能解决线性可分的问题
函数间隔用(w’x+b)的正负性恰能表示数据点x*是否被分类正确;几何间隔是数据点到超平面的真实距离,最大间隔
核函数解决线性不可分问题,采用映射的方式,将低维原始空间映射到高维特征空间,使得数据集在高维空间中变得线性可分,从而再使用线性学习器分类。
当数据线性可分时,直接使用最大间隔的超平面划分;当数据线性不可分时,则通过核函数将数据映射到高维特征空间,使之线性可分
贝叶斯分类器
一种概率框架下的统计学习分类器,贝叶斯分类器属于生成式模型,而决策树、神经网络、SVM都是属于判别式模型。训练过程就为参数估计。
先验概率: 根据以往经验和分析得到的概率。后验概率:后验概率是基于新的信息,修正原来的先验概率后所获得的更接近实际情况的概率估计。先验概率就是在没有任何结果出来的情况下估计的概率,而后验概率则是在有一定依据后的重新估计,直观意义上后验概率就是条件概率
极大似然估计(Maximum Likelihood Estimation,MLE)先假定总体具有某种确定的概率分布,再基于训练样本对概率分布的参数进行估计,估计出的参数使得已知样本出现的概率最大,即使得训练数据的似然最大。
朴素贝叶斯分类器(naive Bayes classifier)样本数据的所有属性之间相互独立
EM算法(Expectation-Maximization)
估计参数隐变量,迭代,即坐标下降法。
首先固定一个值,对另外一个值求极值,不断重复直到收敛。若样本服从的分布参数θ已知,则可以根据已观测到的训练样本推断出隐变量Z的期望值(E步),若Z的值已知则运用最大似然法估计出新的θ值(M步)。重复这个过程直到Z和θ值不再发生变化。
聚类K-Means就是通过EM算法来进行迭代的,目标是最小化样本点到其对应类中心的距离和。首先随机选择类中心=>将样本点划分到类簇中=>重新计算类中心=>不断迭代直至收敛
集成学习
先产生一组个体学习器,再使用某种策略将它们结合在一起。个体学习器都属于同一类别,同质的homogeneous,否则异质的heterogenous。准确性和多样性,可以将集成器的预测看做一个伯努利实验
三种主流的集成学习方法:
- Boosting(串行,个体学习器的训练存在依赖关系,必须一步一步序列化进行,如AdaBoost,最小化指数损失函数,核心步骤就是计算基学习器权重和样本权重分布,主要关注于降低偏差)
- Bagging(并行,基学习器的训练之间没有前后顺序可以同时进行,“有放回”采样,有接近36.8%的样本没有被采到,多样性来自于样本扰动,主要关注于降低方差)
- 随机森林(Random Forest,基学习器固定为决策树,随机划分属性,多样性不仅来自样本扰动,还来自属性扰动)
结合策略指的是在训练好基学习器后,如何将这些基学习器的输出结合起来产生集成模型的最终输出。方法有:
- 平均法——回归问题,在个体学习器性能相差较大时宜使用加权平均法,在个体学习器性能相差较小时宜使用简单平均法
- 投票法——绝对多数,相对多数,加权,基学习器的输出值有两种类型,分别为类标记和类概率,基于类概率进行结合往往比基于类标记进行结合的效果更好
- 学习法——如stacking
多样性包括对数据样本、输入属性、输出表示、算法参数进行扰动。
聚类
无监督学习,目的是簇内高内聚紧紧抱团,簇间低耦合老死不相往来
距离度量;距离越小,相似性越大。
- 当p=1时,闵可夫斯基距离即曼哈顿距离(Manhattan distance)
- 当p=2时,闵可夫斯基距离即欧氏距离(Euclidean distance)
- 对于无序属性,我们一般采用VDM进行距离的计算
性能度量:
- 外部——将聚类结果与某个参考模型的结果进行比较,以参考模型的输出作为标准,来评价聚类好坏,评价指标:JC,FMI,RI均越大越好,
- 内部——不依赖任何外部模型,直接对聚类的结果进行评估,评价指标:DBI越小越好,DI越大越好
原型聚类:
- K-Means——首先随机指定类中心,根据样本与类中心的远近划分类簇,接着重新计算类中心,迭代直至收敛
- 学习向量量化LVQ——使用样本真实类标记辅助聚类,首先LVQ根据样本的类标记,从各类中分别随机选出一个样本作为该类簇的原型,从而组成了一个原型特征向量组,接着从样本集中随机挑选一个样本,计算其与原型向量组中每个向量的距离,并选取距离最小的原型向量所在的类簇作为它的划分结果,再与真实类标比较
- 高斯混合聚类——用高斯分布来描述原型
密度聚类,从样本分布的角度来考察样本之间的可连接性,并基于可连接性(密度可达)不断拓展疆域(类簇),如DBSCAN算法
层次聚类,一种基于树形结构的聚类方法,常用的是自底向上的结合策略(AGNES算法)
降维与度量学习
k近邻算法(kNN,k-Nearest Neighbor)属于监督学习,给定某个测试样本,kNN基于某种距离度量在训练集中找出与其距离最近的k个带有真实标记的训练样本,然后给基于这k个邻居的真实标记来进行预测,分类任务采用投票法,回归任务则采用平均法。核心在于k值的选取以及距离的度量。
MDS多维缩放,要求原始空间样本之间的距离在降维后的低维空间中得以保持
主成分分析(PCA)直接通过一个线性变换,将原始空间中的样本投影到新的低维空间中,使用尽可能少的新基向量来表出样本
核化主成分分析(KPCA)空间中的任一向量,都可以由该空间中的所有样本线性表示(核函数先将样本映射到高维空间,再在高维空间中使用线性降维的方法)
流形学习(manifold learning)是一种借助拓扑流形概念的降维方法,在局部与欧式空间具有相同的性质,能用欧氏距离计算样本之间的距离。
- 等度量映射(Isomap)——使用近邻距离来逼近测地线距离,可采用著名的Dijkstra算法或Floyd算法计算最短距离,得到高维空间中任意两点之间的距离后便可以使用MDS算法来其计算低维空间中的坐标
- 局部线性嵌入(LLE)——试图去保持邻域内的线性关系
度量学习,马氏距离是一种考虑属性之间相关性且尺度无关(即无须去量纲)的距离度量
特征选择与稀疏学习
子集搜素(前向,后向,双向)与评价(信息熵,越大越好)
过滤式选择(如relief)——将特征选择与后续学习器训练相分离,首先将相关特征挑选出来,再使用选择出的数据子集来训练学习器。核心在于如何计算出该相关统计量
包裹式选择(如LVW)——将后续的学习器也考虑进来作为特征选择的评价准则,在每一轮迭代中,包裹式选择都需要训练学习器
嵌入式选择与正则化,将特征选择融入学习器的优化过程中
- L1范数(Lasso Regularization)指的是向量中每个元素的绝对值之和,会趋向产生少量的特征,按照绝对值函数来下降
- L2范数(Ridge Regularization )会选择更多的特征,具备较强的控制过拟合能力,按照二次函数来下降L1范数相比L2范数更容易得到稀疏解)