2017-12-03 22 views
0

필자는 정서 분석에 유용 할 Sklearn의 파이프 라인 기능을 발견했습니다. 나는 다음과 같은 방법으로 내 파이프 라인을 정의 :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), 교차 유효성 검사를 사용하여 최상의 조합을 찾습니다. 가능한 모든 조합을 고려해야한다는 것을 알고 있으므로 파이프 라인 외부에서이를 지정하는 방법이 있습니까? 그렇다면 어떻게 될까요?

안내 및 도움을 제공해 주셔서 감사합니다.

답변

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_ 
+0

Awesoe 값, 감사합니다! –