【发布时间】:2017-06-19 16:08:05
【问题描述】:
首先提前感谢,我真的不知道我是否应该打开一个问题,所以我想检查一下是否有人以前遇到过这个问题。
所以我在使用 CalibratedClassifierCV 进行文本分类时遇到了以下问题。我有一个估算器,它是一个以这种方式创建的 管道(简单示例):
# Import libraries first
import numpy as np
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.pipeline import make_pipeline
from sklearn.calibration import CalibratedClassifierCV
from sklearn.linear_model import LogisticRegression
# Now create the estimators: pipeline -> calibratedclassifier(pipeline)
pipeline = make_pipeline( TfidfVectorizer(), LogisticRegression() )
calibrated_pipeline = CalibratedClassifierCV( pipeline, cv=2 )
现在我们可以创建一个简单的训练集来检查分类器是否有效:
# Create text and labels arrays
text_array = np.array(['Why', 'is', 'this', 'happening'])
outputs = np.array([0,1,0,1])
当我尝试拟合 calibrated_pipeline 对象时,我收到此错误:
ValueError:发现样本数量不一致的输入变量:[1, 4]
如果您愿意,我可以复制整个异常跟踪,但这应该很容易重现。提前非常感谢!
编辑:我在创建数组时犯了一个错误。现已修复(感谢@ogrisel!)另外,调用:
pipeline.fit(text_array, outputs)
工作正常,但使用校准分类器失败!
【问题讨论】:
-
您应该在报告错误时始终报告完整的回溯。通常情况下,您的问题的答案就在那里。
标签: python scikit-learn pipeline calibration