Task01 第2章 模型评估与选择
2.1 经验误差与过拟合
错误率:a/m
精度:1-a/m
学习器在训练集上的误差称为“训练误差”或“经验误差”,在新样本上的误差称为“泛化误差“。
过拟合与欠拟合
模型选择的理想解决方案:对候选模型的泛化误差进行评估,然后选择泛化误差最小的那个模型。
2.2 评估方法
留出法:将原始数据集D划分训练集S(training set)与测试集T(testing set)
交叉验证法:先将数据集D划分为k个大小相似的互斥子集,每个子集Di都尽可能保持数据分布的一致性(通过分层采样得到)。然后每次用k-1个子集的并集作为训练集,余下的那个座位测试集,于是得到k组训练/测试集,从而可以进行k次训练和测试,称为k折交叉验证,常用的k取值为10。(留一法:对于包含m个样本的数据集D,其中训练集S包含m-1个样本,测试集包含1个样本,留一法的评估结果往往被认为比较准确,但不适用于大数据集)
自助法(bootstrap):按有放回的方法从包含m个样本的数据集D中抽选出容量为m的数据集D‘,通过bootstrap sampling,初始数据集D中约有36.8%的样本未出现在采样数据集D’中,于是将D‘作为训练集,D’/D作为测试集。自助法在数据集较小、难以有效划分训练/测试集时很有用,且非常适用于集成学习,但在初始数据量足够时,留出法和交叉验证法更常用
调参与最终模型:学习算法的很多参数是在实数范围内取值,因此对每种参数配置都训练出来模型是不可行的。
另外,通常把学得模型在实际使用中遇到的数据称为测试数据,用于评估测试的数据集常称为“验证集”(validation set)例如,在研究对比不同算法的泛化性能时,我们用测试集上的判别效果来估计模型在实际使用时的泛化能力,而把训练数据另外划分为训练集和验证集,基于验证集上的性能来进行模型选择和调参。
2.3 性能度量
concept:衡量模型泛化能力的评价标准
错误率E = 分类错误的样本数 / 样本总数
精度acc = 分类正确的样本数 / 样本总数
预测结果 | 预测结果 | |
---|---|---|
真实结果 | 正例 | 反例 |
正例 | TP(真正例) | FN(假反例) |
反例 | FP(真反例) | FN(真反例) |
查准率P = TP / (TP + FP)
查全率R = TP / (TP + FN)
查准率和查全率是一对矛盾的度量,两者此消彼长。通常只有在一些简单任务中,才可能使两者都很高。查准率-查全率曲线称为P-R曲线,“平衡点”(BEP)可以用于度量“P=R”时的取值。但更常用的是F1度量,其一半形式为Fβ
Fβ = ( 1 + β 2 ) ∗ P ∗ R ( β 2 ∗ P ) + R (1+β^2)*P*R\over (β^2*P) + R (β2∗P)+R(1+β2)∗P∗R
β > 0度量了查全率对查准率的相对重要性, β > 1时查全率有更大影响, β < 1时查准率有更大影响, β = 1时为标准的F1。
ROC/AUC:进行学习器比较时,通常ROC曲线下的面积,即AUC越大,认为学习器更优秀。
代价敏感错误率与代价曲线
2.4 比较检验与假设检验
2.5 偏差与方法
泛化误差可分解为偏差、方差与噪声之和。偏差度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力;方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响;噪声则表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度。