当前位置: 首页 > 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.dtcms.com/a/41708.html

相关文章:

  • 基于W2605C语音识别合成芯片的智能语音交互闹钟方案-AI对话享受智能生活
  • lvgl运行机制分析
  • 车载以太网-基于linux的ICMP协议
  • 决策树(Decision Tree)详细解释(带示例)
  • 精神分裂症患者GAF评分的可视化分析|使用集成学习模型 LightGBM
  • Linux操作系统:基于 Linux 的工业机器人项目设计与实现
  • 【uniapp】在UniApp中实现持久化存储:安卓--生成写入数据为jsontxt
  • python环境打包2 pytorch和cuda的安装逻辑
  • 鸿蒙兼容Mapbox地图应用测试
  • 解决npm run dev报错
  • STM32 微控制器库RCC_OscInitTypeDef结构参数介绍
  • 精通 Fiddler:Web 调试利器的深度探索
  • RabbitMQ系列(七)基本概念之Channel
  • 双臂机器人的动力学建模
  • 算法day2 dfs搜索2题
  • 关于CAN光纤联网在电池簇电池集装箱灭火系统中的应用的文章:
  • 2025网络安全工程师好就业吗?网络安全工程师就业前景如何?
  • DPVS-6:软件框架简介
  • 自用的vim脚本
  • QT 中的元对象系统(二):元对象实现原理QMetaObject
  • 网络基础III
  • 数据库表的各种设计
  • 记Anolis OS 8中如何盘podman
  • Photoshop EXIF 脚本
  • Android 自定义进度条:实现渐变色和圆角效果
  • 基于大语言模型的推荐系统(2)
  • Pytest自定义测试用例执行顺序
  • docker本地镜像源搭建
  • 基于定制开发开源AI大模型S2B2C商城小程序的商品选品策略研究
  • Spring Boot集成Jetty、Tomcat或Undertow及支持HTTP/2协议