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

bookValidación Cruzada

La división entre entrenamiento y prueba presenta dos inconvenientes:

  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, dividir todo el conjunto de datos en 5 partes iguales, conocidas como folds (pliegues).

Luego, utilizar un fold como conjunto de prueba y combinar los folds restantes para formar el conjunto de entrenamiento.

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

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

La validación cruzada genera múltiples puntuaciones de precisión, una por cada divisió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().

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())
copy

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 entrenamiento-prueba para evaluar el rendimiento de un modelo de aprendizaje automático?

Select the correct answer

¿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

Awesome!

Completion rate improved to 3.13

bookValidación Cruzada

Desliza para mostrar el menú

La división entre entrenamiento y prueba presenta dos inconvenientes:

  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, dividir todo el conjunto de datos en 5 partes iguales, conocidas como folds (pliegues).

Luego, utilizar un fold como conjunto de prueba y combinar los folds restantes para formar el conjunto de entrenamiento.

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

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

La validación cruzada genera múltiples puntuaciones de precisión, una por cada divisió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().

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())
copy

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 entrenamiento-prueba para evaluar el rendimiento de un modelo de aprendizaje automático?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

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