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

PCA降维

pca降维原理及过程
原始数据矩阵可能存在数千万列,高纬度数据可能引起维度灾难,严重影响模型性能,浪费资源,因此需要对其降维。pca可以对原始数据降维,去除数据中的噪声,便于后续分析。
PCA(Principal Component Analysis),即主成分分析方法。PCA的主要思想就是将n维特征映射到k维上。高维数据不好观测,以三维星空为例,到处散落的星星观测不出规律;pca就像是专业摄影师,用照相机以不同方位对星空拍照,星空照片是降维后的数据,可以从不同角度不同方位拍n张照片,找出看到云点最多的,展开最大最清晰的照片为最佳照片,云点其次,第二清晰的为第二好的照片,看不清的或者拍出来星星最小的舍弃,pca主要工作就是找出最好的一些照片,丢弃拍的不好的照片,好的照片能够大概反映星空的大部分特征。
PCA数学原理基于线性代数和统计学,通过线性变换将原始数据投影到新的坐标系中,使投影后的数据在第一个坐标上方差最大,第二个坐标次之,且与第一主成分正交。以此类推..

详细计算步骤如下:
1. 中心化数据
原始数据进行中心化,每个特征减去均值,使数据均值为0。

点击查看代码
# python
import numpy as np
# 假设原始矩阵X(m*n) -- m为样本数,n为特征值
X_std = (X - np.mean(X,axis=0)) / np.std(X,axis=0)

2. 计算协方差

计算中心化后的数据的协方差矩阵,协方差矩阵的形状为 p×p,其元素表示各特征之间的协方差。协方差矩阵对角线元素即每个特征的方差,非对角线元素即不同特征之间的协方差

点击查看代码
cov_matrix = np.cov(X_std.T)

3. 特征分解

Σ × v = λ × v
Σ :协方差矩阵
v :特征向量(主成分方向)
λ :特征值(主成分的重要性)

特征向量代表数据分布的主要方向,特征值λ代表数据在这个方向的延申程度

  1. 特征值排序和选择
点击查看代码
# 按特征值从大到小排序
idx = eigenvalues.argsort()[::-1]  # 降序排列
eigenvalues_sorted = eigenvalues[idx]
eigenvectors_sorted = eigenvectors[:, idx]# 选择前k个主成分
W = eigenvectors_sorted[:, :k]  # 投影矩阵 (n×k)

5. 投影变换

点击查看代码
# 将数据投影到主成分空间
X_pca = X_centered @ W  # (m×n) × (n×k) = (m×k)
http://www.hskmm.com/?act=detail&tid=18453

相关文章:

  • docker复制文件到宿主机
  • 【SimpleFOC】SimpleFOC的运动规划器(Motion Planner)和梯形速度规划
  • Day22多态详解
  • rad/s RPM之间的换算
  • 再见Playwright!谷歌官方Chrome DevTools MCP正式发布,AI编程效率再翻倍
  • Markdown 之——清单の语法
  • “计算理论之美”课程笔记一:概率
  • “计算理论之美”课程笔记四:高维空间组合优化
  • git分支从dev迁移到maser
  • Centos7安装ffmpeg
  • 2025.9.26总结
  • C++ 与现代并发编程:性能与复杂度的平衡艺术
  • 第五天
  • 926
  • 20250736
  • sql优化个人总结
  • Powershell 入门
  • 漏洞赏金猎手的新年目标实战指南
  • 数学作业
  • lc1037-有效的回旋镖
  • 日常刷题:cf每日一题+abc+反思复盘
  • 题解:P13523 [KOI 2025 #2] 序列与查询
  • 2025年9月26日 - 20243867孙堃2405
  • HarmonyOS 5 网络编程与材料存储实战:从RESTful API到本地持久化
  • 老系统-新系统的数据迁移
  • C语言中的for循环
  • excell中完成矩阵的转置相乘
  • go 面试题
  • 论文笔记:How Can Recommender Systems Benefit from Large Language Models: A Survey - 详解