gpt4 book ai didi

python - 如何使用 Sklearn pipeline 进行参数调整/交叉验证?

转载 作者:行者123 更新时间:2023-12-01 02:23:56 25 4
gpt4 key购买 nike

我刚刚发现了 Sklearn 的管道功能,我认为它对于情感分析很有用。我通过以下方式定义了我的管道:

Pipeline([('vect', CountVectorizer(tokenizer=LemmaTokenizer(),
stop_words='english',
strip_accents='unicode',
max_df=0.5)),
('clf', MultinomialNB())

但是,通过上面的方式定义它,我不允许进行参数调整。假设我想查看以下 max_dfs=[0,3,0.4,0.5,0.6,0.7] 以及以下 n_gram 范围 = [(1,1), (1,2), (2,2),并使用交叉验证来找到最佳组合。有没有办法在我们的管道外部指定这一点,以便它知道考虑所有可能的组合?如果是这样,该怎么做?

非常感谢您的指导和帮助!

最佳答案

您可以使用 set_param 设置管道中各个步骤的参数函数,并将 key_name 传递为 <stepname>__<paramname> (使用双下划线连接)。

这可以与 GridSearchCV 结合使用确定使给定值的得分函数最大化的参数组合

p = Pipeline([('vect', CountVectorizer(tokenizer=LemmaTokenizer(),
stop_words='english',
strip_accents='unicode',
max_df=0.5)),
('clf', MultinomialNB())
g = GridSearchCV(p,
param_grid={
'vect__max_dfs':[0,3,0.4,0.5,0.6,0.7], 'vect__ngram_range': [(1,1), (1,2), (2,2)]})
g.fit(X, y)
g.best_estimator_

关于python - 如何使用 Sklearn pipeline 进行参数调整/交叉验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47621847/

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