Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Validación Cruzada | Modelado
Introducción al Aprendizaje Automático con Python

Validación Cruzada

Desliza para mostrar el menú

La división en conjuntos de entrenamiento y prueba tiene dos desventajas:

  1. Menos datos de entrenamiento, lo que puede reducir la calidad del modelo;
  2. Dependencia de la división aleatoria, lo que provoca resultados inestables. Para superar esto, se utiliza la validación cruzada.

Primero, divide todo el conjunto de datos en 5 partes iguales, conocidas como folds.

folds_split

A continuación, utilizar un pliegue como conjunto de prueba y combinar los pliegues restantes para formar el conjunto de entrenamiento.

Paso 2 de CV

Como en cualquier proceso de evaluación, el conjunto de entrenamiento se utiliza para entrenar el modelo, mientras que el conjunto de prueba se utiliza para medir su rendimiento.

Paso 3 de validación cruzada

El proceso se repite de modo que cada partición actúa como conjunto de prueba una vez, mientras que las particiones restantes forman el conjunto de entrenamiento.

Paso 3 de VC

La validación cruzada produce múltiples puntuaciones de precisión, una por cada partición. Su media representa el rendimiento promedio del modelo. En Python, esto se calcula con cross_val_score().

Note
Nota

Se puede elegir cualquier número de particiones. Por ejemplo, usar 10 particiones significa entrenar con 9 partes y probar con 1. Esto se configura mediante el parámetro cv en cross_val_score().

cross_val_score
1234567891011
import pandas as pd from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import cross_val_score df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_pipelined.csv') # Assign X, y variables (X is already preprocessed and y is already encoded) X, y = df.drop('species', axis=1), df['species'] # Print the cross-val scores and the mean for KNeighborsClassifier with 5 neighbors scores = cross_val_score(KNeighborsClassifier(), X, y) print(scores) print(scores.mean())

La validación cruzada es más confiable pero más lenta, ya que el modelo se entrena y evalúa n veces. Se utiliza ampliamente en la optimización de hiperparámetros, donde la validación cruzada se repite para cada valor de hiperparámetro; por ejemplo, probando múltiples valores de k en k-NN. Esto ayuda a elegir la opción que constantemente ofrece el mejor rendimiento.

question mark

¿Por qué puede preferirse la validación cruzada sobre la división train-test para evaluar el rendimiento de un modelo de aprendizaje automático?

Selecciona la respuesta correcta

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 4

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Sección 4. Capítulo 4
some-alt