gpt4 book ai didi

python - scikit 中的 pipeline 和 make_pipeline 有什么区别?

转载 作者:IT老高 更新时间:2023-10-28 22:24:36 44 4
gpt4 key购买 nike

我从 sklearn 网页得到这个:

  • 管道:带有最终估计器的转换管道

  • Make_pipeline:根据给定的估算器构造管道。这是 Pipeline 构造函数的简写。

但我仍然不明白什么时候必须使用每个。谁能举个例子?

最佳答案

唯一的区别是 make_pipeline 会自动为步骤生成名称。

需要步骤名称,例如如果您想使用带有模型选择实用程序(例如 GridSearchCV)的管道。使用网格搜索,您需要为管道的各个步骤指定参数:

pipe = Pipeline([('vec', CountVectorizer()), ('clf', LogisticRegression()])
param_grid = [{'clf__C': [1, 10, 100, 1000]}
gs = GridSearchCV(pipe, param_grid)
gs.fit(X, y)

与 make_pipeline 比较:

pipe = make_pipeline(CountVectorizer(), LogisticRegression())     
param_grid = [{'logisticregression__C': [1, 10, 100, 1000]}
gs = GridSearchCV(pipe, param_grid)
gs.fit(X, y)

所以,使用 管道:

  • 名称是明确的,如果需要,您不必弄清楚它们;
  • 如果您更改步骤中使用的估算器/变压器,名称不会改变,例如如果你用 LinearSVC() 替换 LogisticRegression() 你仍然可以使用 clf__C

make_pipeline:

  • 更短且可读性更强的符号;
  • 名称是使用简单规则(估算器的小写名称)自动生成的。

何时使用它们取决于您 :) 我更喜欢 make_pipeline 用于快速实验,而 Pipeline 用于更稳定的代码;经验法则:IPython Notebook -> make_pipeline;较大项目中的 Python 模块 -> 管道。但是在模块中使用 make_pipeline 或在短脚本或笔记本中使用 Pipeline 肯定不是什么大问题。

关于python - scikit 中的 pipeline 和 make_pipeline 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40708077/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com