Cómo crear un modelo de aprendizaje supervisado con regresión logística

Después de construir su primer modelo predictivo clasificación para el análisis de los datos, la creación de más modelos como que es una tarea muy sencilla en scikit

. La única diferencia real de un modelo a otro es que puede que tenga que ajustar los parámetros del algoritmo de algoritmo.

Cómo cargar sus datos

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

>>> From sklearn.datasets importar load_iris >>> iris = load_iris ()

¿Cómo crear una instancia del clasificador

Las dos líneas de código siguientes crean una instancia del clasificador. La primera línea importa la biblioteca de regresión logística. La segunda línea crea una instancia del algoritmo de regresión logística.

>>> From sklearn linear_model importación >>> logClassifier = linear_model.LogisticRegression (C = 1, random_state = 111)

Observe el parámetro (parámetro de regularización) en el constructor. los parámetro de regularización se utiliza para evitar overfitting. El parámetro no es estrictamente necesario (el constructor va a funcionar bien sin él, ya que será por defecto C = 1). Creación de un clasificador de regresión logística utilizando C = 150 crea una mejor parcela de la superficie decisión. Usted puede ver las dos parcelas de abajo.

Cómo ejecutar los datos de entrenamiento

Usted tendrá que dividir el conjunto de datos en capacitación y de prueba antes de poder crear una instancia del clasificador de regresión logística. El siguiente código realizar esa tarea:

>>> From sklearn cross_validation importación >>> X_train, X_test, y_train, y_test = cross_validation.train_test_split (iris.data, iris.target, test_size = 0,10, random_state = 111) >>> logClassifier.fit (X_train, y_train)
Línea 1 importa la biblioteca que 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 la instancia del clasificador de regresión logística que acaba de crear y llama al ajuste método para entrenar el modelo con la formación de datos.

Cómo visualizar el clasificador

En cuanto a la superficie decisión sobre la trama, parece que algunos ajustes que hay que hacer. Si se mira cerca de la mitad de la parcela, se puede ver que muchos de los puntos de datos que pertenecen a la zona media (versicolor) están mintiendo en el área a la derecha (Virginica).

imagen0.jpg

Esta imagen muestra la superficie de la decisión con un valor C de 150. Se ve visualmente mejor, así que la elección de utilizar este ajuste para el modelo de regresión logística parece apropiado.

image1.jpg

Cómo ejecutar los datos de prueba

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

>>> Predicho = logClassifier.predict (X_test) >>> predictedarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2])

¿Cómo evaluar el modelo

Puede Referencia cruzada la salida de la predicción en contra de la y_test array. Como resultado, se puede ver que predijo todos los puntos de datos de prueba correctamente. Aquí está el código:

>>> From métricas de importación sklearn >>> predictedarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>> y_testarray ([ 0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>> metrics.accuracy_score (y_test, predicho) 1.0 # 1.0 es 100 por ciento de precisión> >> predicho == y_testarray ([Real, True, True, True, True, True, True, True, True, True, True, True, True, True, True], dtype = bool)

Entonces, ¿cómo el modelo de regresión logística con parámetro C = 150 comparar a eso? Bueno, no se puede superar el 100 por ciento. Este es el código para crear y evaluar el clasificador logística con C = 150:

>>> LogClassifier_2 = linear_model.LogisticRegression (C = 150, random_state = 111) >>> logClassifier_2.fit (X_train, y_train) >>> predicho = logClassifier_2.predict (X_test) >>> metrics.accuracy_score (y_test, predicho) 0.93333333333333335 >>> metrics.confusion_matrix (y_test, predijo) matriz ([[5, 0, 0], [0, 2, 0], [0, 1, 7]])

Nos esperábamos algo mejor, pero en realidad fue peor. Hubo un error en las predicciones. El resultado es el mismo que el del modelo de apoyo Vector Machine (SVM).

Aquí está la lista completa del código para crear y evaluar un modelo de clasificación de regresión logística con los parámetros por defecto:

>>> From sklearn.datasets importar load_iris >>> from sklearn linear_model importación >>> from sklearn cross_validation importación >>> from métricas importación sklearn >>> iris = load_iris () >>> X_train, X_test, y_train, y_test = cross_validation .train_test_split (iris.data, iris.target, test_size = 0,10, random_state = 111) >>> logClassifier = linear_model.LogisticRegression (, random_state = 111) >>> logClassifier.fit (X_train, y_train) >>> predijo = logClassifier .predict (X_test) >>> predictedarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>> y_testarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>> metrics.accuracy_score (y_test, predicho) 1.0 # 1.0 es 100 por ciento de exactitud >>> predicho == y_testarray ([Real, True, True, True, True, True, True, True, True, True, True, True, True, True, True], dtype = bool)



» » » » Cómo crear un modelo de aprendizaje supervisado con regresión logística