保存sklearn管道的部分

sim*_*ack 13 python scikit-learn

我在模型中的某些功能可能需要一些时间才能生成,因此要快速试验多个功能和参数,最好将这些功能保存到磁盘供以后使用.

作为一个具体的例子(从这里开始),假设我有以下管道:

pipeline = Pipeline([
  ('extract_essays', EssayExractor()),
  ('features', FeatureUnion([
    ('ngram_tf_idf', Pipeline([
      ('counts', CountVectorizer()),
      ('tf_idf', TfidfTransformer())
    ])),
    ('essay_length', LengthTransformer()),
    ('misspellings', MispellingCountTransformer())
  ])),
  ('classifier', MultinomialNB())
])
Run Code Online (Sandbox Code Playgroud)

我想换CountVectorizer()CountVectorizer(max_features=1000),那么只CountVectorizer,MultinomialNB需要因为参数重新计算或已改变之前的变换.

这可以以某种方式实现吗?

小智 1

我在Pachyderm上取得了一些成功。它有一个有点像 git 的 cli,可以让你存储你的工作流程。在存储库中,请注意虹膜分类的 ML 管道示例,该示例提供了有关如何创建管道和训练数据并将其保存到他们所谓的“推理管道”中的一些详细信息,该管道将允许您尝试进行各种转换,并且应用推断的管道训练数据。