加载的模型和数据之间的功能不匹配以进行预测-scikit学习SVC

时间:2018-09-01 11:12:49

标签: pandas scikit-learn classification pickle svc

我已经看到很多有关此主题的问题,但是找不到解决我问题的明确答案: 我用以下代码保存模型:

clf = SVC(gamma=1,C=1)
clf.fit(X_train,y_train)
# save the model to disk
filename = 'finalized_model.sav'
pickle.dump(clf, open(filename, 'wb'))

然后我将其加载到其他文件中:

# load the model from disk
fname = 'finalized_model.sav'
clf = pickle.load(open(fname, 'rb'))
y_pred = clf.predict(df_live)

我收到此错误:

  

ValueError:X.shape [1] = 22应该等于26,即   训练时的功能

准备数据时,我使用:

df_dummies = pd.get_dummies(df)

获得更多特征的原因是因为训练数据比预测数据大得多,因此分类的特征也更多。

我的问题是在不损害模型的情况下增加功能数量的最佳实践是什么?

谢谢

1 个答案:

答案 0 :(得分:0)

通常,您可以执行data imputation来处理丢失的数据,但是如果缺少全部功能,除非可以为四个丢失的值提供有意义的值,否则最好将它们从中删除X_train才适合。