【问题标题】:Python Pipeline shows only one stepPython Pipeline 仅显示一步
【发布时间】:2019-07-18 19:20:01
【问题描述】:

我尝试使用 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))])

我假设我不了解 Pipeline 的确切工作原理,但在我看到的每个示例中,步骤与最初加载到 Pipeline 中的步骤一样多。

感谢您的帮助!

【问题讨论】:

  • 这是因为输出被截断了。参数 shuffle、tol、validation_fraction、verbose 和 warm_start 属于 SGDClassifier。
  • @justhalf 非常感谢!如何查看整个输出?
  • @justhalf Upd: pipeline.steps =) 我怎样才能支持你的答案?非常感谢您的帮助!
  • 这是一条评论。让我将其更改为实际答案。

标签: python scikit-learn svm pipeline tf-idf


【解决方案1】:

似乎直接打印管道的输出被截断,并且没有显示整个输出。 例如,参数 shuffle、tol、validation_fraction、verbose 和 warm_start 属于 SGDClassifier

正如您在 cmets 中发现的,为避免截断,您可以直接使用 pipeline.steps 打印步骤。

【讨论】:

    猜你喜欢
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 2016-04-14
    • 1970-01-01
    • 2022-11-19
    • 1970-01-01
    • 2015-12-28
    相关资源
    最近更新 更多