主成分分析 PCA | Principal Components Analysis

机器学习之主成分分析(Principal Component Analysis) 主成分分析(Principal Component Analysis)简称PCA,是一个非监督学习的机器学习算法,主要用于数据的降维,对于高维数据,通过降维,可以发现更便于人类理解的特征。PCA是实现数据降维的一种算法。正如其名,假设有一份数据集,每条数据的维度是D,PCA通过分析这D个维度的前K个主要特征(这K个维度在原有D维特征的基础上重新构造出来,且是全新的正交特征),将D维的数据映射到这K个主要维度上进而实现对高维数据的降维处理。 阅读详情

目录

前言

一、主成分分析是什么?

二、主成分分析的优点和缺点

三、主成分分析的应用场景

四、构建主成分分析模型的注意事项

五、主成分分析模型的实现类库

六、主成分分析模型的评价指标

七、类库scikit-learn实现主成分分析的例子

八、主成分分析的模型参数

总结


前言

主成分分析是机器学习中无监督学习的一种降维算法。

一、主成分分析是什么?

主成分分析(Principal Component Analysis,简称PCA)是一种无监督学习算法,是一种简化数据集的技术,主要用于降维和数据压缩。它可以将高维数据映射到低维空间,通过数据投影的线性转化(正交变换),用较少的数据集维数,保留数据集中对方差贡献最大的特征,也就是保留数据的主要特征。

具体来说,PCA会计算原始数据的协方差矩阵,然后找到协方差矩阵的特征向量和特征值。特征向量是新空间的基向量,特征值描述了每个特征向量的重要程度。在建模中,我们可以选择保留最大的k个特征值对应的特征向量,将原始数据投影到这k个特征向量所张成的低维空间中。

二、主成分分析的优点和缺点

优点:

  • 可以降低数据维度:主成分分析算法可以将高维数据降低到低维空间中,从而减少数据的维度,提高计算效率和模型的泛化能力。
  • 可以去除冗余信息:主成分分析算法可以去除数据中的冗余信息,提取出最重要的特征,从而提高模型的准确率和泛化能力。
  • 可以进行数据压缩:主成分分析算法可以将数据压缩到较小的空间中,从而减少存储和传输数据的成本。
  • 可以处理多变量问题:主成分分析算法可以处理多变量问题,从而提高模型的复杂度和准确率。
  • 可以可视化数据:主成分分析算法可以将数据降低到二维或三维空间中,从而方便可视化和理解数据。
  • 可以灵活选择成分数量:各主成分是按方差大小依次排序的,可以根据实际情况灵活取舍;
  • 去噪:PCA可以通过保留主成分,去除噪声和冗余信息,从而提高数据的质量。
  • 特征提取:PCA可以用来提取数据的主要特征,从而帮助分类和聚类等任务。

缺点:

  • 数据必须是线性可分的:主成分分析算法要求数据是线性可分的,如果数据不满足这个条件,则可能导致降维效果不佳。
  • 可能丢失重要信息:主成分分析算法可能会将一些重要信息丢失掉,从而导致模型的准确率下降。
  • 对异常值敏感:主成分分析算法对异常值较为敏感,因为异常值可能会影响协方差矩阵的计算结果。
  • 解释性差:主成分各个特征维度的含义具有一定的模糊性,不如原始样本特征的解释性强;
  • 需要注意的是,在实际应用中,主成分分析算法的性能还受到许多其他因素的影响,例如特征选择、数据预处理等,需要根据具体情况进行调整和优化。

三、主成分分析的应用场景

主成分分析(PCA)是一种常见的数据降维技术,其应用场景包括但不限于以下几个方面:

  • 图像处理:PCA可以用于图像处理中,将高维图像数据降维成低维数据,从而减少计算量和存储空间。
  • 数据可视化:PCA可以用于数据可视化中,将高维数据降维成二维或三维数据,从而更好地进行数据展示和分析。
  • 模式识别:PCA可以用于模式识别中,将高维特征数据降维成低维数据,从而更好地进行分类和识别。
  • 金融风险管理:PCA可以用于金融风险管理中,将多个相关的资产数据降维成少数几个无关的主成分,从而更好地进行风险管理和投资决策。
  • 生物信息学:PCA可以用于生物信息学中,将基因表达数据降维成少数几个主成分,从而更好地进行基因表达分析和分类。
  • 信号处理:PCA可以用于信号处理中,将高维信号数据降维成低维数据,从而更好地进行信号分析和处理。
  • 语音识别:PCA可以用于语音识别中,将高维语音数据降维成低维数据,从而更好地进行语音信号处理和识别。
  • 机器学习:PCA可以用于机器学习中,将高维特征数据降维成低维数据,从而更好地进行模型训练和预测。
  • 社交网络分析:PCA可以用于社交网络分析中,将多个相关的社交网络数据降维成少数几个无关的主成分,从而更好地进行社交网络分析和挖掘。

总之,PCA是一种非常常用的数据降维技术,可应用于多种领域,特别是需要进行高维数据分析和可视化的场景下。

四、构建主成分分析模型的注意事项

PCA算法的实现步骤主要包括收集数据,清洗数据,数据转换,计算协方差矩阵,求解特征值和特征向量,确定主成分数量,计算主成分得分。
其中,以下步骤对于主成分分析比较重要:

  • 数据转换:对所有特征进行中心表转化等转换,统一量纲,对于减少计算量,确定主成分数量和计算主成分得分很有用;
  • 确定主成分数量:通过方差贡献率(通常80%以上)或特征值(通常大于1)来确定最佳主成分数量,根据需要,为聚类等加工数据进行的主成分分析,有时候为了得到更好的聚类结果,可以丢掉更多的信息,选择70%左右的方差贡献率;

五、主成分分析模型的实现类库

Python中可以使用多个类库来实现主成分分析,以下是其中的几个:

  • Scikit-learn:Scikit-learn是一个流行的Python机器学习类库,提供了主成分分析的实现。您可以使用该库中的PCA类来拟合和转换数据集,以便进行主成分分析。
  • NumPy:NumPy是Python中用于数值计算的一个核心类库,提供了许多用于线性代数运算的函数。您可以使用该库中的linalg模块来计算数据集的协方差矩阵,并使用eig函数来计算协方差矩阵的特征向量和特征值,从而实现主成分分析。
  • Pandas:Pandas是Python中用于数据处理和分析的一个流行类库,提供了许多用于数据清洗和转换的函数。您可以使用该库中的DataFrame和Series类来处理数据集,并使用cov函数来计算数据集的协方差矩阵,从而实现主成分分析。

这些类库都提供了不同的方法来实现主成分分析,您可以根据自己的需要选择合适的方法。

六、主成分分析模型的评价指标

主成分分析的常见评价指标包括累计方差贡献率、特征值等。其中,累计方差贡献率可以用来评价主成分对原始变量的解释程度,特征值可以用来评价主成分的重要性。

七、类库scikit-learn实现主成分分析的例子

from sklearn.decomposition import 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)
pca.fit(X)

# 转换数据
X_pca = pca.transform(X)

# 绘制降维结果
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=y)
plt.show()

八、主成分分析的模型参数

sklearn.decomposition.PCA的主要参数如下:

  • n_components:指定降维后的主成分个数。可以是整数、浮点数或者字符串,如果是整数,则表示保留的主成分个数;如果是浮点数,则表示保留的主成分方差所占比例的阈值;如果是字符串,则表示保留的主成分方差累积贡献率的阈值。默认值为None,表示保留所有主成分。
  • copy:布尔值,表示是否在运行PCA算法时复制输入数据。默认为True,表示复制。
  • whiten:布尔值,表示是否对降维后的数据进行白化处理。默认为False,表示不进行白化处理。
  • svd_solver:指定奇异值分解(SVD)的求解方法。可以是字符串"auto"、"full"、"arpack"、"randomized"中的一个。默认为"auto",表示自动选择合适的求解方法。
  • tol:指定奇异值分解迭代过程的停止阈值。默认为0.0,表示不进行停止阈值的判断。
  • iterated_power:指定奇异值分解迭代过程中的幂迭代次数。默认为"auto",表示自动选择合适的幂迭代次数。
  • random_state:指定随机数生成器的种子。默认为None,表示使用默认的随机数生成器。

总结

本文主要简单介绍了主成分分析的基本概念,优缺点,应用场景,建模时的注意事项,实现方法和模型参数等。

Principal components analysis(PCA)--主成分分析1.0 在多元统计分析中,主成分分析(英语:PCA)是一种统计分析、简化数据集的方法。它利用正交变换来对一系列可能相关的变量的观测值进行线性变换,从而投影为一系列线性不相关变量的值,这些不相关变量称为主成分(Principal Components)。具体地,主成分可以看做一个线性方程,其包含一系列线性系数来指示投影方向。PCA对原始数据的正则化或预处理敏感(相对缩放)。简单来说(用人话来说),PCA是一项流行的用于数据降维的技术,并在降维的同时尽可能得保持数据原有的特征。 阅读详情

相关推荐

PCA(Principal Component Analysis,主成分分析)

总的来说,PCA是一种强大的数据分析工具,它通过降维技术将高维数据转化为低维表示,同时保留数据的主要特征。其工作原理基于线性代数和统计学的理论基础,通过计算协方差矩阵、特征值分解等步骤实现数据的降维和信息的提取。

qlkaicx的博客 1855

(简单易懂)PCA:Principal Component Analysis 主成分分析

Principal Component Analysis(PCA)是一种数据降维方式,可以将n维数据降低到指定的k维。此时延伸出一个问题,为什么数据要进行降维操作。如 Figure 1 在我们常用的二维坐标系中,我们可以很容易的观察出二维数据的分布规律,从而判断出数据的特性。假设在此数据的基础上,加上z轴,每个数据点在z平面上的抖动非常小,则数据点在z轴的变化对于数据整体的特性影响很小。我们足以在x、y轴上观察到数据的主要规律,那么数据在z轴上的维度可以选择忽略。

qq_39214409的博客 2915

PCA(主成分分析-principal components analysis)学习笔记以及源代码实战讲解

在看完吴恩达讲解的PCA(主成分分析)方法后,想着能够用代码的方式实践一下。紧接着就借阅了一下《机器学习实战》里面对PCA的流程的讲解和代码。现在对PCA的运算过程还是比较明白的,也希望这份学习笔记能够帮助刚开始学习PCA的同学们。

梁先森的博客 2039

主成分分析(principle component analysis)介绍

一、介绍 主成分分析(principal components analysis,PCA)又称主分量分析,主成分回归分析。旨在利用降维的思想,把多指标转化为少数几个综合指标。在统计学中,PCA是一种简化数据集的技术。 它是一个线性变换。这个变换把数据变换到一个新的坐标系统中,使得任何数据投影的第一大方差在第一个坐标(称为第一主成分)上,第二大方差在第二个坐标(第二主成分)上,依次类推。 主成

郭云飞的专栏 2万+

A tutorial on Principal Components Analysis - 主成分分析(PCA)教程

A tutorial on Principal Components Analysis 原著:Lindsay I Smith, A tutorial on Principal Components Analysis, February 26, 2002. 翻译:houchaoqun. 时间:2017/01/18. 出处:http://blog.youkuaiyun.com/houchaoqun_xmu

爱无止尽的博客 1692

主成分分析 PCA (Principal components analysis)& 图像压缩 Image Compression (R)

写在前面 本文介绍了PCA原理,以及 R语言实现PCA 的两个例子 ,一个是对非常有名的 iris 数据,一个是使用PCA实现图片压缩 主成分分析 主成分分析(英语:Principal components analysis,PCA)是一种统计分析、简化数据集的方法。它利用正交变换来对一系列可能相关的变量的观测值进行线性变换,从而投影为一系列线性不相关变量 (在线性代数里,矢量空间的一组元素中,若没有矢量可用有限个其他矢量的线性组合所表示,则称为线性无关或线性独立 (linearly independ

qq_20241587的博客 1718

Principal Components Analysis: PCA 主成分分析

math basics orthornormal basis identity matrix (a special othornormal basis) variance (square of standard deviation) and its goal 1. noise: noise should contains low or no information needed to be extracted, it can be quantified by SNR. ...

zhangxlubc的博客 583

GEE:主成分分析(Principal components analysis,PCA)

本文将介绍主成分分析(Principal components analysis,PCA)原理和在Google Earth Engine(GEE)平台上应用 PCA 算法的代码和案例。并应用于 Landsat 数据可见光波段和生态遥感指数(RSEI) 案例中。并介绍如何针对一副影像、一个影像集合进行 PCA 分析,文中对 PCA 的计算过程进行了封装,只需要调用 imagePCA(imageCollection, imageBands) 函数,即可得到影像的主要成分分量,并输出特征值和特征向量。可以输出多个

养乐多的博客 2775

主成分分析(Principal Components Analysis, PCA)

有效解决问题的前提是选择一个看待问题的好视角,使问题展现其最清晰简单的一面。所谓主成分分析,就是选择一个可以将各待分析样本显著区分开的视角。

XY的博客 619

《惠普工作站设置BIOS从U盘装系统》

惠普工作站设置BIOS 惠普工作站在做服务器时应用广泛,本文介绍下其BIOS开机自启动设置,附上图片,以供学习参考。 惠普工作站设置BIOS 启动步骤如下: 第一步:根据需要对BIOS进行更改,并保存 1.重启工作站按F10进入BIOS设置(也可以按ESC键选择进入BIOS设置的选项)。 图1 惠普工作站B...

istrangeboy&begin zero的博客 2万+

STM32C8T6实战:用PID算法搞定超级电容的10W无线恒功率充电(附代码避坑)

本文详细介绍了如何使用STM32C8T6和PID算法实现超级电容的10W无线恒功率充电。通过优化硬件设计、动态调整PID参数以及三重滤波技术,解决了超级电容充电过程中的功率尖峰和效率问题。附有代码示例和调试经验,帮助开发者快速实现高效稳定的无线充电方案。

weixin_29190169的博客 407

主成分分析(principal components analysis, PCA)

%PCA%Feature Matricx cx. Each column represents a feature and%each row a sample datacx = [1.4000 1.5500 3.0000 3.2000 0.6000 0.7000 2.2000 2.3000 1.8000 2.1000 2.0000 1.6000 1.0000 1.1000 2.5000 2.400

Speknighter的专栏 943

ORB-SLAM3在windows11下的编译使用

近期在学习SLAM,想部署一下ORB-SLAM3,但是自己电脑是win11系统,因此就想着在win11上部署一下。但是网上看了一些教程,有一些博客,但是可能不适合我这种情况把,就很纠结。先说下结果,配置成功,过程极其痛苦。

weixin_44457768的博客 6097

PCA 主成分分析(Principal components analysis )

PCA 主成分分析(Principal components analysis ) 问题 1、 比如拿到一个汽车的样本,里面既有以“千米/每小时”度量的最大速度特征,也有“英里/小时”的最大速度特征,显然这两个特征有一个多余。 2、 拿到一个数学系的本科生期末考试成绩单,里面有三列,一列是对数学的兴趣程度,一列是复习时间,还有一列是考试成绩。我们知道要学好数学,需要有浓厚的兴趣,所以第二项与...

qq_24034545的博客 719

A2B音频总线在智能座舱中的应用

车载A2B链路音频是智能座舱的核心功能,涵盖车载音响、语音识别、e-Call、消噪及回声消除等应用,随着汽车智能网联化的发展,对音频的开发要求也越来越高,需要加入更先进、功能丰富的信息娱乐功能以满足消费者的用户体验。但传统的模拟并行音频信号传输方式,难以在功能增加与整车轻量化(线缆的重量及成本减少)之间取得均衡。这时候就需要A2B音频总线了。A2B音频总线用于连接车辆中的音频设备,如麦克风(MIC)、功放(AMP)、多媒体主机(Head Unit)和T-BOX等。通过一条低成本的非屏蔽双绞线UTP,进行跨距

怿星科技的博客 3935

保姆级教程:用CST 2023一步步复现一个1-8GHz Vivaldi天线(含参数优化与结果分析)

本文提供了一份详细的CST 2023教程,指导读者如何从零开始设计并优化1-8GHz Vivaldi天线。内容涵盖工程设置、参数化建模、仿真加速技巧以及性能优化策略,特别适合需要实现宽带天线设计的工程师和研究人员。通过实战案例,帮助用户掌握Vivaldi天线的核心设计要点和CST高级功能应用。

weixin_30800987的博客 619

主成分分析见解——Principal Components Analysis(PCA)

机器学习以及数据挖掘中非常有用的工具——PCA

AndrewHoux的专栏 1099

告别反复格式化!用Ventoy制作2025年终极启动盘,Windows/Linux/macOS一网打尽

本文详细介绍了如何使用Ventoy制作2025年终极多系统启动盘,彻底告别反复格式化U盘的烦恼。Ventoy通过创新的引导加载器架构,允许用户在一个U盘内同时存放并直接启动Windows、Linux、macOS等多种系统镜像和WePE等维护工具,实现真正的非破坏性管理和极高的U盘利用率。文章涵盖从安装配置、镜像库构建到安全启动设置等全流程实战指南。

weixin_29280219的博客 242

主成分分析(Principal Components Analysis, PCA)

PCA将D维特征X=[x1​,x2​,⋯,xN​]∈RD×N(xi​∈RD)映射到d(d≪D)维空间中(Y=[y1​,y2​,⋯,yN​]=WTX∈Rd×N,W=[w1​,w2​,⋯,wd​]∈RD×d,wi​∈RD),使得在降维后的空间中,特征的方差最大,即保留主成分。..............................

Ghy817920的博客 578

VTK学习(入门级教程,包括安装和使用)~持续更新中

说明:研究QT+VTK有段时间了,准备把学到的东西分享给大家,这篇博客以VS+QT+VTK为主进行展开学习的。

HXX904的博客 4759

CATIA文件的网页预览方案

CATIA是工业设计中广泛使用的专业软件,产出`.CATPart`或 `.CATProduct`等文件类型,当资产数量较大时,我们希望快捷预览这些文件,就有了`CATPart`文件网页预览的需求 但我们知道,网页上无法直接渲染`CATPart`这种复杂的文件, CATIA生成的文件(如 `CATPart` 和 `CATProduct`)不仅包含三维几何信息(例如点、线和曲面),还涵盖了丰富的元数据与专业设计特征。 那有没有办法,能实现CATIA文件在网页上的便捷预览?

weixin_44211633的博客 1451

PCA 主成分分析Principal components analysis

问题 1、 比如拿到一个汽车的样本,里面既有以“千米/每小时”度量的最大速度特征,也有“英里/小时”的最大速度特征,显然这两个特征有一个多余。 2、 拿到一个数学系的本科生期末考试成绩单,里面有三列,一列是对数学的兴趣程度,一列是复习时间,还有一列是考试成绩。我们知道要学好数学,需要有浓厚的兴趣,所以第二项与第一项强相关,第三项和第二项也是强相关。那是不是可以合并第一项和第二项呢? 3、 拿...

江州司马 1955

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Principal components analysis(PCA) 主成分分析

本文主要参考资料: CS229 lecture notes by Andrew Ng UFLDL主成分分析 by Andrew Ng 《机器学习实战》第13章“使用PCA来简化数据” 1. 运用背景在机器学习中,PCA是一种常用的方法。其目的是将 nn 维的原始数据近似的用 kk 维来表示,而且近似表示后对数据的损失尽可能的小。我们可以假设原始的 nn 维数据 x(i)x^{

白辰甲 2909

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

PCA(Principal components analysis)/主成分分析原理

该笔记主要参考了下面六篇文章: https://blog.youkuaiyun.com/zouxiaolv/article/details/100590725?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.edu_weight&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLear

C/C++、嵌入式开发、深度学习算法、模型部署与推理优化 559

廖雪峰Python教程[完整版]

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

canoco5主成分分析步骤_PCA(Principal Components Analysis)主成分分析

上一篇提到的人脸识别中,我们在使用SVM支持向量机做人脸分类之前使用到PCA提取人脸数据中的主要成分,降低计算的维度,那么具体PCA是如何提取的呢?下文了解一下。PCA is a method to project data in a higher dimensional space into lower dimensional space by maximizing the variance o...

weixin_39676348的博客 1843
上一篇: K均值聚类 K-means Clustering
下一篇: 因子分析 FA | Factor Analysis
JasonH2021
博客等级 码龄5年 805粉丝 154原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值