周志华 《机器学习初步》模型评估与选择

Datawhale2022年12月组队学习 ✌

文章目录

  • 周志华 《机器学习初步》模型评估与选择
  • 一.泛化能力
  • 二.过拟合和欠拟合
    • 泛化误差 VS 经验误差
    • 过拟合 VS 欠拟合
  • 三.模型选择的三大问题
    • 如何获得测试结果:评估方法
    • 如何评估性能优劣:性能度量
    • 如何判断实质差别:比较检验
  • 四.评估方法
    • 怎么样得到测试结果?
    • 流出法
    • k-折交叉验证法
    • 自助法
  • 五.调参与验证集
    • 参数和超参数
    • 验证集(validation set)
  • 六.性能度量
    • 回归(regression)任务常用均方误差
    • 错误率
    • 精度
    • 查准率 vs 查全率
      • 查准率 Precision
      • 查全率 Recall
      • F1度量
        • 若对P/R有不同偏好
  • 七.比较检验
    • 常用方法
  • 参考资料

一.泛化能力

  • 我们当然是要学一个好的模型,但是什么模型好?这个问题不易回答。可以希望这个模型能够很好的适用于我们没有见过的样本,很好的适用于 unseen instance。

  • 但是问题是什么叫”好“?可能有一些基本理解,比如错误率低,精度高,做 100 次如果能做对 99 次,这比做对 80 次要好。但这还是不易说出来。

  • 比如我们考虑做推荐。一个淘宝上的电商,希望有一个机器学习的系统能把推荐做好。

    • 比如说我手机上只看到 5 个东西,这 5 个东西推荐的都是我想要的,至于你第6个开始是不是好的,我不关心。
    • 但是对另外一个人来说,在电脑上看,一下能看 15 个。要前 15 个都好才行。
    • 这两个是完全不同的结果。
  • 我们最希望的结果是一个东西对所有的标准都好,但这不太现实,太困难。所以我们要做的是搞清楚你要的到底是什么,我把你要的给你就好了,我不用关心对别人来说好不好。其实这和我们刚才说的 no free lunch 是同一个思想。

    • 如果只关心前 5 个推荐是正确的,就不用去关心第 6 个开始推荐正不正确。

    • 这实际上是做机器学习的人在看待问题的一个世界观或者方法论 O(∩_∩)O

      很多做机器学习的人,会认为给你数据你就去跑,跑个算法,跑个结果,回来把结果给我,我说结果不好,你再给我一个新结果。其实不是这样的。

      我们通常会要搞清楚你到底要什么,只有我把你到底要什么搞清楚了,我才知道我要给你什么。

    • 模型评估和选择要解决这个问题,一方面我们要知道你到底要什么,另一方面我还要知道我给你的是不是你要的?这就是我们要解决的关键的背后的这两个问题。而这两个问题从技术上表现来看,它的表现形式可能又要拆解为具体的进几步要讨论的技术问题。

  • 总的来说,一个模型的泛化能力强,就是对新的没有见过的数据的处理能力强。