La validación cruzada ayuda a evaluar los modelos de aprendizaje automático. Este método estadístico ayuda a comparar y seleccionar el modelo en el aprendizaje automático aplicado. La comprensión y aplicación de este problema de modelado predictivo es fácil y sencilla. Esta técnica tiene un menor sesgo al estimar las habilidades del modelo. Este artículo le ayudará a entender el concepto de k-fold cross-validation y cómo puede evaluar un modelo de aprendizaje automático utilizando esta técnica.
Validación cruzada k-fold
La validación cruzada k-fold significa que el conjunto de datos se divide en un número K. Divide el conjunto de datos en el punto en el que el conjunto de pruebas utiliza cada pliegue. Entendamos el concepto con la ayuda de la validación cruzada de 5 pliegues o K+5. En este escenario, el método dividirá el conjunto de datos en cinco pliegues. El modelo utiliza el primer pliegue en la primera iteración para probar el modelo. Utiliza los conjuntos de datos restantes para entrenar el modelo. El segundo pliegue ayuda a probar el conjunto de datos y el otro apoya el proceso de entrenamiento. El mismo proceso se repite hasta que el conjunto de pruebas utiliza todos los pliegues de los cinco pliegues.
Validación cruzada de pliegues K en el aprendizaje automático
Junto con los numerosos beneficios de los algoritmos de aprendizaje automático, el modelo sigue el mismo modelo para predecir y generar los datos de valores discretos o continuos. Es esencial asegurarse de que los datos del modelo son precisos y no se ajustan de forma insuficiente o excesiva. El infraajuste y el sobreajuste son dos conceptos principales del aprendizaje automático. Estos términos definen lo bien que se entrena un modelo para predecir los datos. Para comprobar el rendimiento y el comportamiento del algoritmo, el sobreajuste incluye un valor de hiperparámetro.
-Sobreajuste en el aprendizaje automático
El modelo puede generar predicciones precisas con los nuevos datos cuando el modelo se ajusta perfectamente al conjunto de datos. Un algoritmo adecuado para el conjunto de datos entrenado puede ayudar a entrenar el nuevo conjunto de datos. Por otra parte, si el modelo de aprendizaje automático se basa en un proceso de entrenamiento no ajustado, no generará datos precisos ni predicciones adecuadas. Por lo tanto, el modelo no podrá procesar los patrones importantes de los conjuntos de datos.
Si el modelo se detiene durante el proceso de entrenamiento, se producirá un infraajuste. Esto indica que los datos necesitan más tiempo para ser procesados completamente. Esto afectará al rendimiento del modelo para los nuevos datos. El modelo no producirá resultados precisos y no será útil.
-Sobreajuste en el aprendizaje automático
El overfitting es simplemente lo contrario del underfitting. Significa que además de aprender los datos y extraer el patrón, el modelo está aprendiendo más de su capacidad. Esta condición indica que los datos van a captar ruido, lo que le lleva a generalizar el modelo para los nuevos datos. El ruido son los datos irrelevantes que afectan a la salida de la predicción al encontrar nuevos datos.
Evaluación de un modelo ML utilizando la validación cruzada de K-fold
A continuación, evaluaremos el modelo de regresión simple utilizando la técnica de validación cruzada K-fold. En este ejemplo realizaremos una validación cruzada de 10 veces.
1.Importación de bibliotecas
El primer paso es importar todas las librerías necesarias para realizar esta técnica de validación cruzada sobre un modelo simple de aprendizaje automático.
importar pandas
from sklearn.model_selection import KFold
from sklearn.preprocessing import MinMaxScaler
from sklearn.svm import SVR
import NumPy as np
Estas librerías ayudarán a realizar diferentes tareas:
- Numpy -Le ayuda a realizar cálculos científicos
- Pandas -Le ayuda a manipular la estructura de datos fácilmente.
- Sklearn-Es una librería de machine learning que puedes utilizar para python.
2.Lectura del conjunto de datos
Ahora leeremos el conjunto de datos que utilizaremos. Utilizaremos pandas para estructurar el marco de datos.
dataset = pandas.read_csv(‘vivienda.csv’)
3.Pre-procesamiento
Identificar las variables de salida y las características de nuestro conjunto de datos.
X = dataset.iloc[:, [0, 12]]
y = dataset.iloc[:, 13]
Según el código anterior, todas las filas de 0 a 12 son las características, y el índice 13 de la columna es la variable dependiente o la salida del modelo. Ahora, podemos aplicar la técnica de preprocesamiento. Esta técnica de escalado MinMax normalizará el conjunto de datos.
scaler = MinMaxScaler(feature_range=(0, 1))
X = scaler.fit_transform(X)
Con la ayuda de esta técnica, puedes reescalar los datos en un rango específico. En este ejemplo, el rango estaría entre 0 y 1. Esto nos ayudará a entender que varias características no afectarán a la predicción final.
4.K-Fold CV
Ahora, comenzaremos el proceso de validación con los siguientes códigos:
scores = []
best_svr = SVR(kernel=’rbf’)
cv = KFold(n_splits=10, random_state=42, shuffle=False)
para train_index, test_index en cv.split(X):
print(“Índice de entrenamiento: “, train_index, “\n”)
print(“Índice de prueba: “, test_index)
X_train, X_test, y_train, y_test = X[train_index], X[test_index], y[train_index], y[test_index]
best_svr.fit(X_train, y_train)
scores.append(best_svr.score(X_test, y_test))
Conclusión
La validación cruzada K-fold mejora el modelo mediante la validación de los datos. Esta técnica garantiza que la puntuación del modelo no está relacionada con la técnica que utilizamos para elegir el conjunto de datos de prueba o de entrenamiento. El método de validación cruzada K-fold divide el conjunto de datos en subconjuntos como número K. Por lo tanto, repite el método de validación cruzada k veces.