Rでは、「ランダムフォレスト」モデルを実行した後、save.image("***.RData")
を使用してモデルを格納できます。その後、モデルをロードして直接予測を行うことができます。
Pythonでも同様のことができますか?モデルと予測を2つのファイルに分けます。そしてモデルファイルで:
rf= RandomForestRegressor(n_estimators=250, max_features=9,compute_importances=True)
fit= rf.fit(Predx, Predy)
rf
またはfit
を返そうとしましたが、モデルを予測ファイルに読み込めません。
Sklearnランダムフォレストパッケージを使用してモデルと予測を分離できますか?
...
import cPickle
rf = RandomForestRegresor()
rf.fit(X, y)
with open('path/to/file', 'wb') as f:
cPickle.dump(rf, f)
# in your prediction file
with open('path/to/file', 'rb') as f:
rf = cPickle.load(f)
preds = rf.predict(new_X)
私はディルを使用します、それはすべてのデータを保存し、おそらくモジュール情報を考えますか?そうでないかもしれない。これらの非常に複雑なオブジェクトを格納するためにpickle
を使用しようとしたことを覚えていますが、それは私にとってはうまくいきませんでした。 cPickle
はおそらくdill
と同じ仕事をしますが、cpickle
を試したことがありません。文字通りまったく同じように機能するように見えます。私は「obj」拡張を使用していますが、それは決して従来のことではありません...オブジェクトを格納していたので、それは私にとっては理にかなっています。
import dill
wd = "/whatever/you/want/your/working/directory/to/be/"
rf= RandomForestRegressor(n_estimators=250, max_features=9,compute_importances=True)
rf.fit(Predx, Predy)
dill.dump(rf, open(wd + "filename.obj","wb"))
ところで、iPythonを使用しているかどうかはわかりませんが、時々そのようにファイルを書き込むと、次のことを行う必要があります。
with open(wd + "filename.obj","wb") as f:
dill.dump(rf,f)
オブジェクトを再度呼び出します。
model = dill.load(open(wd + "filename.obj","rb"))
モデルの保存には、.sav formateを使用することもできます。完全なモデルと情報を保存します。