mfalconsoft@gmail.com Aprende 24/7, a tu ritmo
Nuevo: carrera de Inglés de Básico a Avanzado
Estu20
InicioCarrerasCursosComunidadBlogPrecioContacto
InicioCarrerasCursosComunidadBlogPrecioContacto
Estu20

Carreras y cursos online para aprender a tu ritmo, con documentación, presentaciones, audios y juegos.

Explora

  • Carreras
  • Cursos
  • Mi aprendizaje
  • Comunidad
  • Blog
  • Precio: 1 €/mes

Tu cuenta

  • Crear cuenta
  • Ingresar

Contacto

  • mfalconsoft@gmail.com
  • estu20.com

© Estu20. Estudia a tu ritmo.

Hecho con ♥ para estudiantes curiosos.

IngresarEmpieza gratis
Machine Learning con scikit-learn
  1. 1¿Qué es aprender? Datos de entrenamiento, test y train_test_split
  2. Regresión lineal: predecir las ventas del café
  3. Clasificación: k-vecinos y árboles de decisión
  4. Evaluar modelos: accuracy, matriz de confusión, precisión y recall
  5. Clustering con k-means: agrupar clientes sin etiquetas
  6. Mini proyecto: un clasificador de flores (iris) de principio a fin

Unidad 1 · Fundamentos del aprendizaje automático

¿Qué es aprender? Datos de entrenamiento, test y train_test_split

0 / 135 XP en este tema
Vista previa · inscríbete para guardar

¿Qué significa que una máquina "aprende"?

Valeria tiene una libreta con tres años de ventas de su café. Su primo Bruno le dice: "Fácil, le pasamos la libreta a una IA y listo". Pixel, el robot sarcástico, levanta una ceja metálica: "Claro, y yo soy el rey de los tostadores".

Aprender, en machine learning, significa encontrar patrones en datos pasados para hacer predicciones sobre datos nuevos. No programas las reglas a mano: el algoritmo las descubre mirando ejemplos.

Los ingredientes

  • Características (X): lo que sabemos de cada caso. Por ejemplo, temperatura, día de la semana, si llueve.
  • Etiqueta u objetivo (y): lo que queremos predecir. Por ejemplo, cuántos cafés se venden.
  • Modelo: la "máquina" que relaciona X con y.

Por convención, X va en mayúscula (es una tabla) y y en minúscula (es una columna).

Tipo de problema¿Qué predice?Ejemplo
RegresiónUn númeroCafés vendidos mañana
ClasificaciónUna categoría¿Esta reseña es buena o mala?
ClusteringGrupos sin etiquetasTipos de clientes

El peligro: memorizar no es aprender

Imagina un estudiante que se aprende de memoria las respuestas del examen de práctica. En el examen real, con preguntas nuevas, se hunde. Eso se llama sobreajuste (overfitting).

Para detectarlo hacemos algo muy simple: escondemos una parte de los datos. Entrenamos con la mayoría (train) y examinamos con la parte escondida (test), que el modelo nunca vio.

train_test_split

import numpy as np
from sklearn.model_selection import train_test_split

X = np.arange(20).reshape(10, 2)   # 10 filas, 2 columnas
y = np.arange(10)

X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=0
)
print(X_train.shape, X_test.shape)  # (8, 2) (2, 2)

Detalles importantes:

  • test_size=0.2 reserva el 20 % para el examen.
  • random_state=0 fija el azar: siempre sale la misma mezcla. Sin esto, tus resultados cambian en cada ejecución.
  • Devuelve cuatro cosas, siempre en este orden: X_train, X_test, y_train, y_test.

Estratificar: que nadie quede fuera

Si el 20 % de tus clientes son "frecuentes" y el azar manda todos al train, el test no los verá. Con stratify=y se conserva la proporción de cada clase.

y = np.array([0] * 80 + [1] * 20)
X = np.arange(100).reshape(100, 1)
_, _, _, y_test = train_test_split(X, y, test_size=0.25, stratify=y, random_state=0)
print(y_test.mean())  # 0.2

Errores típicos

  1. Evaluar con los mismos datos con que entrenaste. Es como corregir tu propio examen con las respuestas delante: sale 10 siempre.
  2. Olvidar random_state y no poder reproducir resultados.
  3. Cambiar el orden de las variables al desempaquetar (X_train, y_train, ...) y mezclar todo.
  4. Hacer el split demasiado tarde, después de preparar los datos con información del test (se llama fuga de datos).
💡 Truco: una división habitual es 80 % train y 20 % test, o 70/30 si tienes pocos datos.

Historia: la libreta tramposa

Bruno entrenó un modelo con toda la libreta y presumió: "¡100 % de acierto!". Pixel preguntó: "¿Con qué datos lo probaste?". Bruno: "Con los mismos". Pixel apagó un LED con dignidad: "Has hecho un loro, no un predictor". Valeria sonrió, separó el 20 % de la libreta y por fin supieron qué tan bueno era su modelo de verdad.

Reto

Carga el dataset de flores load_iris, divídelo 70/30 y comprueba cuántas flores quedan en cada parte. ¡Debería sumar 150!