【发布时间】:2015-05-06 08:53:09
【问题描述】:
在我的项目中,我训练了一个 BaggingClassifier。由于使用的数据包含分类特征,我使用 pandas 框架(get_dummies)对它们进行编码。之后,我训练分类器。
现在我想做一个预测。它返回了这个错误:
ValueError: Number of features of the model must match the input. Model n_features is 12 and input n_features is 6.
我明白为什么会出现这个错误。 模型所需的功能:12
给定预测数据集中的特征:6
在这种情况下,由于编码,训练数据集被扩展到 12 个特征。 我用于预测的编码数据只有 6 个特征,因为它只有一行数据,在编码过程中根本不会传播。
这个例子说明了问题:
原始训练数据集
Age| Color
35 |'Orange'
55 |'Black'
75 |'Red'
pandas get_dummies 之后:
X
Age| Orange | Black| Red
35 | 1 | 0 | 0
55 | 0 | 1 | 0
75 | 0 | 0 | 1
预测数据集
X
Age| Orange|
35 | 1 |
预测的特征集不符合模型所需的特征集,因为它缺少“黑色”和“红色”特征。我想不出一个很好的方法来解决这个问题。
这是错误方法造成的错误吗?
【问题讨论】:
标签: python scikit-learn missing-features