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 youre 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-ProjectsBeginner-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 对 k2~10 全部试了一遍轮廓系数在 k2 时最高0.433肘部图也在 2→3 之间明显拐弯簇人设平均近度平均订单数平均消费人数0流失/休眠客户134 天1.7£4982,6711冠军客户 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_weightbalanced处理不平衡核心结果如下模型精确率召回率F1ROC-AUC随机森林调参后0.96390.84210.89890.9789随机森林默认0.97560.84210.90400.9803KNN (K5)0.97560.84210.90400.9469SVM0.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肉眼几乎看不出差别。上面两张就是项目自带的样本原图每张 27 万 像素、数万像素级颜色数跑完 03_model_building.ipynb 就能看到 2 色、8 色、16 色、32 色的渐变效果。五、快速上手5 分钟跑起来1️⃣ 克隆仓库git clone https://gitcode.com/gh_mirrors/beg/Beginner-Data-Science-Projects2️⃣ 安装依赖两个项目依赖完全一致pandas、numpy、matplotlib、seaborn、scikit-learnpip install -r requirements.txt3️⃣ 按顺序打开三个 Notebook01_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 youre 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),仅供参考