Cómo ejecutar los datos de prueba y evaluar un modelo de aprendizaje supervisado svm

Aprendizaje supervisado es una tarea de aprendizaje de máquina que aprende de los datos de análisis de predicción que ha sido etiquetados. Una manera de pensar acerca del aprendizaje supervisado es que el etiquetado de los datos se realiza bajo la supervisión de la modeler- aprendizaje no supervisado, por el contrario, no requiere datos etiquetados. El aprendizaje supervisado se realiza habitualmente utilizando un algoritmo de clasificación.

Cómo ejecutar los datos de prueba

El uso de 10 por ciento de los 150 casos del conjunto de datos que da 15 puntos de prueba de datos para ejecutar a través del modelo. Vamos a ver cómo su modelo predictivo va a realizar. Escriba el siguiente listado de código en el intérprete:

gt; gt; gt; predicho = svmClassifier.predict (X_test) gt; gt; gt; predictedarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 1, 2, 2])

los predecir función en la primera línea de código es lo que hace la predicción, ya que puede haber adivinado. Toma los datos de prueba como entrada y salida a los resultados en la variable predicho. La segunda línea imprime la salida.

La última línea en la sección de código es la salida, o predicción: una matriz de 15 - es decir, 10 por ciento de la muestra de datos, que es el tamaño del conjunto de datos de prueba. Los números de la matriz representan las clases de flor del iris.

¿Cómo evaluar el modelo

Para evaluar la exactitud de su modelo, se puede comparar la matriz de salida con el y_test formación. Por esta pequeña muestra de datos, se puede deducir fácilmente cómo se lleva a cabo por ver que la matriz de salida de la función de predecir es casi la misma que la y_test formación. La última línea del código es un simple comprobación de igualdad entre las dos matrices, suficiente para este caso de prueba simple.

Aquí está el código:

gt; gt; gt; predictedarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 1, 2, 2]) gt; gt; gt; y_testarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) gt; gt; gt; predicho == y_testarray ([Verdadero, True, True, True, True, True, True, True, True, True, True, True, False, True, True], dtype = bool)

En cuanto a la matriz de salida con todo el booleana (Cierto y Falso) Los valores, se puede ver que el modelo predijo todos menos uno de los resultados. En el punto de datos XIII, predijo 1 (versicolor), cuando debería haber sido 2 (Virginica). los Falso valor (s) indican que el modelo predijo la clase Iris incorrecta de ese punto de datos. El porcentaje de predicciones correctas determinará la precisión del modelo predictivo.

En este caso puede simplemente usar división básica y obtener la precisión:

los resultados correctos / tamaño de la prueba = gt; 14/15 = gt; 0,9333 o 93,33 por ciento

No es de extrañar que el modelo no para predecir Virginica o Versicolor- no son claramente separables por una línea recta. Un fallo de predecir Setosa, sin embargo, sería sorprendente porque Setosa es claramente linealmente separables. Aún así, la precisión fue 14 de 15, o 93,33 por ciento.

Para una prueba de conjunto con más puntos de datos, es posible que desee utilizar el métrica módulo para hacer sus mediciones. El siguiente código tendrá la precisión del modelo:

gt; gt; gt; de sklearn metricsgt importación; gt; gt; metrics.accuracy_score (y_test, predicho) ,93333333333333335

Otra herramienta de medición útil es la matriz de confusión. Sí, es real. Es una matriz (formato tabular) que muestra las predicciones de que el modelo hecho en los datos de prueba. Aquí está el código que muestra la matriz de confusión:

gt; gt; gt; metrics.confusion_matrix (y_test, predicho) array ([[5, 0, 0], 
[0, 2, 0],
[0, 1, 7]])

La línea diagonal desde la esquina superior izquierda a la esquina inferior derecha es el número de predicciones correctas para cada fila. Cada fila corresponde a una clase de Iris.

Por ejemplo: La primera fila corresponde a la clase Setosa. El modelo predijo cinco puntos de datos de prueba correcto y no tenía errores de predicción de la clase Setosa. Si tuviera un error, un número distinto de cero estaría presente en cualquiera de las columnas de esa fila.

La segunda fila corresponde a la clase versicolor. El modelo predijo dos puntos de datos de prueba correcto y sin errores. La tercera fila corresponde a la clase de Virginica. El modelo predijo siete puntos de datos de prueba correcto, pero también tenía un error.

El modelo predijo erróneamente una observación de Virginica para un versicolor. Se puede decir que mirando a la columna en la que el error está apareciendo. Columna 1 pertenece a versicolor.

La precisión de los resultados de un modelo predictivo afectará directamente a la decisión de desplegar que Modelo- mayor será la precisión, el apoyo más fácilmente se puede recoger para el despliegue del modelo.

Video: Red Hopfield - CreatioNexus

Al crear un modelo predictivo, empezar por la construcción de una solución de trabajo de forma rápida sencilla - y luego continuar construyendo de forma iterativa hasta que obtenga el resultado deseado. Pasar meses la construcción de un modelo predictivo - y no ser capaz de mostrar sus partes interesadas ningún resultado - es una manera segura de perder la atención y el apoyo de sus grupos de interés.

Aquí está la lista completa del código para crear y evaluar un modelo de clasificación SVM:

gt; gt; gt; de sklearn.datasets importar load_irisgt; gt; gt; de LinearSVCgt importación sklearn.svm; gt; gt; de sklearn cross_validationgt importación; gt; gt; de sklearn metricsgt importación; gt; gt; iris = load_iris () 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; svmClassifier = LinearSVC (random_state = 111) gt; gt; gt; svmClassifier.fit (X_train, y_train) gt; gt; gt; predicho = svmClassifier.predict (X_test) gt; gt; gt; predictedarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 1, 2, 2]) gt; gt; gt; y_testarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) gt; gt; gt; metrics.accuracy_score (y_test, predicho) 0.93333333333333335gt; gt; gt; predicho == y_testarray ([Verdadero, True, True, True, True, True, True, True, True, True, True, True, False, True, True], dtype = bool)
Artículos Relacionados