测量机器学习算法比较的统计显着性

机器算法验证 机器学习 统计学意义
2022-04-10 11:04:38

让我们考虑在一些数据集上比较两种机器学习算法(A 和 B)。两种算法的结果(均方根误差)取决于随机生成的初始近似值(参数)。

问题:

  1. 当我对两种算法使用相同的参数时,“通常”A 会稍微优于 B。我需要执行多少个不同的实验(使用不同的参数 /更新/)才能“确保”A 优于 B?
  2. 如何衡量我的结果的重要性?(我“确定”到什么程度?)

欢迎提供相关链接!

PS。我看过作者使用 t 检验和 p 值的论文。但我不确定在这种情况下是否可以使用它们。

更新。 问题是如果初始参数和学习/验证/测试集相同,A(几乎)总是优于 B;但如果它们不同,它不一定成立。

我在这里看到以下方法:

  • 将数据拆分为不相交的集合 D_1、D_2、...;生成参数params_1;在 D_1 上比较 A(params_1, D_2, ...,) 和 B(params_1, D_2, ...,);生成 params_2;比较 D_2 上的 A(params_2, D_1, D_3,...) 和 B(params_2, D_1, D_3,...) 等等。记住 A 的表现优于 B 的频率。

  • 将数据拆分为不相交的集合 D_1、D_2、...;生成参数 params_1a 和 params_1b;在 D_1 上比较 A(params_1a, D_2, ...,) 和 B(params_1b, D_2, ...,);.... 记住 A 的表现优于 B 的频率。

  • 首先,对 A 进行交叉验证。然后,对 B 进行独立验证。比较结果。

哪种方法更好?在这种最佳情况下如何找到结果的意义?

1个回答
  1. 您需要在这里消除两个偏差——初始参数集的选择和训练/测试数据的选择。所以,我认为基于相同的初始参数集比较算法并不好;我只会对每个算法的几个不同的初始集进行评估,以获得更一般的近似值。下一步是您可能已经在做的事情,因此使用某种交叉验证。
  2. t-test 是一种可行的方法(我假设你从交叉验证中得到这个 RMS 作为平均值 [和评估几个不同的起始参数集,假设你决定使用我的第一个建议],所以你也可以计算标准偏差); 更花哨的方法是使用 Mann-Whitney-Wilcoxon 检验。

维基百科关于交叉验证的文章非常好,并且有一些值得一读的参考资料。

更新后更新:我仍然认为进行配对测试(Dikran 的方式)看起来很可疑。