
📌 Aprender Machine Learning – Predicting Customer Churn
El objetivo: 🔍 identificar qué clientes tienen más probabilidad de cancelar un servicio. Utilizamos algoritmos de clasificación como:
- 🧠 Regresión logística – ideal para problemas binarios.
- 🌲 Random Forests – suele dar más precisión, pero es “más pesado”.
💡 Un reto frecuente: datos desbalanceados.
Cuando los clientes que se van son muchos menos que los que quedan, el modelo puede “hacerse el tonto”. Técnicas para afrontarlo:
- 🔁 Oversampling (replicar casos minoritarios)
- ➖ Undersampling (reducir casos mayoritarios)
Y, por supuesto, siempre pasamos por el taller:
- 🧼 limpiar valores faltantes.
- 🔤 codificar variables categóricas.
- 📊 dividir en entrenamiento / prueba.
Luego entrenas y evalúas con:
- 📉 matriz de confusión
- 🏅 métricas como F1‑score
Puedes practicar con un dataset público, por ejemplo el de Telco Customer Churn de Kaggle.
💻 Ejemplo de código#
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report
# carga y preprocesado básico
df = pd.read_csv('Telco-Customer-Churn.csv')
df = pd.get_dummies(df.drop(columns=['customerID','Churn']), drop_first=True)
y = (df['Churn_Yes'] == 1).astype(int)
X = df.drop(columns=['Churn_Yes'])
X_train, X_test, y_train, y_test = train_test_split(
X, y, stratify=y, test_size=0.3, random_state=42
)
model = LogisticRegression(max_iter=1000)
model.fit(X_train, y_train)
print(classification_report(y_test, model.predict(X_test)))📘 Explicación en pocas palabras#
Imagina que eres un detective 📂: tienes una lista de clientes con sus datos (edad, plan, facturación, etc.) y una etiqueta que dice si abandonaron o no.
El modelo aprende patrones en esos datos para adivinar, cuando entra un cliente nuevo, si va a marcharse.
Los datos desbalanceados son como si solo tuvieras dos sospechosos y un centenar de inocentes; el truco es “equilibrar la balanza” para que el detector no se duerma. Finalmente, miras cómo se equivoca el modelo (matriz de confusión) y cuánto de esas equivocaciones te importan (F1‑score).
Más información en el link 👇

