Python 使用自定义管道进行交叉验证scikit学习

Python 使用自定义管道进行交叉验证scikit学习,python,machine-learning,scikit-learn,Python,Machine Learning,Scikit Learn,我想使用GridSearchCV来确定分类器的参数,使用管道似乎是一个不错的选择 该应用程序将用于使用单词包特征的图像分类,但问题是,根据使用的是培训还是测试示例,存在不同的逻辑管道 对于每个训练集,KMeans必须运行以生成将用于测试的词汇表,但对于测试数据,KMeans进程不运行 我看不出如何为管道指定这种行为差异 您可能需要从KMeans类派生并重写以下方法以使用词汇表逻辑: fit\u transform将仅对列车数据调用 将对测试数据调用transform 也许类派生并不总是最好的

我想使用GridSearchCV来确定分类器的参数,使用管道似乎是一个不错的选择

该应用程序将用于使用单词包特征的图像分类,但问题是,根据使用的是培训还是测试示例,存在不同的逻辑管道

对于每个训练集,KMeans必须运行以生成将用于测试的词汇表,但对于测试数据,KMeans进程不运行


我看不出如何为管道指定这种行为差异

您可能需要从
KMeans
类派生并重写以下方法以使用词汇表逻辑:

  • fit\u transform
    将仅对列车数据调用

  • 将对测试数据调用
    transform


也许类派生并不总是最好的选择。您还可以编写自己的transformer类,它包装对嵌入式KMeans模型的调用,并提供
fit
/
fit\u transform
/
transform
API,这是
管道
类在第一阶段所期望的。

啊,我想这可能是我缺少的部分,我知道必须有一种方法根据测试/训练来执行不同的行为。谢谢