机器学习步骤

数据挖掘 机器学习 预测建模
2021-09-14 06:16:33

在创建预测模型时,以下哪一组步骤选项是正确的?

选项1:

首先消除最明显的坏预测器,如果需要,对剩余的预测器进行预处理,然后用交叉验证训练各种模型,挑选几个最好的,确定每个人使用过的顶级预测器,然后只用这些预测器重新训练这些模型并评估准确性再次使用交叉验证,然后选择最好的一个并使用其关键预测器在完整的训练集上对其进行训练,然后使用它来预测测试集。

选项 2:

首先消除最明显的坏预测器,然后根据需要对剩余的预测器进行预处理,然后使用特征选择技术,例如具有交叉验证的递归特征选择(例如带有 rf 的 RFE)来识别关键预测器的理想数量以及这些预测器的含义是,然后用交叉验证训练不同的模型类型,看看哪一个模型在前面确定的那些顶级预测变量中给出了最好的准确性。然后在整个训练集上使用这些预测器再次训练其中最好的一个,然后用它来预测测试集。

2个回答

我发现你的两个选项都有点错误。因此,这通常(非常广泛地)是预测建模工作流程的样子:

  • 数据清理:花费最多的时间,但在这里花费的每一秒都是值得的。通过此步骤,您的数据越干净,您花费的总时间就越少。
  • 拆分数据集:将数据集拆分为训练集和测试集,分别用于建模和预测目的。此外,还需要进行额外的拆分作为交叉验证集。
  • 变换和归约:涉及变换、均值和中值缩放等过程。
  • 特征选择:这可以通过多种方式完成,例如阈值选择、子集选择等。
  • 设计预测模型:根据您手头的功能设计训练数据的预测模型。
  • 交叉验证:
  • 最终预测、验证

特征选择在管道中的位置取决于问题。如果您对数据了如指掌,则可以根据这些知识手动选择特征。如果您不这样做 - 使用交叉验证对模型进行实验可能是最好的。使用 chi2 或 PCA 等附加技术减少先验特征的数量实际上可能会降低模型的准确性。

例如,根据我使用 SGD 分类器进行文本分类的经验,将所有数十万个单词编码为二进制特征与减少到数千或数百个相比,会带来更好的结果。所有特征的训练时间实际上更快,因为我的工具集(sklearn)的特征选择相当慢,因为它不像 SGD 那样随机。

多重共线性是需要注意的,但特征可解释性可能同样重要。

然后人们报告使用模型集合获得最佳结果。每个模型都比其他模型更好地捕获信息空间的特定部分。这也将阻止您在将要包含到合奏中的所有模型拟合之前选择特征。