机器学习笔记(模型的评估与选择)

时间:2022-12-25 12:41:37

1. 评估方法

由于实际训练中无法直接获得泛化误差,而训练误差又由于过拟合现象的存在而不适合作为标准。因此在周志华的机器学习课本中写到以下几种评估方法。

1.1 留出法

简而言之就是将数据集划分为训练集(70%)和测试集(30%),但是要注意以下几点 :

  1. 训练/测试集的划分要尽可能保持数据分布的一致性,避免因数据的划分过程引入额外的偏差而对最终结果产生影响(在广告预测中,假设样本数据的用户分别有中国人、美国人、朝鲜人、德国人,而划分数据集时将中国人和美国人的数据作为训练集,朝鲜人和德国人的数据作为测试集,这种做法将会引入额外的偏差。正确的做法是在每个国家中抽取百分之70作为训练集,剩下的作为测试集)

  2. 分类任务中要保持样本的类别比例相似。

  3. 使用留出法时,一般要使用若干次随机划分,每次产生一个训练/测试集用于实验评估,100次后就得到100个结果,而留出法返回的则是这100个结果的平均。

  4. 另外值得一提的是,可以根据你的样本量来划分训练集和测试集。假设有1000000样本量,那么你可以将99%的样本划分为训练集,1%的样本做为测试集,因为10000个样本做为测试集已经足够。

1.2 交叉验证法

交叉验证法是将数据集 D 划分为 k 个大小相似的互斥子集。每个子集都尽可能保持数据分布的一致性(可以分层采样)。然后,每次用 k 1 个子集的并集作为训练集,余下的那个子集作为测试集;这样就可以获得 k 组训练/测试集,从而可进行 k 次训练和测试,最终返回的是这 k 个测试结果的均值。 k 最常用的取值是10,此时称为10折交叉验证。与留出法相似,为减小因样本划分不同而引入的差别, k 折交叉验证通常要随机使用不同的划分重复 p 次,最终的评估结果过是这 p k 折交叉验证结果的均值。

2. 性能度量

对学习器的泛化性能进行评估,不仅需要有效可行的实验估计方法,还需要有衡量模型泛化能力的评价标准,这就是性能度量。

2.1 错误率与精度

错误率是分类错误的样本数占样本总数的比例。见式1.1

(1.1) E ( f ; D ) = 1 m i = 1 m I ( f ( x i ) y i )

精度则定义为分类正确的样本数占样本总数的比例。见式1.2
(1.2) a c c ( f ; D ) = 1 m i = 1 m I ( f ( x i y i )

= 1 E ( f ; D )

更一般的,对于数据分布 D 和概率密度函数 p ( · ) ,错误率和精度可分别描述如下式所示
(1.3) E ( f ; D ) = x D I ( f ( x ) y ) p ( x ) d x

(1.4) a c c ( f ; D ) = x D I ( f ( x ) = y ) p ( x ) d x

2.2 查准率、查全率与F1

错误率和精度虽常用,但并不能满足所有任务需求。如用训练好的模型对西瓜进行判别,显然错误率衡量了有多少比例的瓜被判别错误,但若我们关心“所有好瓜中有多少比例被挑了出来‘那么错误率就不够用了。这时需要使用其他的性能度量,“查准率”与”查全率”更为适用于此类需求的性能度量。对于二分类问题,分类结果的“混淆矩阵”如下表所示
机器学习笔记(模型的评估与选择)
查准率 P 与查全率 R 分别定义为

(1.5) P = T P T P + F P

(1.6) R = T P T P + F N

查准率即表示为真正例占预测为正例数的比例,同样,查全率表示为真正例占所有实际正例数的比例。查准率和查全率是一对矛盾的度量。一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。若比较两个学习器的优劣即可比较 P R 曲线,若一个学习器的 P R 曲线被另一个学习器的曲线完全“包住”则可断言后者的性能优于前者。但这个值不太容易估算,因此设计了一些综合考虑查准率、查全率的性能度量。
“平衡点”(“简称BEP”)就是这样一个度量,它是“查准率=查全率”时的取值,但BEP还是过于简化,更常用的是F1度量:
(1.7) F 1 = 2 × P × R P + R = 2 × T P + T P T N

2.3 ROC与AUC

R O C 全称是“受试者工作特征”曲线。 R O C 曲线与 P R 曲线使用查准率、查全率为纵、横轴不同, R O C 曲线的纵轴是“真正例率”( T P R )横轴是“假正例率”( F P R ),两者的定义分别为

(1.8) T P R = T P T P + F N

(1.9) F P R = F P T N + F P

进行学习器的比较时,与 P R 图相似,若一个学习器的 R O C 曲线被另一个学习器的曲线完全“包住”则可断言后者的性能优于前者。若两个学习器的 R O C 曲线发生交叉,则难以一般地断言两者孰优孰劣;此时一定要进行比较,则较为合理的判据是比较 R O C 曲线下的面积,即 A U C