\begingroup

我已经将各种 ML 模型(基本模型和集成模型)应用于同一数据集以解决分类问题。

AdaBoost、Bagging 和 XGBoost 分类器的准确率最高。不过准确率在 90% 到 94% 之间。我进行了 5 倍交叉验证。

其他普通的基本 ML 算法给了我 60-80% 的分数。

带有注意力机制的 RNN 给了我 83% 的准确率。

我该如何向我的主管解释这种差异?我的意思是,为什么他们给出的准确度不同?

\endgroup

5

  • \begingroup
    一个原因是不同的模型具有不同的容量()。但您还必须确保正确评估模型,即正确执行训练/开发/测试拆分 – XGBoost 很容易过度拟合您的训练数据,但通常在新/未见数据上表现不佳。如果测试拆分不能代表未见数据,则在实践中不会看到高精度,并且“其他”算法可能表现得一样好(或更好)。我还会研究“正则化”
    \endgroup


    – 

  • \begingroup
    @DavidWaterworth,我已经完成了 5 倍交叉验证。
    \endgroup


    – 

  • \begingroup
    是的,如果您有 5 个“以某种方式相关”的样本,并且每个样本中各有 1 个出现在每个折叠中,那么这通常会有问题。另外,您应该考虑树的工作原理,给定合适的超参数,可以为任何模型获得 100% 的训练分数 – 即,树可以在每个训练示例周围创建一个“框”并为其分配正确的标签(即过度拟合)。但这些“框”可以具有某种任意边界。其他一些方法具有更平滑的边界,因此不太可能过度拟合。
    \endgroup


    – 

  • \begingroup
    @user366312 您使用五重交叉验证进行性能评估?您如何进行模型选择(也称为“超参数调整”)。大多数现代学习方法都严重依赖于超参数调整,因此如果您没有为每个分类器系统使用正确的调整方法,则很容易在性能评估中引入相当大的偏差。
    \endgroup


    – 

  • \begingroup

    \endgroup


    – 


最佳答案
3

\begingroup

所有模型都涉及在简约性和复杂性方面找到一个“最佳点”,以确保在一系列可能的预测值范围内进行可推广的预测。在这方面,有些模型或多或少具有灵活性,可以根据给定的复杂性进行调整以实现该目的。

那么,为什么我们会看到模型结果的差异呢?在某种程度上,您是在回避这个问题。如果我拟合了 20 个或更多模型,我仍然会期待一系列的表现,有些模型可能表现出良好的预测性,有些则不然。如果所有模型在所有设置下都提供相同的结果,那么为什么要围绕它们单独开发理论呢?另一方面,明显较差的模型仍可能提供令人信服且可用的结果。

对于要比较/组合的给定 ML 模型面板,存在与数据无关的性能背景分布。在继续之前,您可以先模拟一些小数据来证明这一点 – 您可以通过丢弃预计不会产生有竞争力结果的模型来节省您的顾问的时间。

至于您的具体发现,boosting 和 bagging 相辅相成,它们在操作和实践上都很相似。虽然我们无法确定您的“其他算法”(除了 RNN)是什么,但可以将其与注意到逻辑回归和 probit 回归结果非常相似且优于用于建模二元端点的线性回归进行比较。

\endgroup

3

  • \begingroup
    其他算法是普通的、基本的 ML 算法。
    \endgroup


    – 

  • \begingroup
    我正在解决分类问题。
    \endgroup


    – 

  • 1
    \begingroup
    @user366312 我不相信有“普通的基本 ML 算法”这样的东西。
    \endgroup


    – 

\begingroup

首先,准确度作为 KPI 是有问题的:

然而,同样的“效应”也会发生在其他 KPI 上。

简短的回答是“不同的模型给出不同的结果,因为它们是不同的模型”。如果它们给出相同的结果,它们就不再是不同的模型了。一个模型在处理预测变量时可能过于死板。另一个模型可能过于灵活和过度拟合。一个模型可能在预测变量-结果空间的某个部分运行良好,另一个模型则在另一个部分运行良好,现在就取决于你的数据主要位于这个空间的哪个部分。

没有理由期望不同的模型会得到相同或甚至大约相同的结果。

\endgroup

\begingroup

性能更好的模型在模型和问题之间具有更好的匹配度。这就是全部内容。“无免费午餐”定理告诉我们,当对所有可能的问题进行平均时,没有一种算法实际上比其他算法更好 – 不可能找到一种方法,在所有设置下都能产生严格优于另一种方法的结果。在这里,您可以很好地匹配一种方法和问题,并发现某些特定方法在解决此类问题时表现更好。这并不奇怪,不同的方法在同一个问题上表现不同是很常见的。但是,如果您将这些相同的方法应用于不同的问题,您可能会得到不同的结果 – 在某些问题上,非常基本的 ML 模型确实会胜过更复杂的模型。问“为什么这个 ML 模型更好”有点谬误,因为实际上没有一个是更好的 – 正确的问题是“为什么这个 ML 模型在这种特定情况下更好”。

如果您想更好地理解“模型在做什么”,您或许可以看看每个模型使用的特征及其相对重要性或模型权重,以便定性地了解不同模型如何进行预测。对于具有少量参数的简单模型,这可能是合理的或可处理的,但具有许多参数的高度复杂模型通常被称为“黑匣子”,因为我们无法定性地了解模型内部发生了什么。复杂模型可能擅长将输入映射到所需的输出,但可能很难解释其操作的“方式”或“原因”。

\endgroup