哪一个先:算法基准测试、特征选择、参数调整?

数据挖掘 特征选择 参数估计
2021-10-12 05:30:46

在尝试进行例如分类时,我目前的方法是

  1. 首先尝试各种算法并对其进行基准测试
  2. 对上述 1 中的最佳算法执行特征选择
  3. 使用选定的特征和算法调整参数

但是,如果其他算法已使用最佳参数/最合适的功能进行了优化,我经常无法说服自己可能有比所选算法更好的算法。同时,对所有算法 * 参数 * 特征进行搜索太耗时了。

关于正确方法/顺序的任何建议?

4个回答

我假设您的意思是特征选择作为特征工程我通常遵循的过程,我看到有些人这样做是

  1. 特征工程
  2. 尝试一些算法,通常是高性能算法,例如随机森林、梯度增强树、中性网络或 SVM。

    2.1 对小范围参数做简单的参数调优,比如网格搜索

如果第 2 步的结果不满意,就回到第 1 步生成更多的特征,或者去掉多余的特征,保留最好的,人们通常称之为特征选择如果没有新功能的想法,请尝试更多算法。

如果结果正常或接近您想要的结果,则转到步骤 3

  1. 广泛的参数调整

这样做的原因是分类都是关于特征工程的,除非你知道一些令人难以置信的强大分类器,比如针对特定问题定制的深度学习,比如计算机视觉。生成好的特征是关键。选择分类器很重要,但并不重要。上面提到的所有分类器在性能方面都相当可比,大多数时候,最好的分类器就是其中之一。

参数调整可以提高性能,在某些情况下,可以提高很多。但是如果没有好的特性,调优就没有多大帮助。请记住,您总是有时间进行参数调整。此外,没有必要广泛调整参数,然后您会发现一个新功能并重做整个事情。

嘿,我刚看到你的问题。首先进行特征选择然后使用交叉验证调整模型是完全错误的。在统计学习的元素和这篇博文中,明确提到: 只有在 CV 循环内完成所有模型构建时,CV 方法才是公正的。CV 循环内的特征选择也是如此,以进行参数调整。可以使用 R 中 MLR 包中的过滤器包装器轻松完成。

我已经在这里回答了一个类似的问题。该过程将是:

  • 变换和归约:涉及变换、均值和中值缩放等过程。
  • 特征选择:这可以通过多种方式完成,例如阈值选择、子集选择等。
  • 设计预测模型:根据您手头的功能设计训练数据的预测模型。
  • 交叉验证和参数调整:
  • 最终预测、验证

在选择模型之前,请务必尝试进行特征工程。然后,根据最佳特征(或倾向于更好地影响问题/因变量的特征)选择模型。

如果您准备花时间学习新工具的工作原理,您可以尝试 autosklearn。它完成了为您构建 ML 管道所需的所有工作。通过交叉验证进行特征预处理、选择、模型集成构建和调整。根据您拥有的数据量,它可能是也可能不是获得良好预测的更快方法。但它肯定是一个有前途的。