用python进行主成分分析(PCA)

Python 中的主成分分析 (PCA) 无监督学习 什么是主成分分析 当我们执行主成分分析 (PCA) 时,我们希望找到数据集的主成分。令人惊讶不是吗?那么,数据集的主要组成部分是什么,我们为什么要找到它们,它们告诉我们什么?数据集的主成分是数据集中变化最大的“方向”(我假设您对术语方差有基本的了解。如果没有,请在此处查找。简单来说,第一个主成分是数据集是沿数据集变化最大的方向。 考虑以下数据集,我在其上绘制了由不同颜色箭头表示的不同“方向”。你怎么看,哪个箭头指向数据集方差最大的方向? 好吧,通过肉眼我们看到橙色箭头可能指向方差 阅读详情

一、简介

 这篇文章简单介绍了PCA的原理、思想和一些定义,本文将介绍如何用python进行PCA。

二、实现

2.1 标准化数据

 在对数据进行PCA前,需要先将数据进行中心标准化,即使特征的平均值为 0 0 0,方差为 1 1 1。

from sklearn.preprocessing import StandardScaler
StandardScaler(*, copy=True, with_mean=True, with_std=True)

使用说明:

  • 实例化:scaler = StandardScaler()
  • 训练:scaler.fit(data),可接着使用scaler.mean_得到每列的均值,使用scaler.scale_得到每列的标准差
  • 转换:scaler.transform(data),此时会返回转换后的数据,但不改变原数据,因此要用data_new = scaler.transform(data)
  • 训练并转换:data_new = scaler.fit_transform(data)

2.2 进行中心化

from sklearn.decomposition import PCA

模型参数:

PCA(

	# 希望PCA降维后的特征维度数目
	# 也可以指定主成分的方差和所占的最小比例阈值,让PCA类自己去根据样本特征方差来决定降维到的维度数,此时n_components是一个(0,1]之间的数,而且svd_solver == 'full'
	# 还可以将参数设置为"mle", 此时PCA类会用MLE算法根据特征的方差分布情况自己去选择一定数量的主成分特征来降维,而且svd_solver == 'full'
	# 不输入n_components,此时n_components=min(样本数,特征数)
    n_components=None,
    *,

	# 表示是否在运行算法时,将原始训练数据复制一份
	# 若为True,则运行PCA算法后,原始训练数据的值不会有任何改变,因为是在原始数据的副本上进行运算
	# 若为False,则运行PCA算法后,原始训练数据的值会改,因为是在原始数据上进行降维计算
    copy=True,

	# 判断是否进行白化,所谓白化,就是对降维后的数据的每个特征进行归一化,让方差都为1.
	# 对于PCA降维本身来说,一般不需要白化
	# 如果PCA降维后有后续的数据处理动作,可以考虑白化。
	# 默认值是False,即不进行白化
    whiten=False,

	# 指定奇异值分解SVD的方法
	# 可选{‘auto’, ‘full’, ‘arpack’, ‘randomized’}
	# randomized一般适用于数据量大,数据维度多同时主成分数目比例又较低的PCA降维,它使用了一些加快SVD的随机算法
	# full则是传统意义上的SVD,使用了scipy库对应的实现
	# arpack和randomized的适用场景类似,区别是randomized使用的是scikit-learn自己的SVD实现,而arpack直接使用了scipy库的sparse SVD实现
	# 默认是auto,即PCA类会自己去在前面讲到的三种算法里面去权衡,选择一个合适的SVD算法来降维。一般来说,使用默认值就够了
    svd_solver='auto',
    tol=0.0,
    iterated_power='auto',
    random_state=None,
)

模型常用方法:

  • fit(X)——用数据集X拟合模型
  • transform(X)——对数据集X应用降维
  • fit_transform(X)——使用数据集X拟合模型,并在数据集X上应用降维
  • inverse_transform(X)——将数据转换回其原始空间
  • score(X)——返回所有样本的平均对数似然率
  • score_samples(X)——返回每个样本的对数似然

模型常用属性:

  • components_——特征空间中的主轴,表示数据中最大方差的方向。按explained_variance_排序。它的shape为(n_components_, n_features_),排在第一个的是第一主成分,排在第二个的是第二主成分,依次类推。
  • explained_variance_——代表降维后的各主成分的方差值。方差值越大,则说明越是重要的主成分
  • explained_variance_ratio_——代表降维后的各主成分的方差值占总方差值的比例,这个比例越大,则越是重要的主成分
  • singular_values_——每个特征的奇异值,奇异值等于n_components 低维空间中变量的2范数
  • mean_——每个特征的均值
  • n_components_——有多少个主成分
  • n_features_——训练数据中的特征数量
  • n_samples_——训练数据中的样本数
  • noise_variance_——等于X协方差矩阵的 ( m i n ( n _ f e a t u r e s , n _ s a m p l e s ) − n _ c o m p o n e n t s ) (min(n\_features,n\_samples)-n\_components) (min(n_features,n_samples)−n_components)个最小特征值的平均值
python_主成分分析(PCA)降维 主成分分析(principal component analysis)是一种常见的数据降维方法,其目的是在“信息”损失较小的前提下,将高维的数据转换到低维,从而减小计算量。   PCA的本质就是找一些投影方向,使得数据在这些投影方向上的方差最大,而且这些投影方向是相互正交的。这其实就是找新的正交基的过程,计算原始数据在这些正交基上投影的方差,方差越大,就说明在对应正交基上包含了更多的信息量。 阅读详情

相关推荐

用Python的sklearn库进行PCA(主成分分析)

在python的sklearn的库里面集成很多机器学习算法的库,其中也包括主成分分析的方法。 接下来讲讲怎么在python里面使用pca算法 首先要导入库: from sklearn.decomposition import PCA 下面是官网上的例子: >>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3

puredreammer的博客 15万+

Python机器学习13——主成分分析

主成分分析,主成分回归,主成分得分可视化,核载矩阵

weixin_46277779的博客 2万+

主成分分析(PCA)及其可视化——python

一、主成分分析的原理 主成分分析是利用降维的思想,在损失很少信息的前提下把多个指标转化为几个综合指标的多元统计方法。通常把转化生成的综合指标称之为主成分,其中每个主成分都是原始变量的线性组合,且各个主成分之间互不相关,这就使得主成分比原始变量具有某些更优越的性能。这样在研究复杂问题时就可以只考虑少数几个主成分而不至于损失太多信息,从而更容易抓住主要矛盾,揭示事物内部变量之间的规律性,同时使问题得到简化,提高分析效率。 主成分分析正是研究如何通过原来变量的少数几个线性组合...

PY洋洋 10万+

主成分分析法(PCA)及其python实现

主成分分析法(Principal Component Analysis,PCA)是一种用于把高维数据降成低维,使分析变得更加简便的分析方法。本文给出了PCA的推导过程以及python实现,多为学习后的个人理解,如有错误还请指出。...............

Castria的博客 4万+

Python实现主成分分析(PCA)降维

主成分分析是我十分喜欢的一个将为丰富,在之前学习并总结过其matlab的实现方法。

qq_36108664的博客 1万+

PCA主成分分析以及Python实现(阅读笔记)

简述 PCA日常使用,但还没有研究过其理论,这让我很好奇。 理论部分 《机器学习》中是这样开始的: 对于正交属性空间的样本点,如何用一个超平面来对所有的样本点进行表达。 超平面和半空间是优化领域的两个重要概念 简单来说,矩阵方程W∗X+b=0W*X+b = 0W∗X+b=0表示的是超平面,W∗X+b≥0W*X+b \geq 0W∗X+b≥0表示的就是半空间。 显然超平面是直线在高维空间的扩展。(...

gc.collect() 1万+

用python实现主成分分析(PCA)

用python实现主成分分析(PCA)python应用实例:如何用python实现主成分分析背景iris数据集简介算法的主要步骤代码实现查看各特征值的贡献率 python应用实例:如何用python实现主成分分析 主成分分析(Principal Component Analysis,PCA)是一种统计方法。通过正交变换将一组可能存在相关性的变量转换为一组线性不相关的变量,转换后的这组变量叫主成分。 背景 在许多机器学习、深度学习的应用中,往往需要处理大量样本或大的矩阵,多变量大样本无疑会为研究和应用提供丰富

ruoff的博客 4万+

主成分分析(PCA)原理分析&Python实现

本文的侧重点是从理论上解释PCA每一个步骤理由,便于更加深刻地理解PCA,而不是单纯地机械式的码代码。

Dfreedom.的博客 1万+

Python-sklearn之PCA主成分分析

文章目录写在前面一、PCA主成分分析1、主成分分析步骤2、主成分分析的主要作二、Python使用PCA主成分分析 写在前面 作为大数据开发人员,我们经常会收到一些数据分析工程师给我们的指标,我们基于这些指标进行数据提取。其中数据分析工程师最主要的一个特征提取方式就是PCA主成分分析,下面我将介绍Python的sklearn库中是如何实现PCA算法及其使用。 一、PCA主成分分析 什么是PCA主成分分析。百度百科给出如下定义: 1、主成分分析步骤 对于一个PCA主成分分析,一般分为以下几个步骤: 去除平均

m0_43405302的博客 7997

FFT中的精度博弈:定点数缩放、块浮点与溢出处理在Vivado IP核中的实践权衡

本文探讨了在Vivado FFT IP核中实现高精度快速傅里叶变换的关键技术,包括定点数缩放策略、块浮点模式及溢出处理机制。通过分析不同精度控制方案的资源开销与性能权衡,为工程师在医疗成像、雷达信号处理等高动态范围应用中优化FFT实现提供实践指导。

melon的博客 1096

HWSD中国土壤数据库

T_PH_H2O: Real (酸碱度) T_CEC_CLAY: Real (粘性层土壤的阳离子交换能力);T_CEC_SOIL: Real (土壤的阳离子交换能力) T_BS: Real (基本饱和度);T_CACO3: Real (碳酸盐或石灰含量) T_CASO4: Real (硫酸盐含量);ADD_PROP: Real (土壤单元中与农业用途有关的特定土壤类型);T_USDA_TEX: Real (USDA土壤质地分类);T_REF_BULK: Real (土壤容重);

地球资源数据云的官方博客 4651

python主成分分析PCA

主成分PCA分析的基本步骤: · 对数据进行归一化处理(代码中并非这么做的,而是直接减去均值) · 计算归一化后的数据集的协方差矩阵 · 计算协方差矩阵的特征值和特征向量 · 保留最重要的k个特征(通常k要小于n),也可以自己制定,也可以选择一个阈值,然后通过前k个特征值之 和减去后面n-k个特征值之和大于这个阈值,则选择这个k · 找出k个特征值对应的特征向量 · 将m...

fanc的博客 3706

基于DE2-115红外解码实验

基于DE2-115红外解码实验   一、   功能描述 在同一个遥控电路中通常要使用实现不同的遥控功能或区分不同的机器类型, 这样就要求信号按一定的编码传送,编码则会由编码芯片或电路完成。对应于编码芯片通常会有相配对的解码芯片或包含解码模块的应用芯片。在实际的产品设计或业余电子制作中,编码芯片并一定能完成我们要求的功能,这时我们就需要了解所使用的编码芯片到底是如何编码的。只有知道编码方式,我...

乘风的博客 2513

主成分分析 (PCA) 的Python实现

一句话概括主成分分析 主成分分析是采取一种数学降维的方法,找出几个综合变量来代替原来众多的变量,使这些综合变量能尽可能地代表原来变量的信息量,而且彼此之间互不相关。这种将把多个变量化为少数几个互相无关的综合变量的统计分析方法就叫做主成分分析或主分量分析。 主成分分析步骤 对原始数据进行标准化处理 计算标准化数据协方差矩阵 求协方差矩阵的特征值和特征向量 将特征值按照从大到小的顺序排序,选择其中...

weixin_42565558的博客 4100

idea 编译打包nacos2.0.3源码,生成可执行jar 包常见问题

idea 编译打包nacos2.0.3源码,生成可执行jar 包常见问题

fyihdg的专栏 1217

转录因子详细介绍(motif)

转录因子详细介绍(motif) TF: transcription factor转录因子TFBS: transcription factor binding site转录因子结合位点TFBS是序列内的location,TF特异结合在这里,这个site有这种特点 1 和一些参考相关的一个位置(开始,结束,strand),这些reference可以是染色体开始,geneTSS。也可以是一段sequence 2 A SITE可以是实验证实的(已知的),也可以是一些算法(预测的) 3 例子,下面这个图是酵母

wangprince2017 3万+

主成分分析法(PCA)的理解(附python代码案例)

主成分分析(Principal Component Analysis, PCA)是一种统计方法。通过正交变换将一组可能存在相关性的变量转换为一组线性不相关的变量,转换后的这组变量叫主成分。换一种说法:PCA去除噪声和不重要的特征,将多个指标转换为少数几个主成分,这些主成分是原始变量的线性组合,且彼此之间互不相关,其能反映出原始数据的大部分信息,而且可以提升数据处理的速度。为什么会出现PCA呢?因为每个变量都在不同程度上反映了所研究问题的某些信息,并且指标之间彼此有一定的相关性,因而所得的统计数据。

(:3|❀)我要睡觉了,请帮我关一下灯,谢谢 3万+

metaRTC嵌入式webrtc编译指南

metaRTC编译支持qmake和cmake,qmake使用QT最为方便,新版本新增了cmake支持。 ...

metaRTC的博客 9518

【数学建模】评价模型——主成分分析 PCA SPSS实现、Python实现

文章目录PCA介绍SPSS实现python实现简单的主成分分析主成分分析用于综合评价Notice PCA介绍 主成分分析(Principal Component Analysis,PCA):利用降维的方法,把多指标转化为几个综合指标的多元统计方法; 实际问题中,为了全面分析问题,往往提出很多与此有关的变量(因素),每个变量在不同程度上包含了结果的部分信息; 主成分:由原始指标进行线性组合形成的几个新指标,用这几个新指标尽可能地去解释原来指标包含的大部分信息; 比如:一个对国民经济的研究,经过主成分分

CodeLuweir 的博客 1万+

Cursor AI编程工具保姆级安装指南:从下载到中文界面设置(含免费额度说明)

本文提供Cursor AI编程工具的保姆级安装与设置教程。详细指导从官网下载、安装到中文界面切换的每一步,并重点说明其每月500次高级模型调用的免费额度策略。通过个性化设置与核心插件推荐,帮助开发者快速上手,提升AI辅助编程效率。

weixin_29191761的博客 671

VS2019编译使用log4cplus 1.2.0

logger.properties 文件。第三步,创建项目来测试,配置库。第二步,使用VS2019编译。

h a 6 6 6 c k 为 你解决复杂难题! 526

[python数据处理系列] 深入理解与实践:用Python进行主成分分析(PCA)

本文将详细解析主成分分析(PCA)的步骤、作用和参数,并回答一些常见的问题。我们将通过Python代码实现PCA,包括数据导入、降维、查看方差贡献、方差贡献率和累计方差贡献率的可视化等步骤。最后,我们将选择主成分并进行命名,输出降维后的数据,并对主成分分析结果进行可视化。

2301_81199775的博客 6480

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

PCA主成分分析的Python实现

一般是在本征值之间的值差异较大的时候可以更好的降维,这里生成的数据其实两个本征值没有很好的降维效果,但是我们依然可以执行降维的操作。对于PCA算法,最直观的理解就是,在高维数据中找到一个低维的空间,使得所有的数据点投影到该低维空间之后尽可能的分离。这是\(x\)方向的标准化,\(y\)方向的标准化同理,最终可以得到\(\mathbf{Z}=\left(\mathbf{x}',\mathbf{y}'\right)\)。其中\(\Sigma\)是由本征值组成的对角矩阵,\(U\)是由本征列向量组成的本征矩阵。

weixin_55010563的博客 738

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

PCA主成分分析python实现

Github源码:https://github.com/csuldw/MachineLearning/tree/master/PCA   PCA(principle component analysis) ,主成分分析,主要是用来降低数据集的维度,然后挑选出主要的特征。原理简单,实现也简单。关于原理公式的推导,本文不会涉及,你可以参考下面的参考文献,也可以去Wikipedia,这里主要关注实现...

ruthy的博客 3万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

python实现主成分分析(PCA)

python实现主成分分析(PCA) 前言: 主成分分析主要是用于降维,减少样本的特征量,其核心思想是将样本数据映射到最重要的方向,而最重要的方向就是方差最大的方向。关于主成分分析详细的理论知识,请至我的这篇博文中查看 一、PCA的简单实现示例代码 import numpy as np import matplotlib.pyplot as plt # 将二维数据通过主成分分析(PCA)降为一维...

Mekeater的博客 4652

【机器学习】【PCA-2】PCA主成分分析的降维的Python实现 + 代码讲解

1.PCA主成分分析原理2.PCA降维求解步骤3.PCA降维的Python实现(Release版本)3.1代码3.2运行结果4.PCA降维的Python实现(Debug版本)4.1代码4.2运行结果(end)

蔚蓝的天空Tom 3280
上一篇: PCA——主成分分析
下一篇: 线性回归模型详解
米法·
博客等级 码龄8年 179粉丝 116原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值