Validación Cruzada con Scikit-learn: Cruz Vales Cor y KFold
Clase 29 de 37 • Curso Profesional de Machine Learning con scikit-learn
Contenido del curso
- 8

Selección de Variables en Modelos de Aprendizaje Automático
06:56 - 9

Reducción de Dimensionalidad con Análisis de Componentes Principales
05:52 - 10

Reducción de Dimensionalidad y Regresión Logística con Python
09:57 - 11

Clasificación de Enfermedad Cardiaca con PCA y Regresión Logística
13:45 - 12

Funciones Kernel en la Clasificación de Datos Complejos
09:01 - 13

Regularización en Modelos de Machine Learning
07:39 - 14

Implementación de Regularización en Modelos de Regresión Lineal
15:19 - 15

Análisis de Resultados en Modelos de Regresión Ridge y Lasso
02:42 - 16
Regularización ElasticNet con Scikit-learn: Conceptos y Aplicación
01:41
- 28

Validación Cruzada en Modelos de Machine Learning
06:53 - 29

Validación Cruzada con Scikit-learn: Cruz Vales Cor y KFold
09:09 - 30

Optimización de Modelos con Búsqueda en Grilla y Aleatoria
07:22 - 31

Automatización de Parámetros en Modelos de Regresión con Random Forest
10:38 - 32
Optimización Automática de Modelos con Auto-sklearn
01:50
- 33

Estructuración Modular de Código Python para Machine Learning
10:17 - 34

Automatización de Modelos Machine Learning con Python
14:18 - 35

Publicación de Modelos de IA con Flask y Python
10:36 - 36

Optimización de Modelos de Machine Learning para Producción
00:42 - 37
Recursos para Aprender Machine Learning y Data Science
00:58
¿Cómo implementar la validación cruzada en Python?
La validación cruzada es una técnica esencial en el análisis de datos que te permite evaluar el rendimiento de un modelo de aprendizaje automático de manera efectiva. Este proceso implica dividir los datos en subconjuntos para probar el modelo varias veces y así asegurar su robustez. Gracias a bibliotecas como Scikit-Learn, esta técnica puede ser implementada de manera sencilla y eficaz. Vamos a explorar cómo hacerlo paso a paso.
¿Cuáles módulos y funciones necesitamos?
Para llevar a cabo la validación cruzada en Python, comenzaremos importando los módulos necesarios:
import pandas as pd
import numpy as np
from sklearn.tree import DecisionTreeRegressor
from sklearn.model_selection import cross_val_score, KFold
- Pandas: Utilizado para la manipulación de datos.
- NumPy: Ayuda en cálculos matemáticos complejos.
- DecisionTreeRegressor: Un modelo de árbol de decisión para regresiones.
- cross_val_score y KFold: Funciones de Scikit-Learn que facilitan la implementación de la validación cruzada.
¿Cómo preparar los datos?
Vamos a utilizar un dataset conocido para llevar a cabo nuestra validación cruzada. Puedes cargarlo y prepararlo como se muestra a continuación:
data = pd.read_csv('data/felicidad.csv')
X = data.drop(['country', 'score'], axis=1)
y = data['score']
- DataFrame
data: Cargamos un CSV que contiene los datos. - Características
X: Todas las columnas excepto el nombre del país y el score. - Objetivo
y: La columna que queremos predecir, en este caso, el 'score'.
¿Cómo definir y evaluar el modelo?
En esta etapa, definimos nuestro modelo de árbol de decisión sin ajustes adicionales y procedemos a evaluarlo.
model = DecisionTreeRegressor()
scores = cross_val_score(
model, X, y, scoring='neg_mean_squared_error', cv=3
)
mean_score = np.mean(scores)
abs_mean_score = np.abs(mean_score)
DecisionTreeRegressor: Se utiliza en su configuración predeterminada.cross_val_score: Calcula el error cuadrático medio negativo para validar cruzadamente.- Media y valor absoluto: Convertimos el valor medio del score negativo a su valor absoluto para mayor claridad.
¿Cómo controlar las particiones de datos?
Usamos KFold para dividir los datos en subconjuntos específicos y controlar la aleatorización y consistencia de las particiones.
kf = KFold(n_splits=3, shuffle=True, random_state=42)
for train_index, test_index in kf.split(X):
X_train, X_test = X.iloc[train_index], X.iloc[test_index]
y_train, y_test = y.iloc[train_index], y.iloc[test_index]
KFold: Permite definir el número de particiones (3 en nuestro caso), además de la opción de aleatorización.- Partición y asignación: Divide los datos en conjuntos de entrenamiento y prueba.
¡Así es como puedes implementar y controlar la validación cruzada de manera sencilla en Python! Experimentar con diferentes modelos y configuraciones te dará una profunda comprensión de la robustez y eficacia de tus modelos. Sigue explorando y aprendiendo, el único límite es tu curiosidad.