我正在尝试将 scikit-learn 用于分类任务。我的代码从数据中提取特征,并将它们存储在字典中,如下所示:
feature_dict['feature_name_1'] = feature_1
feature_dict['feature_name_2'] = feature_2
当我拆分数据以使用sklearn.cross_validation
一切正常进行测试时。我遇到的问题是当测试数据是一个新集合,而不是学习集合的一部分(尽管它对每个样本都有相同的确切特征)。在我将分类器放在学习集上之后,当我尝试调用时,clf.predict
我得到了这个错误:
ValueError: X has different number of features than during model fitting.
我假设这与此有关(在 DictVectorizer 文档之外):
在 fit 或 fit_transform 期间未遇到的命名特征将被静默忽略。
DictVectorizer
已经删除了一些我猜想的功能......我如何禁用/解决这个功能?
谢谢
=== 编辑 ===
问题在于 larsMans 建议我安装 DictVectorizer 两次。