拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

K-Means聚类与异常检测:Beginner-Data-Science-Projects客户分群与信用卡欺诈识别实战指南

K-Means聚类与异常检测:Beginner-Data-Science-Projects客户分群与信用卡欺诈识别实战指南

K-Means聚类与异常检测:Beginner-Data-Science-Projects客户分群与信用卡欺诈识别实战指南

【免费下载链接】Beginner-Data-Science-ProjectsThis repository is a curated collection of hands-on data science projects tailored for beginners. Whether you're just starting your journey in data science or looking to strengthen your skills, these projects provide a practical and interactive way to apply your knowledge.项目地址: https://gitcode.com/gh_mirrors/beg/Beginner-Data-Science-Projects

Beginner-Data-Science-Projects是一个专为新手打造的开源数据科学项目集合,其中最贴合「K-Means聚类」与「异常检测」两大主题的是客户分群项目和信用卡欺诈检测项目。本文将带你用真实数据跑通这两条经典路线:用K-Means 聚类给零售客户自动分群,用机器学习识别 0.97% 的欺诈交易,零基础也能看懂每一步。🚀

一、项目速览:聚类与异常检测各解决什么问题

主题通俗理解对应项目
🧩 K-Means 聚类给数据"自动分组",不需要提前打标签客户分群、商场客户分群、图像色彩压缩
🚨 异常检测 / 欺诈识别在海量正常数据中揪出极少数"异常值"信用卡欺诈检测、交易异常检测

两者都是数据科学入门的"必考题":前者练无监督学习,后者练类别极度不平衡下的分类。

二、实战一:RFM + K-Means 客户分群

1. 数据从哪来?

项目基于 UCI 经典数据集:一家英国线上礼品零售商的541,909 条原始交易(2010.12–2011.12),数据文件见 data/online_retail.csv。

2. 三步清洗:把交易变成"客户档案"

在 02_data_cleaning.ipynb 中:

  • 删除缺失 CustomerID 的行(135,080 行)
  • 剔除以C开头的取消订单(8,905 行)
  • 剔除数量/单价非正的脏数据

清洗后用RFM 框架把 39.8 万条交易聚合成4,338 名客户,每人一行:

特征含义
Recency 近度最后一次购买距"快照日"的天数
Frequency 频度客户下过多少张发票
Monetary 金额累计消费总额

💡 关键技巧:RFM 原始分布严重右偏,项目先用log1p对数变换再标准化,否则少数巨额客户会把聚类"带偏"。

3. K-Means 结果:两类客户清清楚楚

03_model_building.ipynb 对 k=2~10 全部试了一遍,轮廓系数在 k=2 时最高(0.433),肘部图也在 2→3 之间明显拐弯:

簇人设平均近度平均订单数平均消费人数
0流失/休眠客户134 天1.7£4982,671
1冠军客户 Champions26 天8.4£4,5481,667

结论非常落地:占 38% 的冠军客户贡献了绝大部分收入,而"最近一次购买距今多少天"是最强的流失预警信号。

📁 配套工具函数都沉淀在 utils.py 中(clean_transactions、build_rfm、find_optimal_k),可直接复用。

三、实战二:信用卡欺诈检测(异常识别)

1. 为什么"准确率"在这里是陷阱?

数据集 data/creditcard.csv 包含 50,492 笔交易,其中欺诈仅占 0.97%(保留了全部 492 笔欺诈样本)。这时一个"全部判为正常"的模型也能有约 99% 准确率,却一笔欺诈都抓不到——所以本项目重点考核精确率、召回率、F1 和 ROC-AUC。

2. 七个模型横评:随机森林胜出

03_model_building.ipynb 训练了 7 个模型(支持的地方均用class_weight='balanced'处理不平衡),核心结果如下:

模型精确率召回率F1ROC-AUC
随机森林(调参后)0.96390.84210.89890.9789
随机森林(默认)0.97560.84210.90400.9803
KNN (K=5)0.97560.84210.90400.9469
SVM0.45550.91580.60840.9874
逻辑回归0.26590.92630.41310.9776

💡 规律很清晰:SVM、逻辑回归等模型"宁可错杀"召回高但误报多;树模型(随机森林)精确率高,几乎不误伤正常交易,综合表现最好。特征重要性则由 PCA 分量 V14、V4、V10 主导,Amount 和 Time 贡献很小。

📁 评分函数(精确率/召回率/混淆矩阵/ROC 曲线)封装在 utils.py 的evaluate_model与plot_roc_curves中。

四、彩蛋:K-Means 还能"压图"

想直观感受聚类的威力?图像色彩压缩项目用 K-Means 在 RGB 空间中给像素分簇,把数万种颜色压成 16 色:压缩 6 倍,PSNR 仍达 27~29 dB,肉眼几乎看不出差别。

![K-Means聚类图像色彩压缩样本花朵原图](https://raw.gitcode.com/gh_mirrors/beg/Beginner-Data-Science-Projects/raw/3b80273620b6f12339b66ecf4789eff36aa5bec9/Miscellaneous Applied/Image Captioning/data/flower.png?utm_source=gitcode_repo_files)

![K-Means聚类图像色彩压缩样本风景原图](https://raw.gitcode.com/gh_mirrors/beg/Beginner-Data-Science-Projects/raw/3b80273620b6f12339b66ecf4789eff36aa5bec9/Miscellaneous Applied/Image Captioning/data/china.png?utm_source=gitcode_repo_files)

上面两张就是项目自带的样本原图(每张 27 万+ 像素、数万像素级颜色数),跑完 03_model_building.ipynb 就能看到 2 色、8 色、16 色、32 色的渐变效果。

五、快速上手:5 分钟跑起来

1️⃣ 克隆仓库:

git clone https://gitcode.com/gh_mirrors/beg/Beginner-Data-Science-Projects

2️⃣ 安装依赖(两个项目依赖完全一致:pandas、numpy、matplotlib、seaborn、scikit-learn):

pip install -r requirements.txt

3️⃣ 按顺序打开三个 Notebook:01_eda→02_data_cleaning→03_model_building,每个文件夹都自带这份固定流程,README.md 里写明了预期结果。

六、延伸学习路径

想继续练推荐项目
换个聚类场景商场客户分群(含层次聚类)
无监督异常检测Isolation Forest 交易异常检测(IsoForest ROC-AUC 0.945)
有监督入侵检测KDD Cup 网络入侵检测

一句话总结:客户分群教你用 K-Means"无中生有"地找出群体结构,欺诈检测教你在极端不平衡下正确评估模型——把这两个项目跑通,无监督学习和异常检测的入门闭环就完成了。✅

【免费下载链接】Beginner-Data-Science-ProjectsThis repository is a curated collection of hands-on data science projects tailored for beginners. Whether you're just starting your journey in data science or looking to strengthen your skills, these projects provide a practical and interactive way to apply your knowledge.项目地址: https://gitcode.com/gh_mirrors/beg/Beginner-Data-Science-Projects

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

返回列表