【发布时间】:2018-10-20 16:42:09
【问题描述】:
我刚刚在此处的模型网格选择中遇到了这个示例:
https://chrisalbon.com/machine_learning/model_selection/model_selection_using_grid_search/
问题:
示例如下
# Create a pipeline
pipe = Pipeline([('classifier', RandomForestClassifier())])
# Create space of candidate learning algorithms and their hyperparameters
search_space = [{'classifier': [LogisticRegression()],
'classifier__penalty': ['l1', 'l2'],
'classifier__C': np.logspace(0, 4, 10)},
{'classifier': [RandomForestClassifier()],
'classifier__n_estimators': [10, 100, 1000],
'classifier__max_features': [1, 2, 3]}]lassifier', RandomForestClassifier())])
据我了解,search_space 包含使用的分类器及其参数。但是,我不明白Pipeline 的目的是什么以及为什么它包含RandomForestClassifier()?
背景: 在我想要的工作流程中,我需要基于 3 个不同的分类器训练一个 doc2vec 模型(gensim)。模型和分类器都应该将 GridSearch 应用于参数。我喜欢将结果存储在表格中并保存最佳模型,即准确率最高的模型。
【问题讨论】:
-
“为什么会在这里”是什么意思?
-
据我了解代码,
search_space包含使用的分类器及其参数。但是,我不明白Pipeline的目的是什么,为什么RandomForestClassifier()在这里?编辑了文本。 -
我也有同样的问题。在我看来,管道创建步骤几乎就像管道的初始化,然后在 search_space 数组中,
classifier键每次都会覆盖pipe = ...行的RandomForestClassifier()。在过去的几天里,我一直在寻找这个问题的答案,我什至给 Chris Albon 发了消息,但还没有运气。我不确定我是否正确。
标签: python scikit-learn pipeline grid-search