Dans R, après avoir exécuté le modèle "forêt aléatoire", je peux utiliser save.image("***.RData")
pour stocker le modèle. Ensuite, je peux simplement charger le modèle pour faire des prédictions directement.
Pouvez-vous faire la même chose en python? Je sépare le modèle et la prédiction en deux fichiers. Et dans le fichier modèle:
rf= RandomForestRegressor(n_estimators=250, max_features=9,compute_importances=True)
fit= rf.fit(Predx, Predy)
J'ai essayé de renvoyer rf
ou fit
, mais je ne parviens toujours pas à charger le modèle dans le fichier de prédiction.
Pouvez-vous séparer le modèle et la prédiction à l’aide du paquet de forêt aléatoire 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)
J'utilise l'aneth, il stocke toutes les données et je pense éventuellement des informations de module? Peut être pas. Je me souviens d’avoir essayé d’utiliser pickle
pour stocker ces objets très compliqués et cela n’a pas fonctionné pour moi. cPickle
fait probablement le même travail que dill
mais je n’ai jamais essayé cpickle
. il semble que cela fonctionne littéralement de la même manière. J'utilise l'extension "obj" mais ce n'est pas du tout conventionnel ... Cela me paraissait logique 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"))
au fait, je ne sais pas si vous utilisez iPython, mais parfois, écrire un fichier de cette façon ne vous oblige pas à faire les choses suivantes:
with open(wd + "filename.obj","wb") as f:
dill.dump(rf,f)
rappelez les objets:
model = dill.load(open(wd + "filename.obj","rb"))
pour le modèle en cours de stockage, vous pouvez également utiliser le format .sav. il stocke le modèle complet et les informations.