← 返回 Day 111 正文

Day 111 · 练习与清单

Day 111 练习题 — 无监督学习:K-Means 聚类与 PCA 降维

练习 1:肘部法则实战

目标: 使用肘部法则为不同数据集选择最佳 K 值

要求: 1. 生成 3 个不同分布的数据集(3簇、5簇、不规则形状) 2. 对每个数据集使用肘部法则和轮廓系数法选择 K 3. 比较两种方法的结果,分析差异原因

提示: - 使用 sklearn.datasets.make_blobs 生成数据 - 注意肘部法则在某些分布下可能不明显 - 考虑使用轮廓系数作为辅助判断

评分标准: - [ ] 正确生成 3 个数据集 - [ ] 正确计算 WCSS 和轮廓系数 - [ ] 绘制清晰的肘部法则图和轮廓系数图 - [ ] 分析两种方法的差异


练习 2:PCA 降维效果分析

目标: 分析 PCA 降维对不同数据集的效果

要求: 1. 使用 Iris 数据集(4维)和 MNIST 子集(784维) 2. 分析不同保留方差比例(90%、95%、99%)下需要的主成分数量 3. 比较降维前后的分类准确率(使用 KNN 分类器) 4. 可视化前两个主成分的投影结果

提示: - 对高维数据,先使用 PCA 降维到合理维度再训练分类器 - 考虑使用 Pipeline 简化流程 - 注意标准化的重要性

评分标准: - [ ] 正确计算方差解释比例 - [ ] 正确绘制碎石图和累积方差图 - [ ] 正确比较降维前后的分类性能 - [ ] 分析降维对高维数据的效果


练习 3:客户分群增强版

目标: 在基础客户分群上增加聚类质量评估

要求: 1. 扩展数据特征(加入注册时长、最近购买天数等) 2. 使用多种评估指标(轮廓系数、Calinski-Harabasz、Davies-Bouldin) 3. 对比不同 K 值下的聚类质量 4. 分析各客户群的 RFM(Recency, Frequency, Monetary)特征

提示: - Calinski-Harabasz 值越大越好 - Davies-Bouldin 值越小越好 - RFM 分析是客户分群的经典方法

评分标准: - [ ] 正确扩展数据特征 - [ ] 正确计算多种评估指标 - [ ] 绘制评估指标对比图 - [ ] 完成 RFM 分析


练习 4:异常检测与聚类

目标: 使用聚类方法进行异常检测

要求: 1. 生成正常数据和少量异常数据 2. 使用 K-Means 聚类,将距离簇中心较远的点标记为异常 3. 评估异常检测的准确率和召回率 4. 与 Isolation Forest 方法对比

提示: - 设置距离阈值(如 95% 分位数) - 使用 sklearn.metrics 计算评估指标 - 考虑异常点比例对结果的影响

评分标准: - [ ] 正确生成正常和异常数据 - [ ] 正确实现基于聚类的异常检测 - [ ] 与 Isolation Forest 对比 - [ ] 分析两种方法的优缺点


练习 5:降维与聚类的结合

目标: 探索先降维再聚类 vs 先聚类再降维的效果

要求: 1. 使用高维数据集(20+ 特征) 2. 方案A:先 PCA 降维到 2/3/5 维,再 K-Means 聚类 3. 方案B:先 K-Means 聚类,再 PCA 降维可视化 4. 对比两种方案的聚类质量和可视化效果 5. 分析降维信息损失对聚类的影响

提示: - 方案A 的降维会丢失部分信息 - 方案B 保留了完整信息但可视化可能重叠 - 考虑使用 t-SNE 作为 PCA 的替代方案

评分标准: - [ ] 正确实现两种方案 - [ ] 对比聚类质量指标 - [ ] 分析降维对聚类的影响 - [ ] 给出实践建议


提交要求

  1. 每个练习单独一个 Python 文件
  2. 代码需完整可运行
  3. 包含必要的注释和输出说明
  4. 保存结果图片到当前目录

参考资源