news 2026/2/17 11:26:13

人工智能之核心基础 机器学习 第八章 无监督学习概述

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
人工智能之核心基础 机器学习 第八章 无监督学习概述

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

第八章 无监督学习概述


文章目录

  • 人工智能之核心基础 机器学习
    • 8.1 什么是无监督学习?
      • 📌 定义:从“没有答案”的数据中找规律
    • 8.2 无监督学习的三大核心任务
      • 1️⃣ 聚类(Clustering)——“物以类聚”
      • 2️⃣ 降维(Dimensionality Reduction)——“压缩信息,保留精华”
      • 3️⃣ 异常检测(Anomaly Detection)——“揪出不合群的家伙”
    • 8.3 无监督学习的应用场景
    • 8.4 配套代码实现(Scikit-learn)
      • 🧪 示例数据准备
      • 1️⃣ 聚类实战:K-Means 用户分群
      • 2️⃣ 降维实战:PCA 数据压缩与可视化
      • 3️⃣ 异常检测实战:Isolation Forest 识别异常用户
    • 🎯 本章总结
      • 💡 无监督学习的核心价值:
  • 资料关注

8.1 什么是无监督学习?

📌 定义:从“没有答案”的数据中找规律

监督学习:老师告诉你每道题的正确答案(标签),你学着模仿。
无监督学习:给你一堆试卷,但没有标准答案,你要自己发现题目之间的规律、分组或结构。

核心特点

  • 输入只有特征X XX,没有标签y yy
  • 目标不是预测,而是理解数据本身
  • 像“数据侦探”一样挖掘隐藏模式

💡 举个生活例子:
你收到一箱混装水果(苹果、橙子、香蕉),没人告诉你哪个是哪个。
你通过颜色、形状、大小把它们分成几堆——这就是聚类


8.2 无监督学习的三大核心任务

1️⃣ 聚类(Clustering)——“物以类聚”

目标:将相似的数据点分到同一组,不相似的分开。

✅ 输出:每个样本的“群组编号”(如用户A属于“高价值客户群”)

典型算法

  • K-Means(最常用)
  • 层次聚类(Hierarchical Clustering)
  • DBSCAN(能发现任意形状簇)

2️⃣ 降维(Dimensionality Reduction)——“压缩信息,保留精华”

目标:把高维数据(如1000个特征)压缩成低维(如2维),同时尽量不丢失重要信息

✅ 用途:

  • 可视化(2D/3D画图)
  • 去噪
  • 加速后续模型训练

典型算法

  • 主成分分析(PCA)— 线性降维
  • t-SNE — 非线性,适合可视化
  • UMAP — 更快、更现代的非线性降维

3️⃣ 异常检测(Anomaly Detection)——“揪出不合群的家伙”

目标:找出与大多数数据显著不同的异常点(Outliers)。

✅ 应用:信用卡欺诈、设备故障、网络入侵

典型方法

  • 基于统计(如3σ原则)
  • 基于聚类(离群点不属于任何簇)
  • Isolation Forest(专门为此设计)
  • One-Class SVM

8.3 无监督学习的应用场景

场景任务类型实际案例
用户分群聚类电商将用户分为“价格敏感型”、“品牌忠诚型”等
数据压缩降维将人脸图像从10,000维压缩到50维用于人脸识别
异常值识别异常检测银行系统自动标记可疑交易
推荐系统预处理聚类+降维先对用户聚类,再在群内做个性化推荐
探索性数据分析(EDA)降维+聚类快速了解数据分布和潜在结构

💡关键价值:在没有标签的情况下,也能为业务提供洞察!


8.4 配套代码实现(Scikit-learn)

🧪 示例数据准备

importnumpyasnpimportmatplotlib.pyplotaspltfromsklearn.datasetsimportmake_blobs,load_digits# 生成模拟用户数据(收入 vs 消费)X,_=make_blobs(n_samples=300,centers=3,cluster_std=1.5,center_box=(-10,10),random_state=42)plt.scatter(X[:,0],X[:,1],s=30)plt.title("用户收入 vs 月消费(无标签)")plt.xlabel("标准化收入")plt.ylabel("标准化月消费")plt.show()

1️⃣ 聚类实战:K-Means 用户分群

fromsklearn.clusterimportKMeans# 使用K-Means聚类(假设分3群)kmeans=KMeans(n_clusters=3,random_state=42)y_pred=kmeans.fit_predict(X)# 可视化结果plt.scatter(X[:,0],X[:,1],c=y_pred,cmap='viridis',s=30)plt.scatter(kmeans.cluster_centers_[:,0],kmeans.cluster_centers_[:,1],c='red',marker='x',s=200,linewidths=3,label='聚类中心')plt.title("K-Means 用户分群结果")plt.legend()plt.show()# 输出:每个用户属于哪一类(0, 1, 或 2)print("前5个用户的群组:",y_pred[:5])

🔍业务解读

  • 群0:高收入高消费 → “高价值客户”
  • 群1:低收入低消费 → “价格敏感型”
  • 群2:高收入低消费 → “节俭型高净值客户”

2️⃣ 降维实战:PCA 数据压缩与可视化

fromsklearn.decompositionimportPCAfromsklearn.datasetsimportload_digits# 加载手写数字(64维 → 2维)digits=load_digits()X_digits=digits.data# shape: (1797, 64)# PCA降到2维pca=PCA(n_components=2)X_pca=pca.fit_transform(X_digits)# 可视化(按真实标签着色,仅用于观察效果)plt.figure(figsize=(8,6))plt.scatter(X_pca[:,0],X_pca[:,1],c=digits.target,cmap='tab10',alpha=0.6)plt.colorbar()plt.title("手写数字PCA降维(2D可视化)")plt.xlabel("第一主成分")plt.ylabel("第二主成分")plt.show()# 查看信息保留率print("前2个主成分保留方差比例:",pca.explained_variance_ratio_.sum())# ≈ 28%

💡提示:实际应用中可保留95%方差:

pca=PCA(n_components=0.95)# 自动选择维度

3️⃣ 异常检测实战:Isolation Forest 识别异常用户

fromsklearn.ensembleimportIsolationForest# 在用户数据中加入几个明显异常点X_with_outliers=np.vstack([X,[[20,20],[-15,-15],[18,-12]]])# 使用Isolation Forestiso_forest=IsolationForest(contamination=0.1,random_state=42)outlier_labels=iso_forest.fit_predict(X_with_outliers)# 1=正常, -1=异常# 可视化plt.scatter(X_with_outliers[outlier_labels==1,0],X_with_outliers[outlier_labels==1,1],c='blue',label='正常用户',s=30)plt.scatter(X_with_outliers[outlier_labels==-1,0],X_with_outliers[outlier_labels==-1,1],c='red',label='异常用户',s=100,marker='x')plt.title("异常用户检测(Isolation Forest)")plt.legend()plt.show()

优势:无需假设数据分布,对高维数据有效!


🎯 本章总结

任务目标关键算法输出形式
聚类分组相似样本K-Means, DBSCAN群组标签(0,1,2…)
降维压缩特征维度PCA, t-SNE低维表示(如2D坐标)
异常检测找出离群点Isolation Forest, One-Class SVM正常/异常标签

💡 无监督学习的核心价值:

  1. 探索未知:在没有先验知识时理解数据结构
  2. 预处理利器:为监督学习提供特征工程(如聚类ID作为新特征)
  3. 自动化洞察:无需人工标注,直接生成业务分群

🚀建议
掌握K-Means和PCA后,可深入:

  • 聚类评估指标(轮廓系数、Calinski-Harabasz指数)
  • 非线性降维(t-SNE, UMAP)
  • 半监督学习(结合少量标签提升无监督效果)

资料关注

公众号:咚咚王
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》

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/16 15:08:25

免费听书神器喜马拉雅v9.4.32.3精简版分享 解锁付费内容 无限畅听

平时喜欢听音频的小伙伴,应该都对喜马拉雅不陌生吧?作为国内最大的音频分享平台,上面的内容真的太丰富了,不管是通勤路上解闷的段子、睡前助眠的小说,还是学习提升的培训课程、了解时事的新闻资讯,基本上想…

作者头像 李华
网站建设 2026/2/15 22:14:08

基于SpringBoot的宠物成长监管系统的设计与实现(源码+lw+部署文档+讲解等)

课题介绍本课题聚焦宠物成长过程精细化监管与养宠用户科学养护的核心需求,设计并实现基于SpringBoot框架的宠物成长监管系统。当前养宠领域存在宠物成长数据记录零散、健康状况难追踪、养护知识获取碎片化、疫苗驱虫等关键事项易遗漏等问题,制约了养宠用…

作者头像 李华
网站建设 2026/2/15 21:14:18

力扣343 整数拆分 java实现

给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k > 2 ),并使这些整数的乘积最大化。返回 你可以获得的最大乘积 。示例 1:输入: n 2 输出: 1 解释: 2 1 1, 1 1 1。示例 2:输入: n 10 输出: 36 解释: 10 3 3 4, 3 …

作者头像 李华
网站建设 2026/2/12 13:06:21

基于SpringBoot的大学生科技竞赛管理系统(源码+lw+部署文档+讲解等)

课题介绍本课题聚焦大学生科技竞赛规范化管理与赛事服务高效化的核心需求,开展基于SpringBoot的大学生科技竞赛管理系统的设计与实现工作。当前大学生科技竞赛管理场景普遍存在赛事信息发布分散、报名流程繁琐、团队组建与管理不便、赛事进度跟踪不及时、评审流程不…

作者头像 李华
网站建设 2026/2/15 9:17:13

从HTML注入到CSRF:一次漏洞组合拳实战

前言 免责声明:本文仅供安全学习研究,所有测试均在授权环境或自建靶场中进行。严禁用于非法用途,否则后果自负。 HTML注入 CSRF登出漏洞实战复现 漏洞概述 在某社区平台的评论功能中发现存储型HTML注入漏洞。虽然前端做了输入过滤&#…

作者头像 李华
网站建设 2026/2/16 11:19:31

1024编程——让我们的孩子对话未来

编程到底学什么? 其实,编程思维是“理解问题——找出路径”的高效思维过程,它由分解、模式识别、抽象、算法四个步骤组成。编程能够培养孩子的自律性,需要制定规则并培养孩子形成遵守规则的意识。每一门编程语言都有自己的规则&am…

作者头像 李华