GhostAcademy
GhostAcademy
COMM04 · Módulo 3 · Teoría · IA con Python
Módulo 3 · Parte B · Teoría
Introducción al desarrollo
de IA con Python

Python es el lenguaje de la IA. No necesitas ser programador para entender y adaptar un cuaderno de análisis: aquí aprenderás a leer el código de un proyecto de aprendizaje automático, a ejecutarlo en la nube sin instalar nada y a caracterizar dos arquitecturas de aprendizaje profundo.

⏱ 6 horas (teoría + prácticas)☁️ Google Colab (gratuito)📓 Cuaderno COMM04_IA_con_Python.ipynb
🔄 Hoy

Además de programar a mano, los asistentes de código (Gemini en Colab, Copilot, Claude) escriben y explican código a partir de peticiones en lenguaje natural. Siguen siendo imprescindibles los conceptos de este bloque para comprobar que lo que generan es correcto.

Tema 1
El ecosistema Python para IA
HerramientaPara qué
Jupyter / Google ColabCuadernos con celdas de texto y código que se ejecutan una a una. Colab funciona en el navegador, gratis, con GPU opcional.
pandasTablas de datos (DataFrame): leer CSV, filtrar, agrupar, unir.
NumPyCálculo numérico con matrices.
Matplotlib / seaborn / PlotlyGráficos.
scikit-learnAprendizaje automático clásico: preparación, modelos, evaluación.
TensorFlow / Keras, PyTorchAprendizaje profundo (redes neuronales).
SDK de modelos generativosLlamar a Gemini, OpenAI o Claude desde código (texto, imágenes, embeddings).

Leer código Python sin miedo

PYTHON
import pandas as pd                      # cargar una librería con un alias
df = pd.read_csv("clientes.csv")        # variable = resultado de una función
df.shape                                  # (filas, columnas)
df["gasto_total"].mean()                # una columna y su media
df[df["num_pedidos"] >= 4]               # filtrar filas
df.groupby("canal_captacion")["recompra_90d"].mean()   # agrupar
Tema 2
Planteamiento de un algoritmo de ML
  1. Pregunta de negocio: «¿Qué clientes volverán a comprar en los próximos 90 días?» → acción: reactivar a los de alto valor con baja probabilidad.
  2. Tipo de problema: clasificación binaria supervisada.
  3. Variable objetivo bien definida en el tiempo: compras en ene-mar 2026, usando solo información conocida a 31-12-2025 (evitar la fuga de datos: no usar variables del futuro).
  4. Variables candidatas: comportamiento (RFM), interacción (email, web), captación.
  5. Referencia (baseline): una regla simple (RFM) o «siempre la clase mayoritaria».
  6. Métrica acordada con negocio (AUC para ordenar; precisión o exhaustividad según el coste de la acción).
  7. Validación: separar entrenamiento y prueba (o validación cruzada) con semilla fija para que sea reproducible.
Tema 3
Ejecución del código para
obtener un modelo de IA
PYTHON · scikit-learn
from sklearn.model_selection import train_test_split
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import roc_auc_score

X = pd.get_dummies(df[variables + ["canal_captacion"]], drop_first=True)  # texto → columnas 0/1
y = df["recompra_90d"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42, stratify=y)

modelo = make_pipeline(StandardScaler(), LogisticRegression(max_iter=1000))  # escalar + modelo
modelo.fit(X_train, y_train)                         # ENTRENAR
prob = modelo.predict_proba(X_test)[:, 1]           # INFERENCIA: probabilidad de "sí"
roc_auc_score(y_test, prob)                          # EVALUAR
  • Codificación: los modelos solo entienden números; las categorías se convierten en columnas 0/1 (one-hot).
  • Escalado: poner las variables en la misma escala ayuda a muchos modelos.
  • Pipeline: encadena preparación y modelo para aplicarlos igual en entrenamiento y en producción.
  • Interpretación: coeficientes (regresión) o importancia de variables (árboles); técnicas como SHAP explican predicciones individuales.
Tema 4
Redes neuronales con Keras
PYTHON · Keras
modelo = keras.Sequential([
    keras.Input(shape=(13,)),                         # 13 variables de entrada
    keras.layers.Dense(16, activation="relu"),       # capa oculta
    keras.layers.Dense(1, activation="sigmoid"),     # salida: probabilidad
])
modelo.compile(optimizer="adam", loss="binary_crossentropy", metrics=["AUC"])
modelo.fit(X_train, y_train, epochs=30, batch_size=32, validation_split=0.1)
ConceptoSignificado
DenseCapa totalmente conectada.
ActivaciónReLU en capas ocultas; sigmoid (binaria) o softmax (varias clases) en la salida.
Función de pérdidaLo que se minimiza: binary/categorical crossentropy (clasificación), MSE (regresión, reconstrucción).
OptimizadorCómo se ajustan los pesos: Adam es el más habitual.
Época y lotePasadas completas por los datos / ejemplos procesados antes de cada ajuste.
ValidaciónParte de los datos reservada para vigilar el sobreajuste durante el entrenamiento.
💡 ¿Red neuronal o modelo clásico?Con datos tabulares de unos miles de filas, una regresión logística o un bosque suelen rendir igual o mejor que una red, y se explican mejor. Las redes brillan con imágenes, texto, audio y volúmenes grandes.
Tema 5
Caracterización de un autoencoder
Codificador8 variables → 4 → 2
Código (cuello de botella)Representación comprimida del cliente
Decodificador2 → 4 → 8 variables reconstruidas
  • Se entrena para que la salida sea igual a la entrada (aprendizaje autosupervisado: no necesita etiquetas). Pérdida: error cuadrático medio (MSE).
  • Como el código es pequeño, la red tiene que aprender los patrones típicos; lo que no encaja se reconstruye mal.
  • Usos en marketing: detección de anomalías (pedidos fraudulentos, errores de datos, clientes excepcionales), compresión de variables para segmentar, recomendadores.
  • Variantes: autoencoders de eliminación de ruido y variacionales (VAE, generativos).
Tema 6
Caracterización de una
red neuronal convolucional
CapaQué hace
Conv2DDesliza filtros (por ejemplo, 32 filtros de 3×3) sobre la imagen; cada filtro aprende a detectar un patrón (bordes, texturas). Las primeras capas ven detalles; las profundas, formas y objetos.
MaxPooling2DReduce el tamaño quedándose con el valor máximo de cada zona: menos cálculo y más tolerancia a desplazamientos.
FlattenConvierte los mapas de características en un vector.
Dense + softmaxClasifica: una probabilidad por clase (que suman 1).

Ventaja frente a una red densa: comparte los pesos de cada filtro en toda la imagen, así que necesita muchos menos parámetros y reconoce un patrón esté donde esté. Usos en marketing: búsqueda visual de productos, etiquetado automático de catálogo, detección de logotipos en redes, análisis de creatividades. En la práctica se parte de redes preentrenadas (aprendizaje por transferencia), como hace Teachable Machine.

Tema 7
Proceso de diseño y
programación de una solución de IA
1 · ProblemaKPI y acción
2 · DatosOrigen, calidad, legalidad
3 · PrototipoCuaderno y baseline
4 · ValidaciónMétricas y test con negocio
5 · DespliegueLotes, API o almacén
6 · OperaciónMonitorizar y reentrenar

Buenas prácticas (MLOps básico)

  • Reproducibilidad: semillas fijas, versiones de librerías, datos versionados.
  • Código ordenado: funciones y pipelines, no celdas sueltas; control de versiones (Git).
  • Despliegue: guardar el modelo (joblib, formato Keras), exponerlo como API o programar su ejecución.
  • Monitorización: rendimiento real frente al esperado, deriva de los datos, sesgos por grupo.
  • Gobernanza: documentación del modelo (finalidad, datos, métricas, limitaciones), supervisión humana, registro de decisiones; requisitos del Reglamento de IA si el uso es de alto riesgo.
  • Privacidad: datos seudonimizados en los cuadernos, sin identificadores directos innecesarios; cuidado con subir datos personales a servicios en la nube sin contrato y base legal.

IA generativa desde código

PYTHON · SDK de Gemini (ejemplo)
from google import genai
client = genai.Client(api_key=CLAVE)      # la clave nunca en el código compartido
r = client.models.generate_content(
    model="gemini-…",                     # modelo vigente
    contents="Escribe un asunto de email para reactivar a un cliente de cosmética natural…")
print(r.text)

Así se generan a escala textos personalizados por segmento, se clasifican reseñas o se crean embeddings para buscar productos parecidos. Siempre con revisión de calidad, control de costes y sin enviar datos personales innecesarios.

Repaso
🧠 Resumen
EcosistemaColab, pandas, NumPy, Matplotlib, scikit-learn, TensorFlow/Keras, PyTorch, SDK generativos.
PlantearPregunta, tipo de problema, objetivo sin fuga de datos, variables, baseline, métrica, validación reproducible.
CódigoOne-hot, escalado, pipeline, fit, predict_proba, métricas, interpretación.
KerasSequential, Dense, activaciones, pérdida, Adam, épocas, lotes, validación.
Autoencoder y CNNComprimir y reconstruir para anomalías; filtros convolucionales y pooling para imágenes; transferencia.
SoluciónProblema → datos → prototipo → validación → despliegue → operación. MLOps, gobernanza, privacidad.
Referencia
📖 Glosario
TérminoSignificado
BaselineSolución de referencia simple con la que comparar el modelo.
DataFrameTabla de datos de pandas.
Deriva (drift)Cambio en los datos o en su relación con el objetivo que degrada el modelo.
Filtro convolucionalPequeña matriz de pesos que detecta un patrón al recorrer la imagen.
Fuga de datosUsar en el entrenamiento información que no estaría disponible al predecir.
MLOpsPrácticas para desplegar y mantener modelos en producción.
One-hotCodificación de una categoría en columnas 0/1.
SoftmaxFunción que convierte las salidas en probabilidades que suman 1.
TransferenciaReutilizar una red preentrenada para una tarea nueva.
Autoevaluación
✅ Comprueba lo que has aprendido

¿Qué librería se usa para leer y manipular tablas de datos en Python?

  1. Keras
  2. pandas
  3. Matplotlib
  4. Colab

Con su objeto DataFrame.

Para predecir la recompra de 2026 usas la variable «pedidos en enero de 2026». ¿Qué error cometes?

  1. Sobreajuste
  2. Escalado
  3. One-hot
  4. Fuga de datos

Esa información no existe en el momento de predecir.

¿Qué hace pd.get_dummies con la columna «canal_captacion»?

  1. Crea columnas 0/1 para cada canal (one-hot)
  2. Borra la columna
  3. La ordena
  4. La convierte en fechas

Los modelos necesitan números.

¿Qué método de scikit-learn entrena el modelo?

  1. predict
  2. score
  3. fit
  4. read_csv

Después, predict o predict_proba para la inferencia.

¿Para qué sirve random_state=42?

  1. Para mejorar la precisión
  2. Para que el resultado sea reproducible
  3. Para usar 42 variables
  4. Para entrenar 42 épocas

Fija la semilla aleatoria.

¿Qué activación se usa en la capa de salida para clasificar en 10 clases?

  1. ReLU
  2. Lineal
  3. Sigmoid
  4. Softmax

Da 10 probabilidades que suman 1.

Un autoencoder se entrena para…

  1. Reproducir a la salida su propia entrada pasando por un código comprimido
  2. Predecir una etiqueta
  3. Generar texto
  4. Pujar en subastas

Por eso no necesita etiquetas.

En un autoencoder entrenado con clientes, ¿qué indica un error de reconstrucción muy alto?

  1. Que es el cliente más típico
  2. Que el modelo es perfecto
  3. Que el cliente es atípico
  4. Que falta la etiqueta

Posible error, fraude o cliente excepcional.

¿Qué hace una capa Conv2D?

  1. Convierte la imagen en texto
  2. Aplica filtros que detectan patrones locales en la imagen
  3. Reduce la imagen a la mitad
  4. Da probabilidades por clase

El pooling reduce; softmax da probabilidades.

¿Por qué una CNN necesita menos parámetros que una red densa para imágenes?

  1. Porque usa menos imágenes
  2. Porque no tiene capas
  3. Porque no se entrena
  4. Porque cada filtro comparte sus pesos en toda la imagen

Y reconoce el patrón esté donde esté.

Con 1.500 clientes en una tabla, ¿qué suele ser más recomendable para empezar?

  1. Un modelo clásico (regresión logística o bosque) y compararlo con una referencia
  2. Una CNN
  3. Un modelo de lenguaje propio
  4. Un autoencoder variacional

Más simple, más explicable y con buen rendimiento.

Tras desplegar el modelo, su acierto cae porque han cambiado los hábitos de compra. ¿Qué ocurre y qué haces?

  1. Sobreajuste; quitar datos
  2. Nada, es normal
  3. Deriva; monitorizar y reentrenar con datos recientes
  4. Fuga de datos; borrar el modelo

Por eso la operación incluye monitorización.

Tu progreso

—