Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Scikit-learn desde cero, Unidad 2 — Instalación y primer contacto, 2.2 — Primer modelo paso a paso ·

Entrenar y predecir

Entrenar y predecir: Tu primer modelo con Scikit-learn

Introducción

Entrenar y predecir son dos de los pasos más cruciales en la construcción de modelos de machine learning utilizando Scikit-learn. Estos pasos forman parte esencial del flujo estándar de trabajo cuando se trabaja con datos. En esta unidad, aprenderás cómo cargar un dataset, separarlo en conjuntos de entrenamiento y prueba, y luego utilizar estos conjuntos para entrenar y predecir con modelos de Scikit-learn.

Explicación principal con ejemplos

Para ilustrar el proceso paso a paso, usaremos la librería scikit-learn junto con pandas. Consideremos un conjunto de datos simple donde intentamos predecir el precio de una casa basado en características como el número de habitaciones y el tamaño del terreno. Primero, necesitamos instalar Scikit-learn si no lo hemos hecho ya:

!pip install scikit-learn

Paso 1: Cargar un dataset

Usaremos el famoso conjunto de datos Boston Housing disponible en Scikit-learn para nuestro ejemplo:

from sklearn.datasets import load_boston
import pandas as pd

boston = load_boston()
df = pd.DataFrame(boston.data, columns=boston.feature_names)
df['PRICE'] = boston.target  # Añadimos la columna de precios al DataFrame

Paso 2: Separar train y test

Es crucial dividir los datos en conjuntos de entrenamiento y prueba para evaluar el rendimiento del modelo. Usaremos train_test_split desde Scikit-learn:

from sklearn.model_selection import train_test_split

X = df.drop('PRICE', axis=1)  # Características
y = df['PRICE']               # Etiquetas

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

Paso 3: Entrenar y predecir

Ahora que tenemos nuestros conjuntos de datos preparados, podemos entrenar un modelo utilizando LinearRegression:

from sklearn.linear_model import LinearRegression

model = LinearRegression()
model.fit(X_train, y_train)  # Entrenamos el modelo con los datos de entrenamiento

predictions = model.predict(X_test)  # Hacemos predicciones en los datos de prueba

Errores típicos / trampas

Aprender a entrenar y predecir correctamente es solo la primera parte del proceso. Es igualmente importante evitar ciertos errores comunes:

  1. Olvidar el random_state: Utilizar una semilla diferente para cada corrida puede dar resultados muy distintos, lo que afecta la comparabilidad de los resultados.
  2. No normalizar los datos: Algunos modelos son más efectivos cuando las características están en una escala similar. No olvides usar técnicas como StandardScaler o MinMaxScaler.
  3. Ignorar el test_size: Un tamaño de conjunto de prueba incorrecto puede dar resultados sesgados y no representativos del rendimiento real.

Checklist accionable

Para asegurarte de que estás siguiendo el camino correcto durante estos pasos, considera incluir lo siguiente en tu lista:

  1. Verifica la importación: Asegúrate de importar todos los paquetes necesarios.
  2. Carga correctamente el dataset: Comprueba que las columnas y valores están presentes y no faltantes.
  3. Separa con cuidado train y test: Verifica que el tamaño del conjunto de prueba es adecuado y la semilla está estandarizada.
  4. Escalar los datos si es necesario: Normaliza o escalas las características para mejorar el rendimiento del modelo.
  5. Entrena el modelo: Verifica que los datos de entrenamiento son correctos antes de iniciar el entrenamiento.

Cierre con "Siguientes pasos"

Aprender a entrenar y predecir es solo el comienzo en el camino hacia ser un experto en machine learning con Scikit-learn. Aquí te presentamos algunas sugerencias para seguir avanzando:

  1. Explorar modelos más complejos: Aprende sobre otras técnicas de regresión y clasificación, como árboles de decisión o algoritmos de aprendizaje profundo.
  2. Profundiza en la evaluación del modelo: Conoce las métricas de evaluación detenidamente para asegurarte de que tus modelos están optimizados.
  3. Aprende sobre validación cruzada: Utiliza estrategias como cross_val_score y StratifiedKFold para obtener una mejor comprensión del rendimiento del modelo.

¡Felicitaciones por haber completado este primer paso en tu viaje con Scikit-learn!

Contacto

Indica tu objetivo (ChatGPT, RAG, agentes, automatización) y tu stack (web/backend).