人工智能之核心基础 机器学习 第十一章 无监督学习总结

人工智能之核心基础 机器学习

第十一章 无监督学习总结


文章目录


核心思想:在没有标签的情况下,从数据中发现结构、模式与异常。


一、无监督学习三大任务全景图

无监督学习
聚类 Clustering
降维 Dimensionality Reduction
异常检测 Anomaly Detection
K-Means
层次聚类
DBSCAN
PCA
t-SNE
LDA-监督
Isolation Forest
One-Class SVM
基于聚类/统计


二、聚类算法深度对比(第9章回顾)

算法 原理 是否需指定K 簇形状 噪声处理 时间复杂度 适用场景
K-Means 最小化簇内平方和 ✅ 是 球形、凸形 ❌ 不能 O ( n K d I ) O(nKdI) O(nKdI) 用户分群、快速原型、特征工程
层次聚类 构建树状合并/分裂 ❌ 否(可后选) 球形 ❌ 不能 O ( n 2 log ⁡ n ) O(n^2 \log n) O(n2logn) 或 O ( n 3 ) O(n^3) O(n3) 小数据( 📌 关键参数
  • K-Means:n_clusters

  • DBSCAN:eps(邻域半径)、min_samples(密度阈值)

  • 层次聚类:linkage(ward/single/complete)
    💡 选择口诀

  • "要快要简单" → K-Means

  • "簇是月牙或环" → DBSCAN

  • "数据少想看树" → 层次聚类


三、降维算法深度对比(第10章回顾)

算法 类型 是否线性 是否需标签 主要用途 可逆? 新数据可用?
PCA 无监督 ✅ 线性 通用降维、去噪、加速 ✅(.transform()
t-SNE 无监督 ❌ 非线性 高维可视化 ❌(每次重训)
LDA 监督 ✅ 线性 分类前降维

🔍 核心区别

  • PCA :保留全局方差最大的方向 → 适合后续建模

  • t-SNE :保留局部邻域相似性 → 适合看聚类效果

  • LDA :利用标签,最大化类间可分性 → 提升分类性能
    ⚠️ 常见误区

  • ❌ 用 t-SNE 降维后训练分类器 → 不可行!

  • ✅ 正确流程:原始数据 → PCA(降维)→ 分类器;t-SNE 仅用于最终画图


四、异常检测方法补充(完整体系)

虽然第8章简要介绍,但作为无监督重要分支,此处系统归纳:

方法 原理 是否需参数 优点 缺点
统计方法(如3σ) 假设正态分布 简单直观 仅适用于单变量、正态数据
Isolation Forest 随机分割早分离者为异常 contamination 快、高维有效、无需分布假设 对局部异常敏感度低
One-Class SVM 学习"正常"数据边界 nu, gamma 灵活(核函数) 大数据慢、调参难
基于聚类 离所有簇中心远的点为异常 ✅ 聚类参数 直观 依赖聚类质量
AutoEncoder(深度) 重构误差大者为异常 ✅ 网络结构 捕捉复杂非线性 需GPU、训练复杂

💡 工业首选Isolation Forest(快 + 稳 + 易用)


五、无监督学习通用流程(实战模板)

python 复制代码
# 1. 数据探索
import pandas as pd
df.info()
df.describe()

# 2. 数据预处理(关键!)
from sklearn.preprocessing import StandardScaler
X_scaled = StandardScaler().fit_transform(X)  # 聚类/PCA必须!

# 3. 选择任务 & 算法
#   - 想分组? → 聚类
#   - 想压缩? → 降维
#   - 想找异常? → 异常检测

# 4. 模型训练
model.fit(X_scaled)

# 5. 评估(无监督!)
#   - 聚类:轮廓系数、CH指数
#   - 降维:保留方差比例、可视化效果
#   - 异常检测:人工抽查、业务验证

# 6. 结果解释 & 应用
#   - 聚类:分析各群特征 → 用户画像
#   - 降维:作为新特征输入监督模型
#   - 异常:告警、拦截、审核

六、各算法评估指标速查表

任务 指标 越好方向 说明
聚类 轮廓系数(Silhouette) ↑ 越大越好(max=1) 衡量簇内紧密 & 簇间分离
Calinski-Harabasz (CH) ↑ 越大越好 簇间离散 / 簇内离散
Davies-Bouldin (DB) ↓ 越小越好 平均簇内距 / 簇间距
降维 解释方差比例 ↑ 越高越好 PCA保留多少信息
重建误差(MSE) ↓ 越小越好 降维后能否还原原数据
异常检测 Precision@K 前K个预测中有多少真异常
AUC-ROC(若有少量标签) 排序能力

📌 注意 :无监督学习无法用准确率、F1等监督指标


七、典型应用场景与算法匹配

业务问题 推荐算法 理由
电商用户分群 K-Means + PCA 快速、可解释、适合RFM特征
社交网络社区发现 DBSCAN / 层次聚类 社区形状不规则
高维数据可视化 t-SNE / UMAP 展示聚类结构清晰
人脸识别特征压缩 PCA(特征脸) 保留主要变化,去噪
信用卡欺诈检测 Isolation Forest 实时、高维、无需标签
文本主题探索 LDA(主题模型)* *注:LDA主题模型 ≠ 线性判别分析
基因表达数据分析 层次聚类 + PCA 小样本、需看样本关系树

💡 进阶提示

  • 聚类结果可作为新特征输入监督模型(如:用户所属群ID)
  • 降维后的低维表示可提升后续模型速度与泛化能力

八、无监督学习 vs 监督学习 关键区别

维度 无监督学习 监督学习
数据要求 仅特征 X 特征 X + 标签 y
目标 发现结构、压缩、异常 预测标签
评估难度 高(无客观标准) 低(有准确率等指标)
可解释性 中(需业务解读) 高(如逻辑回归)
典型产出 用户群、低维嵌入、异常列表 预测模型

协同使用

无监督常作为预处理步骤,为监督学习提供更好特征!


九、总结:无监督学习的核心价值

"在没有答案的世界里,自己提出好问题。"

  1. 探索未知:面对全新数据集,先用无监督"摸底"
  2. 降本增效:通过降维减少计算资源消耗
  3. 自动化洞察:无需人工标注,自动生成用户分群、异常告警
  4. 增强监督学习:提供高质量特征(如聚类ID、PCA成分)

🚀 学习路径建议:

  1. 入门:掌握 K-Means + PCA(Scikit-learn 两行代码搞定)
  2. 进阶:理解 DBSCAN 原理、t-SNE 可视化技巧
  3. 实战:在真实业务中应用(如用户分群报告)
  4. 拓展:尝试现代方法(UMAP 降维、HDBSCAN 聚类)

📚 工具推荐

  • 聚类评估:sklearn.metrics.silhouette_score
  • 可视化:matplotlib + seaborn
  • 高级降维:umap-learn(比 t-SNE 更快更稳)

资料关注

公众号:咚咚王

gitee:https://gitee.com/wy18585051844/ai_learning

《Python编程:从入门到实践》

《利用Python进行数据分析》

《算法导论中文第三版》

《概率论与数理统计(第四版) (盛骤) 》

《程序员的数学》

《线性代数应该这样学第3版》

《微积分和数学分析引论》

《(西瓜书)周志华-机器学习》

《TensorFlow机器学习实战指南》

《Sklearn与TensorFlow机器学习实用指南》

《模式识别(第四版)》

《深度学习 deep learning》伊恩·古德费洛著 花书

《Python深度学习第二版(中文版)【纯文本】 (登封大数据 (Francois Choliet)) (Z-Library)》

《深入浅出神经网络与深度学习+(迈克尔·尼尔森(Michael+Nielsen)》

《自然语言处理综论 第2版》

《Natural-Language-Processing-with-PyTorch》

《计算机视觉-算法与应用(中文版)》

《Learning OpenCV 4》

《AIGC:智能创作时代》杜雨+&+张孜铭

《AIGC原理与实践:零基础学大语言模型、扩散模型和多模态模型》

《从零构建大语言模型(中文版)》

《实战AI大模型》

《AI 3.0》

相关推荐
WhereIsMyChair2 小时前
一文解读端到端生成式推广搜系统
人工智能·搜索
筑梦悠然2 小时前
AI的攻坚克难
人工智能
0和1的舞者2 小时前
Python 中四种核心数据结构的用途和嵌套逻辑
数据结构·python·学习·知识
白日做梦Q2 小时前
实时语义分割:BiSeNet与Fast-SCNN深度对比与实践启示
人工智能·深度学习·计算机视觉
云和数据.ChenGuang2 小时前
Uvicorn 是 **Python 生态中用于运行异步 Web 应用的 ASGI 服务器**
服务器·前端·人工智能·python·机器学习
在路上看风景2 小时前
01. 学习教程链接
学习
IT_陈寒2 小时前
SpringBoot 3.0实战:这5个新特性让你的开发效率提升50%
前端·人工智能·后端
mr_orange_klj2 小时前
k8s StorageClass和Provisoner的AI问答(豆包)
人工智能·容器·kubernetes
向量引擎2 小时前
复刻“疯狂的鸽子”?用Python调用Sora2与Gemini-3-Pro实现全自动热点视频流水线(附源码解析)
开发语言·人工智能·python·gpt·ai·ai编程·api调用