Skip to content

djwillichile/segmentacionClientes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Customer Segmentation for Telecommunications

Python scikit-learn License: MIT

Descripción

Pipeline de segmentación de clientes para una empresa de telecomunicaciones utilizando técnicas de aprendizaje no supervisado. El proyecto combina análisis RFM (Recency, Frequency, Monetary), múltiples algoritmos de clustering (K-Means, Hierarchical, DBSCAN), estimación simplificada de Customer Lifetime Value (CLV) y generación de estrategias de negocio diferenciadas por segmento.

Contexto de negocio: Comprender los distintos perfiles de clientes permite diseñar estrategias de retención, cross-selling y comunicación personalizadas, maximizando el valor de cada segmento y optimizando la asignación de recursos comerciales.

Resultados Principales

Se identificaron 4 segmentos diferenciados de clientes:

Segmento Clientes % Total CLV Promedio Tenure Prom. NPS Prom.
New/Low-Engagement 4,130 82.6% $532 25.5 meses 6.4
High-Value Active 711 14.2% $376 5.7 meses 6.5
At-Risk Dissatisfied 159 3.2% $330 1.4 meses 6.3

Métricas de Clustering

Método Silhouette Score Calinski-Harabasz
K-Means (K=4) 0.2940 2,374.5
Hierarchical (Ward) 0.3773 2,251.8

Estructura del Proyecto

customer-segmentation-ml/
├── data/
│   └── telecom_customers.csv          # Dataset (5,000 clientes, 20 variables)
├── notebooks/
│   └── 01_customer_segmentation.py    # Pipeline completo
├── src/
│   └── generate_data.py               # Generador de datos sintéticos
├── figures/
│   ├── 01_distributions.png           # Distribuciones de variables
│   ├── 02_correlation_matrix.png      # Matriz de correlación
│   ├── 03_contract_analysis.png       # Análisis por contrato
│   ├── 04_rfm_analysis.png            # Análisis RFM
│   ├── 05_optimal_k.png              # Determinación de K óptimo
│   ├── 06_cluster_visualization.png   # PCA y t-SNE
│   ├── 07_radar_profiles.png          # Perfiles radar
│   ├── 08_segment_boxplots.png        # Boxplots por segmento
│   ├── 09_dendrogram.png             # Dendrograma jerárquico
│   └── 10_clv_analysis.png           # Análisis CLV
├── reports/
│   ├── cluster_summary.csv            # Resumen de clusters
│   ├── cluster_profiles_detailed.csv  # Perfiles detallados
│   ├── clv_by_segment.csv            # CLV por segmento
│   ├── business_strategies.csv        # Estrategias de negocio
│   └── customers_segmented.csv        # Dataset enriquecido
├── requirements.txt
├── LICENSE
└── README.md

Visualizaciones

Determinación del K Óptimo

Optimal K

Clusters en Espacio PCA y t-SNE

Cluster Visualization

Perfiles Radar por Segmento

Radar Profiles

Análisis RFM

RFM Analysis

Análisis de Customer Lifetime Value

CLV Analysis

Metodología

  1. Generación de Datos: Dataset sintético de 5,000 clientes con 20 variables (demográficas, uso, facturación, satisfacción).
  2. EDA: Análisis de distribuciones, correlaciones y patrones por tipo de contrato.
  3. Análisis RFM: Scoring de Recency, Frequency y Monetary adaptado al contexto telecom.
  4. Feature Engineering: Selección de 11 variables clave para clustering.
  5. Determinación de K: Método del codo, Silhouette, Calinski-Harabasz y Davies-Bouldin.
  6. Clustering: K-Means con K=4, comparación con Hierarchical Clustering.
  7. Perfilamiento: Caracterización de cada segmento con estadísticas y visualizaciones.
  8. CLV Estimation: Cálculo simplificado de Customer Lifetime Value por segmento.
  9. Estrategias de Negocio: Recomendaciones accionables diferenciadas por segmento.

Estrategias de Negocio por Segmento

Segmento Estrategia Principal KPIs Objetivo
High-Value Active Programa VIP, cross-selling premium Retención > 95%, ARPU creciente
Loyal Satisfied Fidelización, referral programs Retención > 90%, referidos > 2/año
At-Risk Dissatisfied Intervención proactiva, descuentos Reducción churn > 20%, NPS +2
New/Low-Engagement Onboarding personalizado Engagement > 0.4 en 3 meses

Tecnologías Utilizadas

  • Python 3.11 — Lenguaje principal
  • pandas / NumPy — Manipulación de datos
  • scikit-learn — Clustering (K-Means, Hierarchical, DBSCAN), PCA, t-SNE
  • SciPy — Dendrogramas y linkage jerárquico
  • matplotlib / seaborn — Visualización de datos

Instalación y Uso

# Clonar repositorio
git clone https://github.com/<tu-usuario>/customer-segmentation-ml.git
cd customer-segmentation-ml

# Instalar dependencias
pip install -r requirements.txt

# Generar datos (opcional, ya incluido)
python src/generate_data.py

# Ejecutar pipeline completo
python notebooks/01_customer_segmentation.py

Licencia

Este proyecto está bajo la Licencia MIT. Ver LICENSE para más detalles.

About

Customer segmentation pipeline using K-Means, RFM analysis, CLV estimation and business strategy generation for telecom

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages