jesvaanraj/Data-Analytics-Customer-Segmentation-Engine
GitHub: jesvaanraj/Data-Analytics-Customer-Segmentation-Engine
基于 Python 和 Scikit-Learn 的客户细分引擎,通过聚类、PCA 降维和异常检测将万级客户数据自动分群并输出可视化报告。
Stars: 0 | Forks: 0
# 数据分析与客户细分引擎
无监督机器学习 pipeline,使用 **K-Means**、**Hierarchical (Agglomerative) Clustering** 和 **PCA** 对 10,000 多条合成客户记录进行聚类,并内置 **anomaly detection** 和趋势分析模块。
## 技术栈
Python · Scikit-Learn · Pandas · NumPy · Matplotlib
## 项目结构
```
customer_segmentation_engine/
│
├── generate_dataset.py # creates customers.csv (10,500 synthetic records)
├── data_loader.py # CSV ingestion
├── preprocessing.py # cleaning + StandardScaler scaling
├── feature_engineering.py # PCA dimensionality reduction
├── clustering.py # KMeans + Agglomerative clustering, auto-k via silhouette score
├── anomaly_detection.py # z-score based outlier detection
├── trend_analysis.py # rolling-window trend detection (signup volume over time)
├── engine.py # OOP pipeline orchestrator
├── main.py # entry point: runs pipeline, saves CSVs + chart
├── customers.csv # generated dataset (10,000+ rows)
└── requirements.txt
```
## 运行方式
```
pip install -r requirements.txt
# 1. (可选)重新生成 dataset
python generate_dataset.py
# 2. 运行完整的 pipeline
python main.py
```
## 功能说明
1. **加载**原始客户数据(年龄、收入、消费评分、购买频率、注册日期)。
2. **清理**重复项和缺失值。
3. 使用 `StandardScaler` **缩放**特征。
4. 使用 PCA **降维**(2 个主成分,保留约 85% 以上的方差)。
5. 使用 K-Means 和 Hierarchical Clustering 对客户进行**聚类**。聚类数 `k` 通过 k = 2–8 范围内的轮廓系数自动选择。
6. 在 PCA 降维后的空间中使用 z-score 阈值**检测 anomaly**。
7. 使用滚动均值分析每日注册量的**趋势**。
8. **输出:**
- `segmented_customers.csv` — 带有 cluster 标签和 anomaly 标记的完整数据集
- `signup_trends.csv` — 每日注册趋势数据
- `segmentation_report.png` — PCA cluster 散点图 + 注册趋势图表
## 可能的扩展
- 用于交互式 cluster 探索的 Streamlit/Plotly dashboard
- 使用 DBSCAN/HDBSCAN 进行基于密度的 anomaly detection
- 使用 SQL/MongoDB ingestion layer 替代 CSV
- LLM 为每个 cluster 生成的客户画像描述
标签:Apex, Python, Scikit-Learn, 代码示例, 客户分群, 异常检测, 数据分析, 无后门, 机器学习, 聚类算法, 逆向工具