我已经看到很多有关此主题的问题,但是找不到解决我问题的明确答案: 我用以下代码保存模型:
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)
获得更多特征的原因是因为训练数据比预测数据大得多,因此分类的特征也更多。
我的问题是在不损害模型的情况下增加功能数量的最佳实践是什么?
谢谢
答案 0 :(得分:0)
通常,您可以执行data imputation来处理丢失的数据,但是如果缺少全部功能,除非可以为四个丢失的值提供有意义的值,否则最好将它们从中删除X_train
才适合。