一、基本概念
- 错误率(Error Rate):分类错误的样本数占样本总数的比例。
- 精度(Accuracy):1 - 错误率,即分类正确的样本数占样本总数的比例。
- 误差(Error):学习器的实际预测输出与样本的真实输出之间的差异。
- 训练误差(Training Error)或经验误差(Empirical Error):在训练集上的误差。
- 泛化误差(Generalization Error):在新样本上的误差。
二、过拟合与欠拟合
1、过拟合(Overfitting):
定义:对训练数据拟合过当,训练集表现很好,但测试集表现差。
原因:学习器的学习能力过于强大,学到了训练样本中的噪声或不太一般的特性。
解决方法:
- 增加训练数据。
- 降低模型复杂度,如减少神经网络层数、剪枝树模型等。
- 使用正则化方法,如L2正则化。
- 集成学习方法,如Bagging、Boosting等。
2、欠拟合(Underfitting):
定义:模型在训练和预测时都表现不好。
原因:学习器的学习能力低下,未能充分学习训练样本的一般性质。
解决方法:
- 增加新特征。
- 增加模型复杂度,如线性模型加高次项、神经网络增加层数等。
三、评估方法
1、留出法(Hold-out):
直接将数据集D划分为两个互斥的集合,一个作为训练集S,另一个作为测试集T。
注意事项:
- 训练/测试集的划分要尽可能保持数据分布的一致性,常采用分层采样。
- 一般采用若干次随机划分,重复实验评估后取平均值作为评估结果。
- 训练集数据一般取2/3~4/5。
2、交叉验证法(Cross Validation):
先将数据集D划分为k个大小相似的互斥子集,每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集。
注意事项:
- 划分方式有多种,为减少误差,常重复多次划分取平均。
- 常用的k值有5、10、20等,特别地,当k=m(样本总数)时,称为留一法(Leave-One-Out,LOO)。
3、自助法(Bootstrapping):
通过自助采样法产生训练集D',D-D'作为测试集。
初始数据D中约有36.8%的样本未出现在采样数据集D'中,这部分样本用于测试,称为包外估计(Out-of-bag estimate)。
自助法适用于数据集较小、难以有效划分训练/测试集的情况,但会改变初始数据集的分布。
4、调参与最终模型
验证集(validation set):我们通常把学得模型在实际使用中遇到的数据称为测试数据,为了加以区分,模型评估与选择中用于评估测试的数据集常称为“验证集”(validation set)
超参数搜索算法:
- 网格搜索(Grid Search):查找范围内所有点来确定最优值,但计算资源消耗大。
- 随机搜索(Random Search):在范围中随机选取样本点,可能更快但不一定得到全局最优。
- 贝叶斯优化(Bayesian Optimization):对目标函数的形状进行学习,找到全局最优解,但可能陷入局部最优。
四、性能度量
模型的“好坏”是相对的,什么样的模型是好的,不仅取决于算法和数据,还决定于任务需求.
回归任务最常用的性能度量是“均方误差”(mean squared error)
更一般的,对于数据分布D和概率密度函数p(),均方误差可描述为
1错误率与精度
2 查准率、查全率与F1
“查准率”(precision):“检索出的信息中有多少比例是用户感兴趣的”
“查全率”(recall):“用户感兴趣的信息中有多少被检索出来了”﹒
对于二分类问题,可将样例根据其真实类别与学习器预测类别的组合划分为真正例(true positive)、假正例(false positive)、真反例(true negative)、假反例(false negative)四种情形,令TP、FP、TN、FN分别表示其对应的样例数,则显然有TP+FP+TN + FN=样例总数.分类结果的“混淆矩阵”(confusion matrix)如表2.1所示.
查准率 与查全率 分别定义为
F1度量:
F1度量的一般形式——
3 ROC与AUC
4代价敏感错误率与代价曲线
其中 是样例为正例的概率;纵轴是取值为 [0 1] 的归一化代价
四、比较校验
1 假设检验
五、 偏差与方差
偏差-方差分解是解释学习算法泛化性能的一种重要工具,其尝试对学习算法的期望泛化错误率进行拆解。使用样本数相同的不同训练集产生的方差为:
噪声为
期望输出与真实标记的差别称为偏差,即
经过推导可得泛化误差可以分解为偏差、方差与噪声之和。