机器学习(周志华)自学总结 二、模型评估与选择

参加 Datawhale 开源组织的8月组队学习(吃瓜教程),作为初学者的总结和一些理解

1.经验误差与过拟合

概述
错误率 error rate 分类错误的样本比例
精度 accuracy 1-错误率
误差 error 训练的学习器的预测与真实值之间的差异
过拟合 overfitting 把一些样本自身特征当成了普遍性规律
欠拟合 underfitting 很多样本的一般性质没能学到
模型选择 model selection 选择泛化误差最小的模型

术语解释

欠拟合

在测试集和训练集表现都很差,说明学习能力差,可以通过增加决策树的分支、神经网络的隐藏层层数、调整超参数等方法解决。

过拟合

在训练集表现很好,但测试集表现很差,学习能力太强。

过拟合无法完全解决,只能缓解,因为在解决NP问题中,P不等于NP。

可以通过数据清洗、正则化、增加训练量等方法缓解。

2.评估方法

概述
测试集 testing set 将数据集(D)划分为测试集(T)训练集(S)
测试误差 testing error 用测试误差作为泛化误差的近似
留出法 hold-out 将D划分为互斥的T和S,并保持分布一致
采样 sampling
分层采样 stratified sampling 划分T和S后,样本不同类别的比例不变
交叉验证法=k折交叉验证 cross validation=k-fold cross validation 将D划分为k个子集,k-1个作为训练集,1个作为测试集,进行k次,每次选不同的子集作为测试集,最终返回均值。
留一法 Leave-One-Out,LOO k=样本数m的k折交叉验证,计算开销大,也不一定更准确
自助法 bootstrapping 每次随机从D中有放回的挑出$D^‘$,D中约有36.8%不会在$D^`$出现,这些就作为测试集。
参数 parameter
调参 parameter tuning
验证集 validation set 用于评估测试的数据

样本划分

留出法

一般将60%-80%的样本用来训练,并进行分层采样,还需要多次进行随机划分,取平均值作为评估结果。

测试集小,评估结果不稳定,方差大;训练集小,评估结果不准确,偏差大。

交叉验证法

不仅要进行k次,还要随机划分p次,最终结果是p次k折交叉验证的结果

自助法

在数据集较小、难以有效划分训练/测试集时很有用,但会改变分布。

调参和最终模型

调参:学习算法有许多超参数需要调整,可以通过选择范围和步长来调参,或使用网格搜索调参。

验证集:基于验证集上的性能来进行模型选择和调参。

3.性能度量

概述
性能度量 performance measure 衡量模型泛化能力的标准,与算法、数据、任务需要有关
均方误差 mean squared error
查准率=准确率 precision 纵轴
查全率=召回率 recall 横轴
真正例 true positive TP
假正例 false positive FN
真反倒 true negative TN
假反例 false negative FN
混淆矩阵 confusion matrix
平衡点 break-event point ,BEP P=R的点
分类阈值 threshold 将预测值分为正例、反例的值
截断点 cut point 将样本一分为二的点,前一部分作为正例,后一部分作为反例
受试者工作特征 Receiver Operating Characteristic ,ROC
真正例率 True Positive Rate , TPR 纵轴
假正例率 False Positive Rate , FPR 横轴
ROC曲线下方面积 Area Under ROC Curve ,AUC

回归问题

最常用的是均方误差

分类问题

错误率与精度

查准率P、查全率R与F1度量

查准率:P=\frac{TP}{TP+FP}

查全率: R=\frac{TP}{TP+FN}

P-R曲线:P和R两者是矛盾的,对样例进行排序,排在前面的是学习器认为"最可能 "是正例的样本,画出关于PR的关系:

2

F1度量:$F1=\frac{2 \times P \times R}{P+R}=\frac{2 \times TP }{样例总数+TP-TN}$

ROC与AUC

ROC曲线:对样例进行排序后,画出关于TPR和FPR的关系:

3