sklearn hacer dibujar decisión decision como clasificador chaid automático arboles arbol aprendizaje algoritmo python machine-learning scikit-learn random-forest

hacer - Guardar el modelo de bosque aleatorio de Python en el archivo



como hacer un arbol de decision en python (3)

En R, después de ejecutar el modelo de "bosque aleatorio", puedo usar save.image("***.RData") para almacenar el modelo. Después, solo puedo cargar el modelo para hacer predicciones directamente.

¿Puedes hacer algo similar en python? Separé el Modelo y la Predicción en dos archivos. Y en el archivo de modelo:

rf= RandomForestRegressor(n_estimators=250, max_features=9,compute_importances=True) fit= rf.fit(Predx, Predy)

Intenté devolver rf o fit , pero aún no puedo cargar el modelo en el archivo de predicción.

¿Puede separar el modelo y la predicción utilizando el paquete de bosque aleatorio sklearn?


Para el modelo de almacenamiento también puede utilizar formato .sav. Almacena modelo completo e información.


Utilizo dill, almacena todos los datos y creo que posiblemente la información del módulo? Tal vez no. Recuerdo que traté de usar pickle para almacenar estos objetos realmente complicados y no me funcionó. cPickle probablemente hace el mismo trabajo que dill pero nunca he intentado cpickle . Parece que funciona literalmente de la misma manera. Utilizo la extensión "obj", pero eso no es de ninguna manera convencional ... Simplemente tenía sentido para mí ya que estaba almacenando un objeto.

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"))

por cierto, no estoy seguro si usas iPython, pero a veces escribir un archivo de esa manera no es así, así que tienes que hacer lo siguiente:

with open(wd + "filename.obj","wb") as f: dill.dump(rf,f)

llamar a los objetos de nuevo:

model = dill.load(open(wd + "filename.obj","rb"))


... 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)