【机器学习】—PCA(主成分分析)

主成分分析(PCA)详解

引言

主成分分析(PCA)是一种统计方法,它可以通过正交变换将一组可能相关的变量转换为一组线性不相关的变量,这些变量称为主成分。PCA经常用于降维,数据压缩,以及在数据挖掘中发现数据结构。

PCA的数学原理

协方差矩阵

假设我们有一个数据集 ( X ),其中包含 ( n ) 个样本,每个样本有 ( p ) 个特征。我们可以将 ( X ) 表示为一个 ( n \times p ) 的矩阵。PCA的第一步是计算协方差矩阵 ( \Sigma ),它是数据集 ( X ) 的特征值和特征向量的载体。

协方差矩阵 ( \Sigma ) 定义为:

\\Sigma = \\frac{1}{n-1} X\^T X

特征值分解

接下来,我们需要对协方差矩阵 ( \Sigma ) 进行特征值分解。特征值分解的目的是找到矩阵的特征值 ( \lambda ) 和对应的特征向量 ( v ),使得:

\\Sigma v = \\lambda v

主成分

特征向量 ( v ) 表示新的特征空间的方向,而特征值 ( \lambda ) 表示每个特征向量的重要性。我们通常按照特征值从大到小的顺序选择前 ( k ) 个特征向量,这些特征向量对应的主成分能够解释数据中最大的方差。

转换数据

最后,我们将原始数据 ( X ) 通过这些特征向量转换到新的特征空间,得到降维后的数据:

X_{reduced} = X V_k

其中 ( V_k ) 是包含前 ( k ) 个特征向量的矩阵。

Python代码实现

以下是使用Python中的sklearn库来实现PCA的一个简单例子。

python 复制代码
import numpy as np
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler

# 假设X是包含数据的numpy数组
X = np.array([[1, 2], [3, 4], [5, 6]])

# 标准化数据
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

# 创建PCA对象,设置主成分的数量
pca = PCA(n_components=2)

# 对数据进行拟合和转换
X_pca = pca.fit_transform(X_scaled)

print("原始数据:\n", X)
print("降维后的数据:\n", X_pca)
相关推荐
拾零吖30 分钟前
李宏毅 Deep Learning
人工智能·深度学习·机器学习
华芯邦32 分钟前
广东充电芯片助力新能源汽车车载系统升级
人工智能·科技·车载系统·汽车·制造
时空无限1 小时前
说说transformer 中的掩码矩阵以及为什么能掩盖住词语
人工智能·矩阵·transformer
查里王2 小时前
AI 3D 生成工具知识库:当前产品格局与测评总结
人工智能·3d
武子康2 小时前
AI-调查研究-76-具身智能 当机器人走进生活:具身智能对就业与社会结构的深远影响
人工智能·程序人生·ai·职场和发展·机器人·生活·具身智能
小鹿清扫日记2 小时前
从蛮力清扫到 “会看路”:室外清洁机器人的文明进阶
人工智能·ai·机器人·扫地机器人·具身智能·连合直租·有鹿巡扫机器人
fanstuck2 小时前
Prompt提示工程上手指南(六):AI避免“幻觉”(Hallucination)策略下的Prompt
人工智能·语言模型·自然语言处理·nlp·prompt
zhangfeng11333 小时前
win7 R 4.4.0和RStudio1.25的版本兼容性以及系统区域设置有关 导致Plots绘图面板被禁用,但是单独页面显示
开发语言·人工智能·r语言·生物信息
DogDaoDao4 小时前
神经网络稀疏化设计构架方法和原理深度解析
人工智能·pytorch·深度学习·神经网络·大模型·剪枝·网络稀疏
西猫雷婶4 小时前
pytorch基本运算-Python控制流梯度运算
人工智能·pytorch·python·深度学习·神经网络·机器学习