QuieroProgramar por Rodri Gonzalez
Data Analysis · Lección 14 de 19

Introducción a Machine Learning

Machine Learning (ML) es el campo de la inteligencia artificial donde las computadoras aprenden patrones a partir de datos, sin ser programadas explícitamente para cada caso. No necesitás un doctorado para entenderlo — los conceptos fundamentales son simples y poderosos. Como Data Analyst, no vas a construir modelos complejos de deep learning, pero sí necesitás entender cómo funcionan para colaborar con Data Scientists y evaluar resultados.

90–120 min Prerrequisitos: Lección 13 (NumPy)
01

Concepto teórico

¿Qué es Machine Learning?

La programación tradicional funciona así: le das reglas + datos → la computadora produce respuestas. Machine Learning invierte el proceso: le das datos + respuestas correctas → la computadora descubre las reglas sola.

Analogía del médico: un médico no memoriza "si temperatura > 38°C y tos seca → gripe". Después de ver miles de pacientes (datos) con sus diagnósticos (respuestas), su cerebro aprende patrones. Cuando llega un nuevo paciente, aplica esos patrones para diagnosticar. Machine Learning hace exactamente eso, pero con datos y matemáticas.

Los 3 tipos de Machine Learning

Tipo Qué tiene Qué hace Ejemplo
Supervisado Datos + respuestas correctas Aprende a predecir la respuesta Predecir si un email es spam
No supervisado Solo datos (sin respuestas) Descubre estructura oculta Agrupar clientes similares
Por refuerzo Entorno + recompensas Aprende por prueba y error Un robot que aprende a caminar
El 90% del ML en empresas es supervisado. ¿El cliente va a abandonar? (clasificación). ¿Cuánto va a facturar este trimestre? (regresión). ¿Este mail es spam? (clasificación). ¿Cuánto vale esta propiedad? (regresión). Como Data Analyst, el ML supervisado es lo que más vas a encontrar.

Clasificación vs Regresión

Dentro del aprendizaje supervisado hay dos grandes familias:

Tipo Variable objetivo Predice Ejemplo Métricas
Clasificación Categoría (discreta) ¿A qué grupo pertenece? Spam / No spam Accuracy, Precision, Recall
Regresión Número (continuo) ¿Cuánto va a ser? Precio de una casa MAE, MSE, R²

El flujo de trabajo de ML

Todo proyecto de Machine Learning sigue estos 6 pasos:

  1. Definir el problema: ¿qué queremos predecir? ¿Es clasificación o regresión?
  2. Preparar los datos: limpieza, selección de features, encoding de variables categóricas.
  3. Dividir: separar en train (para aprender) y test (para evaluar).
  4. Entrenar: alimentar el modelo con los datos de entrenamiento.
  5. Evaluar: medir el rendimiento con datos que el modelo nunca vio (test).
  6. Iterar: ajustar parámetros, probar otros modelos, mejorar los datos.
El error más grave: evaluar con datos de entrenamiento. Si el modelo "estudio" con 100 pacientes y lo evaluás con los mismos 100, va a sacar 100% (los memorizó). Necesitás evaluarlo con pacientes nuevos — por eso se separa en train/test. Esto se llama data leakage y es la fuente #1 de modelos que parecen perfectos pero fallan en producción.

Vocabulario esencial

Término Significado Analogía
Features (X) Variables predictoras (input) Los síntomas del paciente
Target (y) Variable a predecir (output) El diagnóstico
Train set Datos para aprender (70-80%) Los pacientes que ya diagnosticaste
Test set Datos para evaluar (20-30%) Pacientes nuevos
Overfitting Memoriza en vez de generalizar Un estudiante que memoriza respuestas pero no entiende
Underfitting Modelo demasiado simple Un estudiante que no estudió lo suficiente
Hiperparámetros Configuraciones del modelo La dificultad del examen
En el trabajo real: como Data Analyst, tu rol en un proyecto de ML es: (1) entender el problema de negocio, (2) preparar y limpiar los datos (el 80% del trabajo), (3) interpretar los resultados y comunicarlos. No necesitás inventar algoritmos — necesitás saber qué significan las métricas y si el modelo sirve para el negocio.
02

Ejemplos explicados paso a paso

Ejemplo 1: El dataset y el problema

Antes de cualquier modelo, necesitás entender los datos. Creamos un dataset de clientes bancarios para predecir quién va a cancelar.

ejemplo_01_dataset.pyPython

        
Hacé clic en ▶ Ejecutar

Ejemplo 2: Train/Test Split — Separar datos

El paso más importante antes de entrenar: dividir los datos. Nunca evalúes un modelo con los datos que usó para aprender.

ejemplo_02_split.pyPython

        
Hacé clic en ▶ Ejecutar
Tip profesional — stratify: si tu variable target está desbalanceada (ej: 5% cancelan), usá stratify=y en train_test_split para que ambos conjuntos tengan la misma proporción. Sin esto, podrías terminar con un test set sin ningún caso positivo.

Ejemplo 3: Primer modelo — Árbol de Decisión

Entrenar un modelo de clasificación y hacer predicciones. El árbol de decisión es el modelo más intuitivo: genera reglas tipo "si antigüedad < 3 y productos < 2 → cancela".

ejemplo_03_arbol.pyPython

            
Hacé clic en ▶ Ejecutar

Ejemplo 4: Métricas — ¿Es bueno mi modelo?

Accuracy no siempre basta. Si el 95% de los clientes no cancelan, un modelo que siempre dice "no cancela" tiene 95% de accuracy pero es inútil. Necesitás precision, recall y la matriz de confusión.

ejemplo_04_metricas.pyPython

            
Hacé clic en ▶ Ejecutar
Precision vs Recall:
Precision: "De todos los que el modelo dijo que cancelan, ¿cuántos realmente cancelan?" → Importa cuando los falsos positivos son costosos (ej: enviar un descuento a alguien que no iba a cancelar).
Recall: "De todos los que realmente cancelan, ¿cuántos capturó el modelo?" → Importa cuando los falsos negativos son costosos (ej: no detectar un fraude).

Ejemplo 5: Comparar modelos

Nunca te quedes con un solo modelo. Probá varios y compará las métricas. scikit-learn hace que cambiar de modelo sea cambiar una línea de código.

ejemplo_05_comparar.pyPython

            
Hacé clic en ▶ Ejecutar
03

Referencia rápida

Paso Código scikit-learn Qué hace
Separar datos train_test_split(X, y) 80/20 (o 70/30)
Crear modelo DecisionTreeClassifier() Instanciar
Entrenar modelo.fit(X_train, y_train) Aprender patrones
Predecir modelo.predict(X_test) Aplicar lo aprendido
Accuracy accuracy_score(y, pred) % correcto total
Precision precision_score(y, pred) % de positivos predichos que son reales
Recall recall_score(y, pred) % de positivos reales capturados
Confusión confusion_matrix(y, pred) Tabla TN/FP/FN/TP
04

Ejercicios

Nivel 1 · Básico

Ejercicio 1: Separar Features y Target

Separá X (Edad, Ingreso) e y (Compra). Imprimí el shape de X. Debe incluir (6, 2).

ejercicio_01.pyDebe incluir "(6, 2)"

              
Hacé clic en ▶ Ejecutar
Nivel 1 · Básico

Ejercicio 2: Train/Test split

Dividí el dataset en 80% train y 20% test. Imprimí cuántas filas tiene el train. Debe incluir 160.

ejercicio_02.pyDebe incluir "160"

              
Hacé clic en ▶ Ejecutar
Nivel 1 · Básico

Ejercicio 3: Entrenar y predecir

Entrenáun DecisionTreeClassifier y hacé predicciones. Imprimí la accuracy. Debe incluir %.

ejercicio_03.pyDebe incluir "%"

              
Hacé clic en ▶ Ejecutar
Nivel 2 · Intermedio

Ejercicio 4: Matriz de confusión

Entrenáun modelo y mostrásu matriz de confusión. Imprimí cuántos Falsos Negativos hay. Debe incluir FN.

ejercicio_04.pyDebe incluir "FN"

              
Hacé clic en ▶ Ejecutar
Nivel 2 · Intermedio

Ejercicio 5: Precision y Recall

Calculá precision y recall del modelo. Imprimí ambas. Debe incluir Precision.

ejercicio_05.pyDebe incluir "Precision"

              
Hacé clic en ▶ Ejecutar
Nivel 2 · Intermedio

Ejercicio 6: Probar otro modelo (Regresión Logística)

Cambiá el modelo a LogisticRegression y medí su accuracy. Debe incluir %.

ejercicio_06.pyDebe incluir "%"

              
Hacé clic en ▶ Ejecutar
Nivel 3 · Avanzado

Ejercicio 7: Comparar 2 modelos

Compará Árbol de Decisión vs Regresión Logística. Imprimí cuál ganó. Debe incluir Ganador.

ejercicio_07.pyDebe incluir "Ganador"

              
Hacé clic en ▶ Ejecutar
Nivel 3 · Avanzado

Ejercicio 8: Overfitting — profundidad del árbol

Entrenáárboles con max_depth de 1 a 10. Imprimí accuracy de train y test para cada uno. El test accuracy puede bajar con árboles profundos (overfitting). Debe incluir depth.

ejercicio_08.pyDebe incluir "depth"

              
Hacé clic en ▶ Ejecutar
Nivel 3 · Avanzado

Ejercicio 9: Feature importance

Después de entrenar un árbol, imprimí qué features son más importantes con modelo.feature_importances_. Debe incluir Importancia.

ejercicio_09.pyDebe incluir "Importancia"

              
Hacé clic en ▶ Ejecutar
Nivel 4 · Desafío

Ejercicio 10: Pipeline completo de ML

Flujo completo: crear datos → split → entrenar 2 modelos → evaluar con accuracy, precision, recall → imprimir el mejor. Debe incluir Mejor.

ejercicio_10_desafio.pyDebe incluir "Mejor"

              
Hacé clic en ▶ Ejecutar
05

Resumen y conexión

En la siguiente lección (15 · Regresión y clasificación) vas a profundizar en los algoritmos más usados: regresión lineal, logística, árboles y KNN, con implementaciones completas y visualizaciones de sus decisiones.

Recursos: scikit-learn Getting Started · Tutorial básico