当前位置: 首页 > news >正文

AI人工智能机器学习之降维和数据压缩

1、概要

  本篇学习AI人工智能机器学习之降维和数据压缩,以主成分分析(PCA, Principal Component Analysis)为例,从代码层面讲述机器学习中的降维和数据压缩。

2、降维和数据压缩 - 简介

在机器学习和数据分析中,降维(Decomposition)是一种重要的技术,通常用于减少数据的维度、消除噪声、提高模型的性能以及可视化高维数据。

降维是指将高维数据转换为低维数据的过程, 常用的方法包括:

  • 主成分分析(PCA)
  • 线性判别分析(LDA)
  • t-分布随机邻域嵌入(t-SNE)
  • 核主成分分析(Kernel PCA)
  • 独立成分分析(ICA)

数据压缩是指通过减少数据的冗余和不必要的信息来减小数据文件的大小。数据压缩可以是无损的(不损失信息)或有损的(损失一些信息)。在机器学习中,数据压缩通常是通过降维技术实现的

本篇,以两个示例讲述聚类分析使用方法:

  • 示例1:主成分分析(PCA)对数据降维
  • 示例2:主成分分析(PCA)对数据进行压缩

本篇相关资料代码参见:AI人工智能机器学习相关知识资源及使用的示例代码

3、降维和数据压缩

3.1、安装依赖

python安装机器学习库: pip install scikit-learn

3.2、示例1: 主成分分析(PCA)对数据降维
from sklearn.decomposition import TruncatedSVD, PCA
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt# 加载示例数据
iris = load_iris()
X = iris.data
y = iris.target# 创建 PCA 模型
pca = PCA(n_components=2)  # n_components:要保留的主成分数量。这里选择前两个主成分
X_reduced = pca.fit_transform(X)# 可视化结果
plt.figure(figsize=(8, 6))
plt.scatter(X_reduced[:, 0], X_reduced[:, 1], c=iris.target, cmap='viridis', edgecolor='k', s=100)
plt.title("PCA of IRIS Dataset")
plt.xlabel("Principal Component 1")
plt.ylabel("Principal Component 2")
plt.grid()
plt.show()

运行上述代码的输出:

在这里插入图片描述

PCA是一种线性降维技术,通过线性组合的数据主成分来解释数据的方差。主要用于简单学习与可视化中数据压缩、简化,但是PCA有一定的局限性,它需要你拥有特定领域的相关知识。对噪音比较多的数据并不适用

3.3、示例2:主成分分析(PCA)对数据进行压缩
from sklearn.decomposition import TruncatedSVD, PCA
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt# 加载示例数据
iris = load_iris()
X = iris.data
y = iris.target# 使用 PCA 进行数据压缩
pca = PCA(n_components=2)  # 设置主成分数量
X_reduced = pca.fit_transform(X)# 将压缩后的数据恢复到原始空间(近似)
X_approx = pca.inverse_transform(X_reduced)# 可视化原始数据与压缩数据
plt.figure(figsize=(12, 6))plt.subplot(1, 2, 1)
plt.scatter(X[:, 0], X[:, 1], c=iris.target, cmap='viridis', edgecolor='k', s=100)
plt.title("Original Data")
plt.xlabel("Feature 1")
plt.ylabel("Feature 2")
plt.grid()plt.subplot(1, 2, 2)
plt.scatter(X_approx[:, 0], X_approx[:, 1], c=iris.target, cmap='viridis', edgecolor='k', s=100)
plt.title("Compressed Data (PCA Approximation)")
plt.xlabel("Feature 1")
plt.ylabel("Feature 2")
plt.grid()plt.show()

运行上述代码的输出:

在这里插入图片描述

4、 总结

本篇以主成分分析(PCA, Principal Component Analysis)为例,从代码层面讲述机器学习中的降维和数据压缩。降维旨在提取数据中的重要特征,关注保留尽可能多的原始信息,以便更好地理解和处理数据,通常使用方法如 PCA、LDA、t-SNE 等;数据压缩旨在减小数据的存储空间和传输成本,在某种程度上牺牲信息(如有损压缩),以获得更高的压缩比,可以使用降维方法,但也可以使用其他技术,如编码、量化等。降维可以帮助我们理解数据的结构,而数据压缩可以减小数据规模,提高计算效率,可以利用这些技术都能够在实际应用中提升模型的性能和效果。

http://www.lryc.cn/news/544285.html

相关文章:

  • 17 款电脑压缩工具详解及下载指南(2025 年最新版)
  • DeepSeek开源周Day5压轴登场:3FS与Smallpond,能否终结AI数据瓶颈之争?
  • ROS2软件调用架构和机制解析:Publisher创建
  • 【落羽的落羽 C++】C++入门基础·其之一
  • docker使用代理的简单配置
  • 每日一题-设计食物评分系统,哈希表的有效使用
  • 大模型应用:多轮对话(prompt工程)
  • WSDM24-因果推荐|因果去偏的可解释推荐系统
  • VScode在Windows11中配置MSVC
  • 数据库基础二(数据库安装配置)
  • cuda-12.4.0 devel docker 中源码安装 OpenAI triton
  • doris: Hive Catalog
  • 【LeetCode】131.分割回文串
  • JeeWMS graphReportController.do SQL注入漏洞复现(CVE-2025-0392)
  • 基于Python+django+mysql旅游数据爬虫采集可视化分析推荐系统
  • 我的工作经历
  • 筑牢安全防线:工商业场所燃气泄漏防护新方案
  • 基于STM32的智能停车场管理系统
  • MacBook 终端中使用 vim命令
  • VoIP之SBC(会话边界控制器)
  • threejs:document.createElement创建标签后css设置失效
  • 安装2018版本的petalinux曲折经历
  • return和print
  • springboot411-基于Java的自助客房服务系统(源码+数据库+纯前后端分离+部署讲解等)
  • 跨平台文件互传工具
  • final 关键字在不同上下文中的用法及其名称
  • Elasticsearch:使用阿里云 AI 服务进行嵌入和重新排名
  • 【愚公系列】《鸿蒙原生应用开发从零基础到多实战》004-TypeScript 中的泛型
  • IP属地是通过卫星定位的吗?如何保护用户隐私
  • 【云原生之kubernetes实战】在k8s环境中高效部署Vikunja任务管理工具(含数据库配置)