2017-11-19 13 views
1

사용자 정의 파이프 라인이 있고 Sklearn의 GridSearchCV를 사용하여 전체 파이프 라인의 매개 변수를 조정합니다. 나는 sklearn을 사용하여 최상의 매개 변수 조합을 가졌지 만 최상의 매개 변수 조합을 얻고 다른 파이프 라인으로 전달하려고합니다. 여기 파이프 라인에서 다른 파이프 라인으로 최상의 매개 변수 (GridSearchCV 사용)를 전달하는 방법

이 파이프 라인에, 나는 또한 분류에 대한 매개 변수 조합을 얻을, 그래서

p = Pipeline([ 
    ('union', FeatureUnion(
     transformer_list=[ 
      ('chargram', Pipeline([ 
       ('tfidf', TfidfVectorizer(token_pattern=r'\w')), 
       ('kbest', SelectPercentile(score_func=chi2)), 
      ])), 
      ('custom', Pipeline([ 
       ('features', CustomFeatures()), 
       ('tfidf', TfidfVectorizer()), 
       ('kbest', SelectPercentile(score_func=chi2)), 
      ])) 
     ], 
     # weight components in FeatureUnion. Can be tuned 
     transformer_weights={ 
      'chargram': 0.8, 
      'custom': 0.8 
     }, 
     n_jobs=-1 
    )), 

    # Classifier stage  
    (('clf', clf)), 
]) 

파이프 라인,하지만 내가하고 싶은 모든 featureunion 단계에 대한 매개 변수를 얻고 이것을 전달하는 것입니다 파이프 라인을 만들고 다른 분류기 매개 변수 세트를 사용하여 featureunion에 전달합니다.

할 방법이 있습니까?

+0

왜 그걸 가지고 싶습니까? 당신은 이미 그것을 가지고 있습니다. –

+0

필자는 여러 대의 기계 학습 모델을 가지고 있으며 필자는 기능을 계속해서 조정하고 싶지 않고 첫 번째 분류기에서 테스트 한 동일한 구성을 사용하고 싶지 않습니다. – nEO

답변

0

이 같은 변수 parameters` 값을 저장할 수 있습니다

transformer_list = [ 
    ('chargram', Pipeline([ 
     ('tfidf', TfidfVectorizer(token_pattern=r'\w')), 
     ('kbest', SelectPercentile(score_func=chi2)), 
    ])), 
    ('custom', Pipeline([ 
     ('features', CustomFeatures()), 
     ('tfidf', TfidfVectorizer()), 
     ('kbest', SelectPercentile(score_func=chi2)), 
    ])) 
] 

transformer_weights = { 
    'chargram': 0.8, 
    'custom': 0.8 
} 

p = Pipeline([ 
    ('union', FeatureUnion(
     transformer_list=transformer_list, 
     # weight components in FeatureUnion. Can be tuned 
     transformer_weights=transformer_weights, 
     n_jobs=-1 
    )), 

    # Classifier stage 
    (('clf', clf)), 
]) 

P.S을 : 나는 당신을 이해하면 나도 몰라!

+0

안녕하세요, 감사합니다. 같은 라인에서 직접 솔루션을 찾았 으면 단계를 사용하여 단계에서 매개 변수를 가져올 수 있습니다. 그래서 예를 들어, 제 코드의 steps [0]은 제가보고있는 것이고 저는 다른 분류자를위한 모델 구축을 위해 그것을 사용했습니다. 도와 주셔서 감사합니다! – nEO