Enregistrer le modèle de forêt aléatoire de python dans un fichier
Dans R, après l'exécution de "random forest" modèle, je peux utiliser save.image("***.RData")
pour stocker le modèle. Ensuite, je peux charger le modèle pour faire des prédictions directement.
pouvez-vous faire une chose similaire en python? Je sépare le Modèle et la prédiction en deux fichiers. Et dans le fichier de Modèle:
rf= RandomForestRegressor(n_estimators=250, max_features=9,compute_importances=True)
fit= rf.fit(Predx, Predy)
j'ai essayé de retour rf
ou fit
, mais ne peut toujours pas charger le modèle dans le fichier de prédiction.
pouvez-vous séparer le modèle et la prédiction en utilisant la forêt aléatoire de sklearn package?
3 réponses
...
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)
j'utilise dill, il stocke toutes les données et je pense que peut-être l'information du module? Peut-être pas. Je me souviens avoir essayé d'utiliser pickle
pour stocker ces objets très compliqués et ça n'a pas marché pour moi. cPickle
probablement fait le même travail que dill
mais je n'ai jamais essayé cpickle
. on dirait que ça marche littéralement de la même façon. J'utilise l'extension " obj " mais ce n'est pas conventionnel...ça avait du sens pour moi puisque je stockais un objet.
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"))
btw, pas sûr si vous utilisez iPython, mais parfois écrire un fichier de cette façon ne vous permet pas de faire le:
with open(wd + "filename.obj","wb") as f:
dill.dump(rf,f)
appel les objets de nouveau:
model = dill.load(open(wd + "filename.obj","rb"))
pour le modèle de stockage vous pouvez également utiliser .sav de formiate. il stocke le modèle complet et l'information.