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, 代码示例, 客户分群, 异常检测, 数据分析, 无后门, 机器学习, 聚类算法, 逆向工具