我有非常好定义的机器学习训练集(只有字符串属性)。
例如:
@relation training_rel
@attribute class {politics,sports}
@attribute text string
@data
politics,'some text about politics over here'
... // a lot of other training instances of class politics
sports,'and now some sports over here'
... // a lot of other
我正在用两个独立的训练和测试集在python中建立一个预测模型。培训数据包含数字类型的分类变量,例如邮政编码,91521,23151,12355,.,以及字符串分类变量,例如,城市“芝加哥”,“纽约”,“洛杉矶”,.
为了训练数据,我首先使用“pd.get_dummies”来获取这些变量的虚拟变量,然后用转换后的训练数据对模型进行拟合。
我对我的测试数据进行同样的转换,并使用经过训练的模型来预测结果。但是,我得到了错误
ValueError: Number of features of the model must match the input. Model n_features is 1
我有一个20列的训练数据集,所有这些都是我必须用于训练模型的因素,我已经获得了测试数据集,我必须应用我的模型进行预测并提交。
我在做最初的数据探索,出于好奇,我检查了训练数据和测试数据的级别,因为我们正在处理所有的分类variables.To,我很沮丧,大多数类别(变量)在训练和测试数据集中都有不同的级别。
例如
table(train$cap.shape) #training data column levels
b c f k x
196 4 2356 828 2300
table(test$cap.shape) #test data
b