我刚刚发现了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),并使用交叉验证来找到最佳组合。有没有办法在管道外指定这个,所以它知道考虑所有可能的组合?如果是这样,将如何做?
非常感谢您的指导和帮助!
答案 0 :(得分:2)
您可以使用path=../parent/child/
path=${path%/}
path=${path##*/}
函数为管道中的各个步骤设置参数,并将key_name作为set_param
传递(使用双下划线连接)。
这可以与GridSearchCV结合使用,以识别从给定值最大化得分函数的参数组合
<stepname>__<paramname>