2015-10-12 5 views
5

ich eine Pipeline sehr ähnlich die in this example gegeben bin mit:abrufen Zwischen Funktionen aus einer Pipeline in Scikit (Python)

>>> text_clf = Pipeline([('vect', CountVectorizer()), 
...      ('tfidf', TfidfTransformer()), 
...      ('clf', MultinomialNB()), 
... ]) 

über die ich GridSearchCV verwenden, um die besten Schätzer über einen Parameter Raster zu finden.

Allerdings würde ich gerne die Spaltennamen meines Trainingssatzes mit der get_feature_names() Methode von CountVectorizer() bekommen. Ist dies möglich ohne CountVectorizer() außerhalb der Pipeline zu implementieren?

Antwort

6

Mit der Funktion get_params() können Sie auf die verschiedenen Teile der Pipeline und ihre jeweiligen internen Parameter zugreifen. Hier ist ein Beispiel für den Zugriff auf 'vect'

text_clf = Pipeline([('vect', CountVectorizer()), 
        ('tfidf', TfidfTransformer()), 
        ('clf', MultinomialNB())] 
print text_clf.get_params()['vect'] 

Ausbeuten (für mich)

CountVectorizer(analyzer=u'word', binary=False, decode_error=u'strict', 
    dtype=<type 'numpy.int64'>, encoding=u'utf-8', input=u'content', 
    lowercase=True, max_df=1.0, max_features=None, min_df=1, 
    ngram_range=(1, 1), preprocessor=None, stop_words=None, 
    strip_accents=None, token_pattern=u'(?u)\\b\\w\\w+\\b', 
    tokenizer=None, vocabulary=None) 

Ich habe nicht die Pipeline auf alle Daten in diesem Beispiel angebracht, so get_feature_names() an dieser Stelle ruft einen Fehler zurück.

2

nur als Referenz

The estimators of a pipeline are stored as a list in the steps attribute: 
>>> 

>>> clf.steps[0] 
('reduce_dim', PCA(copy=True, n_components=None, whiten=False)) 

and as a dict in named_steps: 
>>> 

>>> clf.named_steps['reduce_dim'] 
PCA(copy=True, n_components=None, whiten=False) 

von http://scikit-learn.org/stable/modules/pipeline.html

Verwandte Themen