【DW 11月-西瓜书学习笔记】Task01:绪论、模型评估与选择

第一章    绪论

让我们的机器学习之旅从挑选一个好瓜开始。只绪论介绍基本术语、机器学习的发展,我只记录一些特殊的术语。

1.1 机器学习的定义

     计算机通过学习经验数据得到模型,面对新情况时做出有效判断。

   还有一种解释:

   假设:

     P:计算机程序在某任务类T上的性能。

     T:计算机程序希望实现的任务类。

     E:表示经验,即历史的数据集。

      若该计算机程序通过利用经验E在任务T上获得了性能P的改善,则称该程序对E进行了学习。

1.2 机器学习的一些基本术语

      假设我们收集了一批西瓜的数据,例如:(色泽=青绿;根蒂=蜷缩;敲声=浊响), (色泽=乌黑;根蒂=稍蜷;敲声=沉闷), (色泽=浅白;根蒂=硬挺;敲声=清脆)……每对括号内是一个西瓜的记录。

实例(instance) 样本(sample)

特征(feature)   属性(attribute)

特征向量(feature vector)

训练集(training set)

测试集(test set)

泛化能力(generalization)

任务的分类

分类(classification)任务:预测的值为离散值

回归(regression)任务:预测的值为连续值

聚类(clustering)任务:将训练集划分为若干组,每组称为一个簇。

监督学习(supervised learning):训练数据有标记信息的学习任务,比如分类和回归

无监督学习(unsupervised learning):训练数据没有标记信息的学习任务,比如聚类和关联规则。


第二章  模型的评估与选择

2.1 误差与过拟合

训练误差(training error)

测试误差(test error)

泛化误差(generalization error):学习器在所有新样本上的误差称为泛化误差

过拟合(overfitting):学习能力过强,以至于把训练样本所包含的不太一般的特性都学到了

欠拟合(underfitting):学习能太差,训练样本的一般性质尚未学好

在过拟合问题中,训练误差十分小,但测试误差较大;在欠拟合问题中,训练误差和测试误差都比较大。目前,欠拟合问题比较容易克服,例如增加迭代次数等,但过拟合问题还没有十分好的解决方案,过拟合是机器学习面临的关键障碍。

2.2 评估方法

测试集与训练集互斥

2.3 训练集与测试集的划分方法

2.3.1 留出法

将测试集划分为两个互斥集,一个作为训练集S,一个作为测试集T,满足D=S∪T且S∩T=∅

2.3.2 交叉验证法

将数据集D划分为k个大小相同的互斥子集,满足D=D1∪D2∪...∪Dk,Di∩Dj=∅(i≠j),同样地尽可能保持数据分布的一致性,即采用分层抽样的方法获得这些子集。

2.3.3 自助法

给定包含m个样本的数据集D,每次随机从D 中挑选一个样本,将其拷贝放入D',然后再将该样本放回初始数据集D 中,使得该样本在下次采样时仍有可能被采到。重复执行m 次,就可以得到了包含m个样本的数据集D'。

在m次采样中,样本始终不被采到的概率的极限

通过自助采样,初始样本集D中大约有36.8%的样本没有出现在D'中,于是可以将D'作为训练集,D-D'作为测试集。自助法在数据集较小,难以有效划分训练集/测试集时很有用,但由于自助法产生的数据集(随机抽样)改变了初始数据集的分布,因此引入了估计偏差。在初始数据集足够时,留出法和交叉验证法更加常用。

2.4 调参(parameter tuning)

2.5 性能度量

均方误差


错误率+精度=1

2.5.2 查准率/查全率/F1


举个例子,在推荐系统中,我们只关心推送给用户的内容用户是否感兴趣(即查准率),或者说所有用户感兴趣的内容我们推送出来了多少(即查全率)

P-R曲线定义如下:根据学习器的预测结果(一般为一个实值或概率)对测试样本进行排序,将最可能是“正例”的样本排在前面,最不可能是“正例”的排在后面,按此顺序逐个把样本作为“正例”进行预测,每次计算出当前的P值和R值,如下图所示:

若一条曲线包住另一条,则说明这条曲线性能更好,例如上图A优于C。

若A和B的曲线发生了交叉,则谁的曲线下的面积大,谁的性能更优。

但曲线下面积很难估算,因此产生平衡点(Break-Event Point,简称BEP)的概念,即当P=R时的取值,平衡点的取值越高,性能更优。

综合考虑用F-Measure,又称F-Score。F-Measure是P和R的加权调和平均



F-Measure

特别地,当β=1时,也就是常见的F1度量,是P和R的调和平均,当F1较高时,模型的性能越好。


有多个二分类混淆矩阵时,估算全局性能的方法有两种,分为宏观和微观。宏观就是先算出每个混淆矩阵的P值和R值,然后取得平均P值macro-P和平均R值macro-R,在算出Fβ或F1,而微观则是计算出混淆矩阵的平均TP、FP、TN、FN,接着进行计算P、R,进而求出Fβ或F1。

2.5.3 ROC与AUC


真正例率TPR=TP/(TP+FN)

假正例率FPR=FP/(TN+FP)

分析图可知,当FN=0时,TN也必须0,反之也成立,我们可以画一个队列,试着使用不同的截断点(即阈值)去分割队列,来分析曲线的形状,(0,0)表示将所有的样本预测为负例,(1,1)则表示将所有的样本预测为正例,(0,1)表示正例全部出现在负例之前的理想情况,(1,0)则表示负例全部出现在正例之前的最差情况。

将阈值设为样例预测值

若为真正,则坐标为(x,y+1/m+)

若为假例,则坐标为(x+1/m-,y)

ROC曲线下的面积定义为AUC(Area Uder ROC Curve),不同于P-R的是,这里的AUC是可估算的,即AOC曲线下每一个小矩形的面积之和。易知:AUC越大,证明排序的质量越好,AUC为1时,证明所有正例排在了负例的前面,AUC为0时,所有的负例排在了正例的前面。


2.5.4 代价敏感错误率与代价曲线

“代价敏感”的错误率为


同样对于ROC曲线,在非均等错误代价下,演变成了“代价曲线”,代价曲线横轴是取值在[0,1]之间的正例概率代价,式中p表示正例的概率,纵轴是取值为[0,1]的归一化代价。


代价曲线的绘制很简单:设ROC曲线上一点的坐标为(TPR,FPR) ,则可相应计算出FNR,然后在代价平面上绘制一条从(0,FPR) 到(1,FNR) 的线段,线段下的面积即表示了该条件下的期望总体代价;如此将ROC 曲线土的每个点转化为代价平面上的一条线段,然后取所有线段的下界,围成的面积即为在所有条件下学习器的期望总体代价,如图所示:


2.6 比较检验

统计假设检验(hypothesis test)

2.6.1 假设检验



2.6.2 交叉验证t检验


2.6.3 McNemar检验

MaNemar主要用于二分类问题,与成对t检验一样也是用于比较两个学习器的性能大小。主要思想是:若两学习器的性能相同,则A预测正确B预测错误数应等于B预测错误A预测正确数,即e01=e10,且|e01-e10|服从N(1,e01+e10)分布。


因此,如下所示的变量服从自由度为1的卡方分布,即服从标准正态分布N(0,1)的随机变量的平方和,下式只有一个变量,故自由度为1,检验的方法同上:做出假设-->求出满足显著度的临界点-->给出拒绝域-->验证假设。

2.6.4 Friedman检验与Nemenyi后续检验

上述的三种检验都只能在一组数据集上,F检验则可以在多组数据集进行多个学习器性能的比较,基本思想是在同一组数据集上,根据测试结果(例:测试错误率)对学习器的性能进行排序,赋予序值1,2,3...,相同则平分序值,如下图所示:


若学习器的性能相同,则它们的平均序值应该相同,且第i个算法的平均序值ri服从正态分布N((k+1)/2,(k+1)(k-1)/12),则有:

2.7 偏差与方差

偏差-方差分解是解释学习器泛化性能的重要工具。在学习算法中,偏差指的是预测的期望值与真实值的偏差,方差则是每一次预测值与预测值得期望之间的差均方。实际上,偏差体现了学习器预测的准确度,而方差体现了学习器预测的稳定性。通过对泛化误差的进行分解,可以得到:

期望泛化误差=方差+偏差

偏差刻画学习器的拟合能力

方差体现学习器的稳定性

易知:方差和偏差具有矛盾性,这就是常说的偏差-方差窘境(bias-variance dilamma),随着训练程度的提升,期望预测值与真实值之间的差异越来越小,即偏差越来越小,但是另一方面,随着训练程度加大,学习算法对数据集的波动越来越敏感,方差值越来越大。换句话说:在欠拟合时,偏差主导泛化误差,而训练到一定程度后,偏差越来越小,方差主导了泛化误差。因此训练也不要贪杯,适度辄止。

偏差-方差窘境

参考资料:

《机器学习》周志华.清华大学出版社

【吃瓜教程】《机器学习公式详解》(南瓜书)与西瓜书公式推导直播合集

西瓜书学习笔记(2)--模型的评估与选择

你可能感兴趣的:(【DW 11月-西瓜书学习笔记】Task01:绪论、模型评估与选择)