定义:训练数据 统计学习方法 - 图1统计学习方法 - 图2对应的是一个n维的向量,统计学习方法 - 图3是其对应的标记数据,我们的目标是对应给定未知的统计学习方法 - 图4来预测其对应的统计学习方法 - 图5值。

机器学习三种方式

  1. 监督学习: 在训练数据中,所有的统计学习方法 - 图6都对应有相应的统计学习方法 - 图7
  2. 半监督学习: 在训练数据中,只有一部分数据的统计学习方法 - 图8都对应有相应的统计学习方法 - 图9,其他一部分数据没有标签;
  3. 无监督学习: 在训练数据中,所有的统计学习方法 - 图10都没有相应的统计学习方法 - 图11

    统计学习三要素

    统计方法 = 模型(model)+ 策略(strategy)+ 算法(algorithm)

机器学习 = 数据(data) + 模型(model) + 优化方法(optimal strategy)

模型(model)

基于数据,我们需要考虑的问题是需要学习什么样的模型。在监督学习过程中,模型就是所要学习的条件概率分布或者决策函数

策略(strategy)

策略就是我们在机器学习模型中,常提到的损失函数。这是来表示模型的好坏的指标,一般记作:统计学习方法 - 图12。常用的损失函数如下:

  1. 0-1损失函数(0-1 loss function)

统计学习方法 - 图13

  1. 平方损失函数(qurdratic loss function)

统计学习方法 - 图14

  1. 绝对损失函数(absolute loss function)

统计学习方法 - 图15

  1. 对数损失函数(logarithmic loss function)

统计学习方法 - 图16

一般情况下,在给定数据的情况下,我们一般最小化所有训练数据的误差叫做经验风险最小化。之后只需要求解让经验风险最小化的参数即可。经验风险最小化:
统计学习方法 - 图17
当数据量很大的情况下,使用经验风险最小化,可以得到不错的模型,但是当数据量很少的情况下,就会产生过拟合。我们可以在经验风险最小化的基础上加上正则项来防止过拟合,这叫做结构风险最小化
统计学习方法 - 图18
λ是中和参数,来平衡模型复杂度和经验风险之间的关系。

算法

主要表示的是学习方法,例如梯度下降,Adam算法,牛顿迭代方法等。

模型的评估和模型的选择

一般情况下,我们在训练模型的时候,会将数据划分为:所有数据=训练数据集合+验证数据集合+测试数据集合。我们根据训练数据集合得到模型,这时候会产生一个训练误差,我们会根据验证数据的误差来调优一个模型的参数,会得到一个验证误差。之后会将得到的最优模型应用到测试数据集上,得到测试误差

1、数据如何划分?
我们一般选择交叉验证的方式来划分数据集合。交叉验证,顾名思义,就是重复的使用数据,把得到的样本数据进行切分,组合为不同的训练集和测试集,用训练集来训练模型,用测试集来评估模型预测的好坏。在此基础上可以得到多组不同的训练集和测试集,某次训练集中的某样本在下次可能成为测试集中的样本,即所谓“交叉”。 
那么什么时候才需要交叉验证呢?交叉验证用在数据不是很充足的时候。比如在我日常项目里面,对于普通适中问题,如果数据样本量小于一万条,我们就会采用交叉验证来训练优化选择模型。如果样本大于一万条的话,我们一般随机的把数据分成三份,一份为训练集(Training Set),一份为验证集(Validation Set),最后一份为测试集(Test Set)。用训练集来训练模型,用验证集来评估模型预测的好坏和选择模型及其对应的参数。把最终得到的模型再用于测试集,最终决定使用哪个模型以及对应参数。

回到交叉验证,根据切分的方法不同,交叉验证分为下面三种:   

  • 第一种是简单交叉验证,所谓的简单,是和其他交叉验证方法相对而言的。首先,我们随机的将样本数据分为两部分(比如: 70%的训练集,30%的测试集),然后用训练集来训练模型,在测试集上验证模型及参数。接着,我们再把样本打乱,重新选择训练集和测试集,继续训练数据和检验模型。最后我们选择损失函数评估最优的模型和参数。 
  • 第二种是S折交叉验证(S-Folder Cross Validation)。和第一种方法不同,S折交叉验证会把样本数据随机的分成S份,每次随机的选择S-1份作为训练集,剩下的1份做测试集。当这一轮完成后,重新随机选择S-1份来训练数据。若干轮(小于S)之后,选择损失函数评估最优的模型和参数。
  • 第三种是留一交叉验证(Leave-one-out Cross Validation),它是第二种情况的特例,此时S等于样本数N,这样对于N个样本,每次选择N-1个样本来训练数据,留一个样本来验证模型预测的好坏。此方法主要用于样本量非常少的情况,比如对于普通适中问题,N小于50时,我一般采用留一交叉验证。

那这三种情况,到底我们应该选择哪一种方法呢?一句话总结,如果我们只是对数据做一个初步的模型建立,不是要做深入分析的话,简单交叉验证就可以了。否则就用S折交叉验证。在样本量少的时候,使用S折交叉验证的特例留一交叉验证。

2、怎么比较三种误差?
我们的目的是得到模型在测试集合和未来的数据集合上变现良好,这表示我们的模型泛化能力要强,一般情况下我们会使用经验风险加正则项的结构经验误差来进行优化,常用的正则项统计学习方法 - 图19范数。如果训练误差过小,测试误差却大,表示产生了过拟合,具体的可以看下面这个图。
训练误差和测试误差与模型复杂度的关系

生成模型和判别模型

判别模型

  • 直接学习条件概率统计学习方法 - 图21或者决策函数 统计学习方法 - 图22
  • 直接面对预测, 往往学习准确率更高
  • 可以对数据进行各种程度的抽象, 定义特征并使用特征, 可以简化学习问题
  • 代表: k近邻、感知机、决策树、逻辑斯蒂回归、最大熵模型、支持向量机、提升方法和条件随机场等。

生成模型

  • 需要先学习到联合概率分布 P(X,Y),之后在求出条件概率分布统计学习方法 - 图23的模型
  • 收敛速度快, 当样本容量增加时, 学到的模型可以更快收敛到真实模型
  • 当存在隐变量时仍可以用
  • 代表:朴素贝叶斯和HMM

    分类评价指标

    几个常用术语介绍: TP(True Positives)意思是“预测为正样本,并且预测对了”(真阳性)
    TN(True Negatives)意思是“预测为负样本,而且预测对了”(真阴性)
    FP(False Positives)意思是“预测为正样本,但是预测错了”(假阳性)
    FN(False Negatives)意思是“预测为负样本,但是预测错了”(假阴性)

针对不同的目的,人们提出了多种文本分类器性能评价方法,包括召回率、正确率、F1 score、微平均和宏平均、平衡点(break-even point)等,以下介绍其中的几种。

Accuracy and Error Rate

正确率是被分对的样本数在所有样本数中的占比,错误率则与正确率相反,描述被分类器错分的比例
统计学习方法 - 图24%7D%7BN%7D%2C%5Cquad%20Error%5C%20rate%3D%5Cfrac%7B(FP%2BFN)%7D%7BN%7D%0A#card=math&code=Accuracy%3D%5Cfrac%7B%28TP%2BTN%29%7D%7BN%7D%2C%5Cquad%20Error%5C%20rate%3D%5Cfrac%7B%28FP%2BFN%29%7D%7BN%7D%0A&id=sNRoa)

Precision / Recall / F1 score

  • 查准率是精确性的度量,表示被分为正例的示例中实际为正例的占比
  • 查全率是覆盖面的度量,度量有多少个正例被分为正例
  • F1 score 用于综合查准率和查全率,可分为微平均 F1和宏平均 F1,通常采用微平均
    • 微平均是平等的对待每个样本,直接根据计算公式计算出总的查准率和查全率
    • 宏平均是首先计算出每个类别的P和R,然后对P和R分别取平均得到总的查准率和查全率

统计学习方法 - 图25

ROC 曲线和 PR 曲线

ROC 曲线。平面的横坐标是false positive rate(FPR),纵坐标是true positive rate(TPR)。对某个分类器而言,我们可以根据其在测试样本上的表现得到一个TPR和FPR点对。这样,此分类器就可以映射成ROC平面上的一个点。调整这个分类器分类时候使用的阈值,我们就可以得到一个经过(0, 0),(1, 1)的曲线,这就是此分类器的ROC曲线。

统计学习方法 - 图26

PR曲线是Procision Recall Curve的简称,描述的是precision和recall之间的关系, 以recall为横坐标,Precision为纵坐标绘制的曲线。随着召回率的增大,那么精确率整体上可能会呈下降趋势,如下图所示。因此,Precision-Recall曲线很好地展示了在不同阈值取值下精确率和召回率的平衡情况。同时,从上面的分析可知,最理想的情况便是随着召回率的提升,精确率也逐步保持提升或保持不变。

在基于PR曲线的基础上,可以通过计算曲线下面积(Area Under the Curve, AUC)来得到一个整体的评估值,高AUC也就意味着高精确率和高召回率,AUC的值越大也就意味着模型的效果越好。

统计学习方法 - 图27

Mean Reciprocal Rank (MRR)

MRR常被用于评估NLP任务中排序Ranking的性能,如查询文档排序和QA。其中Q是所有可能答案的集合,统计学习方法 - 图28是真实答案的排名位置。
统计学习方法 - 图29