AttributeError: ‘Pipeline’对象没有属性’partial_fit’

我正在尝试在一个庞大的数据集上训练我的二元分类器。之前,我可以使用sklearn的fit方法完成训练。但现在,我有更多的数据,无法处理。我尝试部分拟合数据,但无法摆脱错误。我如何才能增量地训练我的庞大数据?使用我之前的方法时,我得到了关于pipeline对象的错误。我已经查看了增量学习的示例,但运行这些代码示例时仍然会出现错误。任何帮助我都会非常感激。

X,y = transform_to_dataset(training_data)clf = Pipeline([    ('vectorizer', DictVectorizer()),    ('classifier', LogisticRegression())])length=len(X)/2clf.partial_fit(X[:length],y[:length],classes=np.array([0,1]))clf.partial_fit(X[length:],y[length:],classes=np.array([0,1]))

错误

AttributeError: 'Pipeline' object has no attribute 'partial_fit'

尝试给定的代码示例:

clf=SGDClassifier(alpha=.0001, loss='log', penalty='l2', n_jobs=-1,                      #shuffle=True, n_iter=10,                       verbose=1)length=len(X)/2clf.partial_fit(X[:length],y[:length],classes=np.array([0,1]))clf.partial_fit(X[length:],y[length:],classes=np.array([0,1]))

错误

File "/home/kntgu/anaconda2/lib/python2.7/site-packages/sklearn/utils/validation.py", line 573, in check_X_yensure_min_features, warn_on_dtype, estimator)File "/home/kntgu/anaconda2/lib/python2.7/site-packages/sklearn/utils/validation.py", line 433, in check_arrayarray = np.array(array, dtype=dtype, order=order, copy=copy)TypeError: float() argument must be a string or a number

我的数据集包括一些句子及其词性标签和依存关系。

Thanks  NN  0   rootto  IN  3   caseall DT  1   nmodwho WP  5   nsubjvolunteered VBD 3   acl:relcl.   .   1   punctYou PRP 3   nsubjwill    MD  3   auxremain  VB  0   rootas  IN  5   casealternates  NNS 3   obl.   .   3   punct

回答:

文档中所见,scikit-learn的Pipeline对象没有partial_fit属性。

其原因是您可以向该Pipeline对象添加任何您想要的估计器,而并非所有这些估计器都实现了partial_fit。这里有一份支持的估计器列表

如您所见,使用SGDClassifier(不使用Pipeline),您不会得到“无此属性”的错误,因为这个特定的估计器是支持的。您得到的这个错误信息可能是由于文本数据引起的。您可以使用LabelEncoder来处理非数值列。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注