python主成分分析代码_PCA主成分分析 原理讲解 python代码实现

article/2025/9/11 1:15:04

1. 用途:

通俗来说: 考察一个人的智力情况,就直接看数学成绩就行(存在:数学、语文、英语成绩) 。就是找出一个最主要的特征,然后进行分析。

数据压缩 (Data Compression) ,将高维数据变为低维数据。

可视化数据 (3D->2D等)

2. 2D-->1D,nD-->kD

如下图所示,所有数据点可以投影到一条直线,是投影距离的平方和(投影误差)最小

20191111102808452210.png

注意数据需要归一化处理

思路是找1个向量u,所有数据投影到上面使投影距离最小

那么nD-->kD就是找k个向量687474703a2f2f6c617465782e636f6465636f67732e636f6d2f6769662e6c617465783f253234253234253742752535452537422532383125323925374425374425324325374275253545253742253238322532392537442537442532302535436c646f7473253230253742752535452537422532386b253239253744253744253234253234,所有数据投影到上面使投影误差最小

eg:3D-->2D,2个向量687474703a2f2f6c617465782e636f6465636f67732e636f6d2f6769662e6c617465783f25323425323425374275253545253742253238312532392537442537442532432537427525354525374225323832253239253744253744253234253234就代表一个平面了,所有点投影到这个平面的投影误差最小即可

3. 降维原理(数学推导)

20191111102808609427.png

20191111102808761761.png

20191111102809265635.png

20191111102809542961.png

20191111102809642564.png

# 归一化数据

def featureNormalize(X):

‘‘‘(每一个数据-当前列的均值)/当前列的标准差‘‘‘

n = X.shape[1]

mu = np.zeros((1,n));

sigma = np.zeros((1,n))

mu = np.mean(X,axis=0)

sigma = np.std(X,axis=0)

for i in range(n):

X[:,i] = (X[:,i]-mu[i])/sigma[i]

return X,mu,sigma

20191111102809776344.png

Sigma = np.dot(np.transpose(X_norm),X_norm)/m # 求Sigma

(3)求?的特征值和特征向量。

eigVals,eigVects = np.linalg.eig(np.mat(Sigma))

20191111102809889618.png

>>> x = np.array([3, 1, 2])

>>> np.argsort(x)

array([1, 2, 0]) # index,1 = 1; index,2 = 2; index,0 = 3

>>> y = np.argsort(x)

>>> y[::-1]

array([0, 2, 1])

>>> y[:-3:-1]

array([0, 2]) # 取出 -1, -2

>>> y[:-6:-1]

array([0, 2, 1])

eigValInd = argsort(eigVals)

# print ‘eigValInd1=‘, eigValInd

# -1表示倒序,返回topN的特征值[-1 到 -(topNfeat+1) 但是不包括-(topNfeat+1)本身的倒叙]

eigValInd = eigValInd[:-(topNfeat+1):-1]

# print ‘eigValInd2=‘, eigValInd

# 重组 eigVects 最大到最小

redEigVects = eigVects[:, eigValInd]

(5)求降维后的数值

lowDDataMat = meanRemoved * redEigVects

20191111102810029258.png  

20191111102810244088.png

20191111102810484307.png

原文:https://www.cnblogs.com/carlber/p/11832859.html


http://chatgpt.dhexx.cn/article/OUaIIrut.shtml

相关文章

主成分分析法原理与MATLAB实现

1:主成分分析原理: 主成分分析法是利用降维的思想,把多指标转化为少数几个综合指标(即主成分),其中每个主成分都能够反映原始变量的大部分信息,且所含信息互不重复。这种方法在引进多方面变量的…

主成分分析(PCA)原理及应用

在进行统计学分析中往往面临着比较难以抉择的权衡。以农学研究为例,在实验设计时,考虑到研究结论更能反应作物真实状态下的农艺性状,研究人员会尽可能的纳入较多的指标,但是,随着而来的是铺天盖地的数据让人难以下手&a…

PCA主成分分析原理与基础知识

笔记的主要内容是 PCA(主成分分析) 原理和基本知识,相关数学原理和核心概念。 什么是PCA分析? 主成分分析(PCA, principal component analysis)是一种数学降维方法,利用正交变换把一系列可能线性相关的变量转换为一组线性不相关的…

【机器学习】五、主成分分析原理

主成分分析(Principal Component Analysis),简称PCA,是机器学习中一种常用来进行数据降维操作的方法。PCA通过矩阵变换,将高维数据变换到低维。本文主要分享PCA的数学原理,帮助大家了解PCA降维的理论基础。码字不易,喜…

主成分分析原理详解

本博客前三节参考https://blog.csdn.net/program_developer/article/details/80632779 至于协方差矩阵的公式推导参考 http://blog.codinglabs.org/articles/pca-tutorial.html 1、背景 在许多领域的研究与应用中,通常需要对含有多个变量的数据进行观测&#xff0…

主成分分析原理及Python实现

主成分分析(Principal Components Analysis, PCA)是一种常用的数据分析手段,是图像处理过程中常用到的降维方法。对于一组不同维度之间可能存在线性相关关系的数据,PCA能够把这组数据通过正交变换变成各个维度之间线性无关的数据&…

主成分分析原理以及SPSS和Python实现

目录 [ 0 ] 一句话定义[ 1 ] 使用目的和使用条件[ 2 ] 基本思想和直观理解[ 3 ] 具体计算步骤[ 4 ] 求各个成分的累计贡献率[ 5 ] 主成分分析的SPSS和Python实现SPSS实现相关设置结果分析 Python实现 [ 6 ] 总结 [ 0 ] 一句话定义 主成分分析(principal component analysis,PCA…

主成分分析原理

文章目录 一、主成分操作步骤二、spss里面的设置三、一些概念的解释 一、主成分操作步骤 1、为消除量纲的影响,先对数据进行标准化处理; 2、计算相关系数:一般认为各变量之间的相关系数大于0.3较好; 3、KMO检验和Barlett&#…

PCA: Principal Components Analysis,主成分分析法原理

PCA: Principal Components Analysis,主成分分析法原理 1、引入 PCA算法是无监督学习专门用来对高维数据进行降维而设计,通过将高维数据降维后得到的低维数能加快模型的训练速度,并且低维度的特征具有更好的可视化性质。另外&…

【数据处理方法】主成分分析(PCA)原理分析

笔者最近在学习的过程需要使用一些数据分析和处理的方法,而PCA就是其中常用的一种手段。但在自学的过程中,由于笔者水平有限,对一些博客中的公式不是能很好理解(数学不好的辛酸Ծ‸Ծ),导致总是对整个方法的…

主成分分析法原理简单理解及技术实现

主成分分析法 主成分分析是利用降维的思想,在损失很少信息的前提下,把多个指标转化为几个综合指标的多元统计方法。通常把转化生成的综合指标称为主成分,其中每个主成分都是原始变量的线性组合,且各个主成分之间互不相关,使得主成分比原始变量具有某些更优越的性能…

win10+tensorflow1.14+cuda10安装踩坑

tensorflow1.14安装记录 需要python3.7,cuda10,cudnn7.6,visual studio 2017 可以用visual studio 2017 community 版本 ,win10 sdk要加上,build tools要装上 cuda10.0安装不上报错visual studio integration faile…

Win10 下载torch以及CUDA配置

下载torch以及CUDA配置 下载torch和torchvision安装torch和torchvision安装CUDA检查是否成功 下载torch和torchvision 进入该网站,下载对应的torch和torchvision版本。 https://download.pytorch.org/whl/torch_stable.html以该图为例,cu102代表CUDA10…

Ubuntu 18.10 下安装CUDA10/CUDA10.1

GPU:GeForce840M 显卡驱动:预装,版本390 笔记本 1.降级gcc 使用gcc5 sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt-get update sudo apt-get install gcc-5 g-5 sudo update-alternatives --install /usr/bin/gcc gcc /us…

查看CUDA和cuDNN的版本号 | Win10安装CUDA10和cuDNN

文章目录 🔔 Linux下查看CUDA和cuDNN的版本💙 Win10安装CUDA10和cuDNN,感谢原作者,链接如下🚀🚀 文末专栏推荐部分 🚀🚀❤️ 当生成器和判别器趋于平衡,那便是爱情 &…

【NVIDIA】Win10 + CUDA10 + cuDNN 安装教程(转载)

目录 一、前言 二、官方安装教程及软件包 1、官方教程 2、CUDA Toolkit 10.0 Download 3、cuDNN Download 三、Win10安装CUDA10及cuDNN 1、CUDA安装 2、cuDNN配置 3、万事大吉,只欠重启 四、一些后事 问题1:安装过程中电脑自动重启。 问题2&a…

英伟达CUDA 10终于开放下载了

栗子 发自 凹非寺量子位 出品 | 公众号 QbitAI 英伟达的CUDA 10工具包,终于可以下载了。 与9字头的前辈相比,10.0是第一次为图灵GPU定制的版本。 英伟达新近发布的GeForce RTX 20系列和Quadro RTX系列显卡,以及新一代GPU Tesla T4&#xff0c…

win10+cuda10+tensorflow-gpu最新安装教程

win10cuda10tensorflow-gpu最新安装教程 背景简介安装包准备安装过程总结 背景简介 作为刚入门深度学习的小白,新购置了一台机子,准备兴高采烈的开始用GPU跑深度学习算法,百度了一通win10下安装cuda和tensorflow-gpu的教程,十分繁…

30 系列显卡是新一代架构,新驱动不支持 cuda 9 以及 cuda 10,所以必须安装 cuda 11

30 系列显卡是新一代架构,新驱动不支持 cuda 9 以及 cuda 10,所以必须安装 cuda 11 最近在训练一个深度学习模型,要求的环境是python3.7 torch1.3, 而torch1.3支持的cuda版本为9.2或10.2 但是我所用的显卡为3090, 所以网上的解决办法都试遍…

在CUDA10的环境下安装支持gpu的tensorflow版本(亲测有效)

由于英伟达官方宣称CUDA10有着巨大的性能提升,我便迫不及待的想尝试用它来训练深度学习模型,然而现在Tensorflow的最新官方GPU版本1.12并不支持在CUDA10下的模型训练,因此便翻墙到国外论坛找材料,最终找到了可以完美适配CUDA10的t…