“Una técnica de validación de modelo llamada validación cruzada evalúa la generalización de los resultados de análisis estadístico a diferentes conjuntos de datos empleados principalmente en contextos donde el objetivo es pronosticar. Utilizamos la validación cruzada para probar el modelo mientras entrenamos y generalizamos los datos. Este artículo discutirá cómo se implementa en la Biblioteca Python Sklearn."
¿Qué es la validación cruzada??
Es una técnica de evaluación del modelo estadístico que prueba cómo se generalizarán los datos a diferentes conjuntos de datos. Se centra en determinar la precisión del modelo en el uso real y es esencialmente en el contexto donde el objetivo principal es pronosticar. La validación cruzada prueba el modelo durante el entrenamiento y su capacidad para generalizar los datos.
¿En qué se diferencian los datos de prueba y trenes??
Los datos utilizados para desarrollar un modelo, como los datos utilizados para determinar los coeficientes de una regresión multilineal, se denominan datos de capacitación. Una vez que se crea el modelo, se prueba con los datos de prueba para determinar qué tan bien se ajusta el modelo a los datos.
Implementación de validación cruzada en Sklearn
Importar bibliotecas requeridas
importar numpy como np
de Sklearn.model_selection import train_test_split
de conjuntos de datos de importación de Sklearn
de sklearn import svm
de Sklearn.model_selection import cross_val_score
Creando el conjunto de datos
X, y = conjuntos de datos.load_iris (return_x_y = true)
X_train, x_test, y_train, y_test = trenes_test_split (x, y, test_size = 0.4, Random_state = 0)
print (x_train [: 20], y_train [: 20])
Producción
[[6. 3.4 4.5 1.6]
[4.8 3.1 1.6 0.2]
[5.8 2.7 5.1 1.9]
[5.6 2.7 4.2 1.3]
[5.6 2.9 3.6 1.3]
[5.5 2.5 4. 1.3]
[6.1 3. 4.6 1.4]
[7.2 3.2 6. 1.8]
[5.3 3.7 1.5 0.2]
[4.3 3. 1.1 0.1]
[6.4 2.7 5.3 1.9]
[5.7 3. 4.2 1.2]
[5.4 3.4 1.7 0.2]
[5.7 4.4 1.5 0.4]
[6.9 3.1 4.9 1.5]
[4.6 3.1 1.5 0.2]
[5.9 3. 5.1 1.8]
[5.1 2.5 3. 1.1]
[4.6 3.4 1.4 0.3]
[6.2 2.2 4.5 1.5]] [1 0 2 1 1 1 1 2 0 0 2 1 0 0 1 0 2 1 0 1]
Crear el modelo y encontrar puntajes de validación cruzada
CLF = SVM.Svc (kernel = 'lineal', c = 1).Fit (x_train, y_train)
CLF = SVM.Svc (kernel = 'lineal', c = 1, random_state = 42)
puntajes = Cross_val_score (CLF, X, Y, CV = 5)
Imprimir (puntajes)
Producción
[0.96666667 1. 0.966666667 0.96666667 1. ]
Conclusión
Cuando el conjunto de datos para el entrenamiento y las pruebas es demasiado pequeño, se requiere validación cruzada. El conjunto de datos generalmente se divide en n piezas aleatorias de igual volumen para evitar el problema de sobreajuste. La técnica se evalúa con la parte restante después del entrenamiento con piezas N-1. El promedio de las métricas a lo largo de las ejecuciones de prueba de N se utiliza para obtener la medida general. Más tarde, agregamos validación cruzada a Sklearn, que tiene una clase llamada "selección de modelos" para hacerlo.