在我的项目中,我正在训练一个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 |
预测的特征集与模型所需的集合不匹配,因为它缺少“黑色”和“红色”这些特征。我无法想到一个好的解决方法。
这是错误的方法吗?