如何将数据转换选择视为超参数?

数据挖掘 scikit-学习 超参数调整 变压器
2022-03-07 14:37:31

在阅读 Aurelien Geron 的《动手机器学习》一书时,我遇到了这条线-

将您的数据转换选择视为超参数,尤其是当您不确定它们时(例如,如果您不确定是否用零或中值替换缺失值,或者只是删除行)。

我该怎么做?有没有办法通过 sklearn 做到这一点,还是我必须手动保留几个数据集(每个数据集都有不同的转换),然后将模型拟合到所有数据集上?

2个回答

因此,问题讨论了如何将转换选择视为超参数。

我将如何去做如下:

对数据使用一个基线模型架构,然后重复以下操作:

  1. 实例化基线模型(有效地确保所有权重都已初始化)
  2. 创建转换后的数据集
  3. 训练模型
  4. 计算泛化性能指标(AUC、精度、召回等)。

然后比较所有数据转换的泛化性能,以找到“最佳”转换,从而改进适合您任务的泛化指标。

shepan6 的建议基本上是通过尝试所有这些并查看性能最佳的方法来手动搜索最佳的“转换选择超参数”。

这是一个好主意(我赞成),但如果您想更进一步,您可以使用 hyperopt 之类的包并手动定义一个“目标”函数,该函数接受一个决定使用哪种转换的参数。