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.
Afortunadamente, 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 único 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 a 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. Pero el conjunto de datos 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 en los datos de prueba para ver cómo su modelo predictivo va a realizar.
Escriba el siguiente código para dividir el conjunto de datos:
>>> 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)
Las primeras líneas de las importaciones validación cruzada biblioteca en tu sesión. La segunda línea crea el equipo de prueba de 10 por ciento de la muestra.
x_train contendrá 135 observaciones y sus características.y_entrenar contendrá 135 etiquetas en el mismo orden que los 135 observaciones.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 esperaba:
>>> X_train.shape (135, 4) >>> y_train.shape (135,) >>> X_test.shape (15, 4) >>> y_test.shape (15,)
Se puede ver desde la salida que hay 135 observaciones con 4 funciones y 135 etiquetas en el conjunto de entrenamiento. El equipo de prueba tiene 15 observaciones con 4 funciones y 15 etiquetas.
Muchos principiantes en el campo de la analítica predictiva olvide de dividir los conjuntos de datos - que introduce un defecto de diseño serio 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 usted tendría que recurrir a la reutilización de algunas de las instancias de formación para poner a prueba el modelo predictivo.
Vas a ver que en una situación así, el modelo siempre predice la clase correcta - porque usted está utilizando los mismos datos exacta 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 tiene que 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. Al escribir el código siguiente en el intérprete hará exactamente eso:
>>> SvmClassifier.fit (X_train, y_train)
Esta línea de código crea un modelo de trabajo para hacer predicciones a partir. Específicamente, 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 puede 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. Eso es el método al que va a alimentar de datos nueva a cambio, predice el resultado.