私はpickle
次のように機械学習モデルを保存するために使用しています:
import pickle
with open('mymodel','wb') as f:
pickle.dump(gbc,f)
さて、別のコンピューターでこのモデルをテストしたいと思いました。だから私は自分のモデルを復元し、次のようなデータを渡しています:
with open('mymodel', 'rb') as fin:
clf = pickle.load(fin)
X_new_preds = clf.predict(dataset)
しかし、私はこのエラーが発生しています:
ValueError: Number of features of the model must match the input. Model
n_features is 20 and input n_features is 19
上記から、トレーニング中に多くの前処理を行ったことがわかります。データのように、カテゴリ機能を持っていたので、多重共線列とすべてを削除しました。したがって、最終的DataFrame
には20個の機能がありました(これは多くの前処理の後であることに注意してください)。
だから、私は知りたかったのですが、これらの情報をpickle
. または、モデルを復元して新しいデータで使用するにはどうすればよいですか。
編集:
私もこれを試しました
#Using Joblib
from sklearn.externals import joblib
filename = 'finalized_model.sav'
joblib.dump(gbc, filename)
loaded_model = joblib.load(filename)
X_new_preds = clf.predict(dataset)
しかし、同じ値を取得するエラー。