Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Probabilidad y estadística para IA, Unidad 12 — Mini-proyecto probabilístico aplicado, 12.1 — Proyecto guiado ·

Modelado probabilístico básico

Modelado probabilístico básico

Introducción

El modelado probabilístico es una herramienta esencial para manejar la incertidumbre y hacer predicciones informadas en inteligencia artificial. En este mini-proyecto, aplicaremos conceptos de probabilidad y estadística para analizar un conjunto de datos real con incertidumbre. Este ejercicio no solo fortalecerá tu comprensión teórica sino que también te proporcionará experiencia práctica al implementar modelos probabilísticos.

Explicación principal

Consideremos el siguiente dataset ficticio: una base de clientes de una cadena de tiendas minoristas, donde cada registro incluye información sobre la demografía del cliente y sus compras recientes. Nuestro objetivo es predecir la probabilidad de que un nuevo cliente realice una compra en las próximas 30 días.

Paso 1: Análisis exploratorio

Comenzamos con el análisis exploratorio del dataset:

import pandas as pd

# Cargar el dataset
df = pd.read_csv('cliente_data.csv')

# Mostrar las primeras filas del dataframe
print(df.head())

# Resumen estadístico de las columnas numéricas
print(df.describe())

# Distribución de la variable objetivo (por ejemplo, si compró o no)
print(df['compró'].value_counts(normalize=True))

Paso 2: Selección de características

Basándonos en el análisis exploratorio y nuestro problema de negocio, seleccionamos las características relevantes:

# Filtrar columnas pertinentes
df_filtered = df[['edad', 'género', 'ingresos', 'tiempo_en_sucursal', 'compró']]

Paso 3: Modelado probabilístico

Utilizaremos un modelo de regresión logística para predecir la probabilidad de compra. Primero, dividimos los datos en conjuntos de entrenamiento y prueba.

from sklearn.model_selection import train_test_split

X = df_filtered.drop('compró', axis=1)
y = df_filtered['compró']

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

Luego, entrenamos el modelo:

from sklearn.linear_model import LogisticRegression

model = LogisticRegression()
model.fit(X_train, y_train)

# Predicciones probables
predictions_proba = model.predict_proba(X_test)[:, 1]
print(predictions_proba[:5])

Paso 4: Evaluación del modelo

Calculamos métricas de evaluación como accuracy, precision, recall y F1-score:

from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score

# Predicciones binarias
y_pred = (predictions_proba > 0.5).astype(int)

print(f'Accuracy: {accuracy_score(y_test, y_pred):.3f}')
print(f'Precision: {precision_score(y_test, y_pred):.3f}')
print(f'Recall: {recall_score(y_test, y_pred):.3f}')
print(f'F1-score: {f1_score(y_test, y_pred):.3f}')

Errores típicos / trampas

  1. Sobreajuste a los datos de entrenamiento: Verifica si el modelo se ajusta demasiado a los datos de entrenamiento y realiza validación cruzada para asegurar generalización.
  2. Omitir variables importantes: Asegúrate de no descartar variables que podrían ser relevantes, incluso si inicialmente parecen innecesarias.
  3. Presuponer un modelo lineal: Evalúa la adecuación del modelo logístico y considera modelos no lineales o otros enfoques si los datos sugieren una relación más compleja.

Checklist accionable

  1. Carga el dataset y realiza un análisis exploratorio.
  2. Selecciona las características relevantes basándote en el negocio y la teoría de probabilidad.
  3. Divide los datos en conjuntos de entrenamiento y prueba.
  4. Entrena un modelo de regresión logística y obtén predicciones probables.
  5. Evalúa el rendimiento del modelo utilizando varias métricas.
  6. Ajusta parámetros o considera modelos alternativos si las métricas no satisfacen.

Cierre

En este mini-proyecto, hemos aplicado conceptos de probabilidad y estadística para predecir la probabilidad de compra en un conjunto de datos real. Este ejercicio nos ha proporcionado una valiosa experiencia práctica al modelar probabilísticamente un problema de negocio. Siguiendo las recomendaciones del checklist, podrás continuar mejorando tus habilidades en modelado probabilístico y aplicándolas a proyectos más complejos.

Siguientes pasos

  • Explorar modelos alternativos: Prueba otros tipos de clasificadores como árboles de decisión o redes neuronales.
  • Incorporar técnicas de regularización: Aplica dropout en modelos de deep learning para prevenir el sobreajuste.
  • Analizar la confianza del modelo: Implementa intervalos de confianza para interpretar mejor las predicciones probables.

Contacto

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