Cómo ejecutar datos de entrenamiento en un modelo de aprendizaje supervisado svm

Antes de que pueda alimentar el clasificador Apoyo Vector Machine (SVM) con los datos que se cargan durante el análisis predictivo, debe dividir el conjunto de datos completo en un conjunto de entrenamiento y de prueba.

Video: Sistemas Inteligentes - Unidad 3 Aprendizaje Supervisado - Andrés Bueno

Por suerte, scikit-learn ha implementado una función que le ayudará a dividir fácilmente el conjunto de datos completo. los train_test_split función toma como entrada un solo conjunto de datos y un valor de porcentaje. El valor de porcentaje se utiliza para determinar el tamaño del conjunto de prueba. La función devuelve dos conjuntos de datos: los datos de prueba (con su tamaño especificado) y la formación de datos (que utiliza los datos restantes).

Por lo general, uno puede tomar alrededor de 70-80 por ciento de los datos para su uso como un conjunto de entrenamiento y el uso de los datos restantes como el conjunto de prueba. Sin embargo, el conjunto de datos del iris es muy pequeño (sólo 150 casos), para que pueda tomar el 90 por ciento de ella para entrenar el modelo y utilizar el otro 10 por ciento como datos de prueba para ver cómo su modelo predictivo va a realizar.

Escriba el siguiente código para dividir el conjunto de datos:

gt; gt; gt; de sklearn cross_validationgt importación; 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)

Las primeras importaciones de línea validación cruzada biblioteca en tu sesión. La segunda línea crea el equipo de prueba de 10 por ciento de la muestra.

Video: Inteligencia Artificial - USIL - Clase 03 - Aprendizaje Supervisado - Clasificación

x_train contendrá 135 observaciones y sus características.

y_tren contendrá 135 etiquetas en el mismo orden que los 135 observaciones.

Video: Machine Learning

x_test contendrá 15 (o 10 por ciento) Observaciones y sus características.

y_test contendrá 15 etiquetas en el mismo orden que las 15 observaciones.

El siguiente código comprueba que la división es lo que se esperaba:

gt; gt; gt; X_train.shape (135, 4) gt; gt; gt; y_train.shape (135,) gt; gt; gt; X_test.shape (15, 4) gt; gt; gt; y_test.shape (15,)

Se puede ver en la salida que hay 135 observaciones con 4 características y 135 etiquetas en el conjunto de entrenamiento. El equipo de prueba tiene 15 observaciones con 4 características y 15 etiquetas.

Video: Inteligencia Artificial - USIL - Clase 05 - Aprendizaje Supervisado - k Vecinos Más Próximos

Muchos principiantes en el campo de la analítica predictiva se olvide de dividir los conjuntos de datos - que introduce un grave fallo de diseño en el proyecto. Si los 150 casos completos fueron cargados en la máquina como datos de entrenamiento, eso dejaría sin datos invisibles para probar el modelo. Entonces tendría que recurrir a la reutilización de algunas de las instancias de capacitación para probar el modelo predictivo.

Verá que en una situación así, el modelo predice siempre la clase correcta - porque usted está utilizando exactamente los mismos datos que utilizó para entrenar el modelo. El modelo ya ha visto este patrón de antes- que no tendrá ningún problema simplemente repetir lo que ha visto. Un modelo predictivo de trabajo necesita para hacer predicciones para los datos que no se ha visto todavía.

Cuando usted tiene una instancia de un clasificador SVM, un conjunto de datos de entrenamiento y un conjunto de datos de prueba, ya está listo para entrenar el modelo con los datos de entrenamiento. Escribiendo el siguiente código en el intérprete hará exactamente eso:

gt; gt; gt; svmClassifier.fit (X_train, y_train)

Esta línea de código crea un modelo de trabajo para hacer predicciones a partir. En concreto, un modelo predictivo que predecir qué clase de Iris un nuevo conjunto de datos sin etiqueta pertenece. los svmClassifier instancia tendrá varios métodos que se pueden llamar para hacer varias cosas.

Por ejemplo, después de llamar al ajuste método, el método más útil para llamar es el predecir método. Ese es el método al que se va a alimentar nueva Data- a cambio, predice el resultado.

Artículos Relacionados