实用机器学习笔记第四章-模型评估与验证

一、模型评估

本章主要是讲如何衡量一个模型,此时模型已经训练好了

1. 模型指标

  • 监督学习中,通常使用损失作为衡量模型质量的指标。

  • 还有其他多种指标:

    • 模型相关的指标:分类问题评估精度,目标检测问题评估mAP
    • 商业相关的指标:营业收入、延迟
  • 通常根据多个指标来选择模型

1.1 举例广告投放

实用机器学习笔记第四章-模型评估与验证_第1张图片

1.2 常见分类问题的指标

1.2.1 准确度Accuracy = 正确预测样本大小/样本大小

  • 样本中预测正确的个数占比

1.2.2 精度Precision = 预测正确为类i的个数/我预测成类i的样本的个数

1.2.3 召回率Recall = 预测正确为类i的样本个数/类i的样本个数

1.2.4 F1:做调和平均 2pr/(p+r)

  • 用于平衡精度和召回

1.3 AUC & ROC

  • x轴分子:预测成负例但实际是正的,x轴分母:负例样本个数
  • y轴分子:预测成正例实际也是正的,y轴分母:正例样本个数
  • 模型每次选取不同的 θ \theta θ,如果 y ^ ≥ θ \hat{y}\ge\theta y^θ 则预测为正例,反之为负例
  • 不断的选取 θ \theta θ 作图就是ROC曲线,AUC是曲线ROC下面的面积

实用机器学习笔记第四章-模型评估与验证_第2张图片

实用机器学习笔记第四章-模型评估与验证_第3张图片

1.3.1 AUC好坏(AUC 0.5是最糟糕,1是最高,我们需要把AUC从0.5优化到1)

  • 图一是说能把正负例完全分开
  • 图二是说有一部分不太好区分的正负例
  • 图三是说正负例完全融合在一起,是随机的
  • 图四是说正负例搞反了。

1.4 商业指标,以广告投放为例(提高收入、增加用户体验)

  • 延迟
  • 平均每页展示的广告个数
  • 广告点击率
  • 每个广告的点击价格

2. 过拟合和欠拟合

  • 欠拟合:训练误差和泛化误差都很高
  • 过拟合:训练误差低,泛化误差高

2.1 训练和泛化误差

2.1.1 训练误差:在训练数据上看到的模型误差
2.1.2 泛化误差:在新的数据上的模型误差
  • 训练误差低并不代表泛化误差也会降低(过去考试成绩好不代表将来考试成绩也好)

实用机器学习笔记第四章-模型评估与验证_第4张图片

2.2 数据和模型的复杂度

实用机器学习笔记第四章-模型评估与验证_第5张图片

2.2.1 模型复杂度:能够去拟合各种各样的函数的能力

实用机器学习笔记第四章-模型评估与验证_第6张图片

  • 比较不同的算法是比较困难的
    • eg:树 vs 神经网络
  • 在类似的模型中,可以做相对比较
    • 可学习参数个数,树的层数,隐藏层个数
    • 参数可以取多少值,值有没有限制(正则化)

2.2.2 模型复杂度的影响

实用机器学习笔记第四章-模型评估与验证_第7张图片

2.2.3 数据复杂度:信息量的多少

  • 影响因素:样本个数、每个样本的元素、时间/空间结构、样本多样性

  • 不同的数据很难进行比较,eg:图片和文本进行比较

2.3 模型复杂度 vs 数据复杂度

  • 给定一个简单模型(线性模型),增加数据复杂度,模型会从overfitting->underfitting,当再往后增加数据复杂度,泛化误差不再继续降低了
  • 此时需要换一个复杂的模型(深度神经网络),当数据不复杂的时候,简单模型比复杂模型的泛化误差小,当数据复杂度到一定程度时候,复杂的模型的泛化误差逐渐降低

实用机器学习笔记第四章-模型评估与验证_第8张图片

  • 结论:在工业界,数据比较少的时候,从简单的模型开始,当数据复杂了,模型不够好了,改为复杂的模型。即选择的模型复杂度要和数据的复杂度匹配,避免过拟合和欠拟合 。

3. 模型验证

3.1 估计泛化误差

  • 测试数据集:只能被使用一次
  • 验证数据集集:可以被使用多次
    • 是训练数据集的一块
    • 通常说的 测试集,实际指的是验证集

3.2 生成验证数据集

3.2.1 把样本数据随机的分成训练和验证集(验证集误差近似作为泛化误差)

3.2.2 随机的选取%n样本作为验证集(n=50,40,30,20,10)

3.2.3 不是独立同分布的数据拆分(训练集和验证集)

  • 不能随机分割数据
  • 含有时序信息:房屋销售、股票价格
    • 验证集需要在训练集之后
  • 样本可能属于多个分组:eg,人脸图片
    • 此时需要按照分组划分而不是随机
  • 数据不平衡(有的类很多有的类很少)
    • 类多的样本多采样一些

3.2.4 K折交叉验证(数据不够多的时候)实用机器学习笔记第四章-模型评估与验证_第9张图片

  • 算法流程
    • 把训练机数据切成K块
    • 每一次,把第i个块拿出来作为验证集,剩下的做训练集
    • 最后把k个块的平均误差作为结果
  • K取值:5,10,数据越少k取越大

3.3 常见错误

  • 90%的超级好的结果是由于Bug造成的,最可能的原因是由于验证集被污染了

3.3.1 验证集有来自于训练集的样本

  • 原始数据集样本重复
  • 数据融合的时候经常发生

3.3.2 信息泄漏

  • 常发生于非独立同分布(IID)的数据,验证集中的数据已经在训练集中出现过了
    • eg:用未来预测过去

你可能感兴趣的:(机器学习,人工智能,深度学习)