1

sklearnのチュートリアルに従って、sklearnで作成されたオブジェクトを保存しようとしましたが、失敗しました。実際の(最終的な)モデルを保存できるため、クロス検証オブジェクトに問題があるようです。

与えられた:

rf_model = RandomForestRegressor(n_estimators=1000, n_jobs=4, compute_importances = False)
cvgridsrch = GridSearchCV(estimator=rf_model, param_grid=parameters,n_jobs=4) 
cvgridsrch.fit(X,y)

これは成功します:

joblib.dump(cvgridsrch.best_estimator_, 'C:\\Users\\Desktop\\DMA\\cvgridsrch.pkl', compress=9)

これは失敗します:

joblib.dump(cvgridsrch, 'C:\\Users\\Desktop\\DMA\\cvgridsrch.pkl', compress=9)

エラーあり:

PicklingError: Can't pickle <type 'instancemethod'>: it's not found as __builtin__.instancemethod

オブジェクト全体を保存するには?

4

3 に答える 3

0

これは古い質問であることは承知していますが、ここに来て同じまたは類似の問題を抱えている人には役立つかもしれません。

具体的なエラー メッセージはわかりませんが、pickle を使用して自分のプロジェクトに GridSearchCV オブジェクト全体を正常に保存できました。

import pickle
gs = GridSearchCV(some parameters) #create the gridsearch object
gs.fit(X, y) # fit the model
with open('file_name', 'wb') as f:
    pickle.dump(gs, f) # save the object to a file

次に、使用できます

with open('file_name', 'rb') as f:
    gs = pickle.load(f)

ファイルを読み取り、オブジェクトを再度使用できるようにします。

于 2015-08-19T06:38:43.227 に答える