Ir al contenido
  1. Posts/

Aprender Machine Learning: Predecir Rotación de Clientes

··342 palabras·2 mins·

📌 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 👇

Más en la siguiente referencia externa.
También publicado en LinkedIn.
Juan Pedro Bretti Mandarano
Autor
Juan Pedro Bretti Mandarano