Python 管道仅显示一步
Python Pipeline shows only one step
我尝试使用 TfIdf 作为第一步为短文本创建 SVM 分类器。当我创建 Pipeline 时,启动它并获得准确度分数 - 一切看起来都正确。
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))])
我假设我不了解管道的确切工作原理,但在我看到的每个示例中,其步骤与最初加载到管道中的步骤一样多。
感谢您的帮助!
似乎直接打印管道的输出被截断了,没有显示完整的输出。
例如,参数 shuffle、tol、validation_fraction、verbose 和 warm_start 属于 SGDClassifier
。
正如您在评论中发现的那样,为避免截断,您可以使用 pipeline.steps
.
直接打印步骤
我尝试使用 TfIdf 作为第一步为短文本创建 SVM 分类器。当我创建 Pipeline 时,启动它并获得准确度分数 - 一切看起来都正确。
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))])
我假设我不了解管道的确切工作原理,但在我看到的每个示例中,其步骤与最初加载到管道中的步骤一样多。
感谢您的帮助!
似乎直接打印管道的输出被截断了,没有显示完整的输出。
例如,参数 shuffle、tol、validation_fraction、verbose 和 warm_start 属于 SGDClassifier
。
正如您在评论中发现的那样,为避免截断,您可以使用 pipeline.steps
.