Python Pipeline показывает только один шаг - PullRequest
0 голосов
/ 25 февраля 2019

Я пытаюсь создать классификатор SVM для коротких текстов с TfIdf в качестве первого шага.Когда я создаю конвейер, запускаю его и получаю оценки точности - все выглядит правильно.

vectorizer = TfidfVectorizer(analyzer='word', ngram_range=(1,4), max_features=50000, max_df=0.5, use_idf=True, norm='l2') 
classifier = SGDClassifier(loss='hinge', max_iter=50, alpha=1e-05, penalty='l2')
pipe = Pipeline(steps=[('tfidf', vectorizer), ('clf', classifier)])
pipe.fit(X_train, y_train)

Но когда я загружаю созданную модель и печатаю ее, я получаю только один шаг - TfIdf вместо двух - TfIdf и SVM.

print(pipe)
Pipeline(memory=None,
     steps=[('tfidf', TfidfVectorizer(analyzer='word', binary=False, decode_error='strict',
        dtype=<class 'numpy.float64'>, encoding='utf-8', input='content',
        lowercase=True, max_df=0.5, max_features=50000, min_df=1,
        ngram_range=(1, 4), norm='l2', preprocessor=None, smooth_idf=True...m_state=None, shuffle=True, tol=None,
       validation_fraction=0.1, verbose=0, warm_start=False))])

Я предполагаю, что не понимаю, как работает конвейер, но в каждом примере, который я видел, было столько же шагов, сколько было загружено в конвейер.

СпасибоВам за помощь!

1 Ответ

0 голосов
/ 25 февраля 2019

Кажется, что вывод при печати конвейера напрямую усекается и не показывает весь вывод.Например, аргументы shuffle, tol, validation_fraction, verbose и warm_start принадлежат SGDClassifier.

Поскольку вы оказались в комментариях, чтобы избежать усечения, вы можете распечатать шаги напрямую, используя pipeline.steps.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...