Cómo crear un modelo de aprendizaje supervisado con el bosque al azar para análisis predictivo

El modelo de bosque aleatorio es un modelo conjunto que se puede utilizar en analytics- predictivo que se necesita un conjunto (selección) de árboles de decisión para crear su modelo. La idea es tomar una muestra aleatoria de debilidad de los alumnos (un subconjunto aleatorio de los datos de entrenamiento) y hacer que voten para seleccionar el modelo más fuerte y mejor. El modelo de bosque aleatorio se puede utilizar ya sea para la clasificación o regresión. En el siguiente ejemplo, el modelo de bosque aleatorio se utiliza para clasificar las especies Iris.

Cargando sus datos

Este listado de código cargará el iris conjunto de datos en la sesión:

gt; gt; gt; de load_iris sklearn.datasets importación

gt; gt; gt; iris = load_iris ()

Creación de una instancia del clasificador

Los siguientes dos líneas de código crea una instancia del clasificador. La primera línea importa la biblioteca de bosque aleatorio. La segunda línea crea una instancia del algoritmo aleatorio forestal:

gt; gt; gt; RandomForestClassifier de importación sklearn.ensemble

gt; gt; gt; rf = RandomForestClassifier (n_estimators = 15,

random_state = 111)

los n_estimators parámetro en el constructor es un parámetro de ajuste se utiliza comúnmente para el modelo de bosque aleatorio. El valor se utiliza para construir el número de árboles en el bosque. Por lo general es entre el 10 y el 100 por ciento del conjunto de datos, pero depende de los datos que está utilizando. Aquí, el valor se establece en 15, que es 10 por ciento de los datos. Más adelante, se verá que cambiar el valor del parámetro a 150 (100 por ciento) produce los mismos resultados.

Entonces_estimators se utiliza para ajustar el rendimiento del modelo y sobreajuste. Cuanto mayor sea el valor, mejor es el rendimiento, pero a costa de sobreajuste. Cuanto menor sea el valor, mayor será la posibilidad de no sobreajuste, pero a costa de un menor rendimiento. También, hay un punto en el que el aumento del número generalmente degradar en la mejora de la precisión y puede aumentar dramáticamente la potencia de cálculo necesaria. Los parámetros por defecto a 10 si se omite en el constructor.

Ejecución de los datos de entrenamiento

Tendrá que dividir el conjunto de datos en conjuntos de entrenamiento y prueba antes de poder crear una instancia del clasificador bosque aleatorio. El siguiente código realizar esa tarea:

gt; gt; gt; de sklearn cross_validation importación

gt; gt; gt; X_train, X_test, y_train, y_test =

cross_validation.train_test_split (iris.data,

iris.target, test_size = 0,10, random_state = 111)

gt; gt; gt; rf = rf.fit (X_train, y_train)

  • Línea 1 importa la biblioteca que le permite dividir el conjunto de datos en dos partes.
  • Línea 2 llama a la función de la biblioteca que se divide el conjunto de datos en dos partes y asigna los conjuntos de datos ahora divididas en dos pares de variables.
  • Línea 3 toma el ejemplo del clasificador bosque aleatorio que acaba de crear, a continuación, llama al ajuste Método para entrenar el modelo con la formación de datos.

Ejecución de los datos de prueba

En el siguiente código, la primera línea alimenta el conjunto de datos de prueba al modelo, entonces la tercera línea muestra la salida:

gt; gt; gt; predicho = rf.predict (X_test)

gt; gt; gt; predicho

array ([0, 0, 2, 2, 2, 0, 0, 2, 2, 1, 2, 0, 1, 2, 2])

Evaluación del modelo

Puede PÁgINA la salida de la predicción en contra de la y_test formación. Como resultado, se puede ver que predijo dos puntos de datos de prueba de forma incorrecta. Por lo que la precisión del modelo de bosque al azar fue 86,67 por ciento.

Aquí está el código:

gt; gt; gt; métricas de importación sklearn

Video: inteligencia artificial aprendizaje por refuerzo

gt; gt; gt; predicho

array ([0, 0, 2, 2, 2, 0, 0, 2, 2, 1, 2, 0, 1, 2, 2])

gt; gt; gt; y_test

array ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2])

Video: CLASIFICADOR NAIVE BAYES

gt; gt; gt; metrics.accuracy_score (y_test, predicho)

,8666666666666667 # 1.0 es 100 por ciento de exactitud

gt; gt; gt; == predicho y_test

array ([Cierto, cierto, cierto, cierto, falso, cierto, cierto,

Cierto, cierto, cierto, cierto, cierto, falso, verdadero,

Real], dtype = bool)

Video: Pils, una técnica de optimización probabilística, y su aplicación a la selección de modelo

¿Cómo funciona el modelo de bosque aleatorio realizar si cambia el n_estimators parámetro a 150? Parece que no va a hacer una diferencia para este pequeño conjunto de datos. Se produce el mismo resultado:

gt; gt; gt; rf = RandomForestClassifier (n_estimators = 150,

random_state = 111)

gt; gt; gt; rf = rf.fit (X_train, y_train)

gt; gt; gt; predicho = rf.predict (X_test)

gt; gt; gt; predicho

array ([0, 0, 2, 2, 2, 0, 0, 2, 2, 1, 2, 0, 1, 2, 2])

Artículos Relacionados