《机器学习》笔记——1 模型的评估方法

测试集与训练集

我们无法直接获得泛化误差,而训练误差又由于过拟合现象的存在而不适合作为评估标准。
通常需要一个测试集来测试模型对新样本的学习能力,用测试集的测试误差作为泛化误差的近似。所以,一个包含 m 个样例的数据集D,需要进过处理,从中产生出训练集 S 和测试集 T,来进行模型的学习和测试。

评估方法

  • 1 留出法
    直接将数据集D划分为两个互斥的集合,一个做训练集 S,一个作为测试集 T。

    注意:
    尽量保持数据分布的一致性,避免因数据划分而引入额外偏差(如分层采样,保留类别比例的采样的方式);
    单次使用留出法不够稳定可靠,一般采用若干次随机划分、重复评估后取平均值作为评估结果;
    训练集与测试集的数目比例会不可避免的影响结果,训练集小—>偏差大,测试集小—>方差大,常见做法,2/3~4/5用于训练。

  • 2 交叉验证法
    先将数据集 D 划分为 k 个大小相似的互斥子集,每个子集尽可能保持数据分布的一致性,然后每次用 k-1 个子集的并集进行训练,余下的那个子集作为测试。最终取 k 次测试的结果的均值作为评估结果。k 折交叉验证,常取 k=10

    注意:
    通常要随机使用不同的划分重复 p 次,取 p 次 k 折交叉验证结果的均值,如常见的10次10折交叉验证;
    留一法的评估结果往往被认为更准确,即 m 个样本时,令 k=m,每个子集只包含一个样本。但是数据集比较大时,训练模型的计算量太大。

  • 3 自助法
    给定包含 m 个样本的数据集 D,每次随机挑出一个样本,将其放入D’中,随后放回初始数据集 D ,重复 m 次,则产生包含了 m 个样本的数据集 D’。

    注意:
    一个样本始终不被采到的概率约为0.368,约1/3 的、没出现在训练集中的样本用于测试,又称包外估计;
    适用于数据集较小时;
    对集成学习等方法更适用;
    改变了初始数据的分布,会引入估计偏差,数据量足够时一般不用。

测试集(testing set):用测试集上的判别效果来估计模型在实际使用时的泛化能力
验证集(validation set):把训练集划分为训练集和验证集,基于验证集上的性能来进行模型选择和调参

性能度量

衡量模型泛化能力的评价标准。

  • 错误率与精度
    错误率
    在这里插入图片描述
  • 查准率P与查全率R(P-R 曲线)
    在这里插入图片描述查全率
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
  • ROC曲线与AUC面积(左上角最好)
    真正率 TPR 与假正率 FPR
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
  • 代价敏感错误率与代价曲线(处理非均衡问题)
    代价矩阵:costij 表示将 i 类样本预测为 j 类的代价,代价越高则cost越大
    在这里插入图片描述
    代价敏感错误率:
    在这里插入图片描述
    代价曲线:
    在这里插入图片描述
    横轴:在这里插入图片描述
    纵轴:在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43243022/article/details/82945944
今日推荐