PCA(主成分分析)数据降维技术代码详解

引言

随着大数据时代的到来,我们经常会面临处理高维数据的问题。高维数据不仅增加了计算复杂度,还可能引发“维度灾难”。为了解决这一问题,我们需要对数据进行降维处理,即在不损失太多信息的前提下,将数据从高维空间映射到低维空间。主成分分析(PCA,Principal Component Analysis)就是一种常用的数据降维方法。

简而言之::PCA降维就是把复杂的高维数据简化成更容易理解的低维数据,同时保留最重要的信息,让我们能够更方便地分析和处理这些数据。 

下图为例,所有的数据是分布在三维空间中,PCA将三维数据映射到二维平面u,二维平面由向量<u1,u2>表示,u1与u2垂直

代码演示: 

import numpy as np
from sklearn.decomposition import PCA# 创建一个包含五个数据点和两个特征的二维NumPy数组
data = np.array([[1, 1], [1, 3], [2, 3], [4, 4], [2, 4]])# 创建一个PCA对象,通过设置 n_components 参数为 0.9,表示要保留90%的原始数据的方差
pca = PCA(n_components=0.9)  # 提取90%特征# 对输入的数据进行PCA模型拟合,计算主成分
pca.fit(data)# 使用拟合好的PCA模型对原始数据进行转换,将数据压缩到新的特征空间,压缩后的结果存储在变量 new 中
new = pca.fit_transform(data)  # 压缩后的矩阵# 打印压缩后的数据
print("Compressed Data:")
print(new)# 打印每个选定主成分解释的方差比例。在这里,由于指定了 n_components=0.9,它将打印每个主成分解释的方差比例,直到累积解释的方差达到90%为止
print("Explained Variance Ratios:")
print(pca.explained_variance_ratio_)

 压缩后的矩阵:

经过PCA降维后的数据。这个矩阵包含了降维后的数据点在新的特征空间中的表示。

简单来说,每一行对应于原始数据中的一个数据点,而每一列对应于新的主成分(新的特征)。在这个例子中,由于设置了 n_components=0.9,只有第一个主成分被保留,因此新的特征空间只有一个维度。

主成分解释的方差比例:

在提供的数据集 data 中,每个数据点有两个特征。当应用PCA进行降维时,PCA会尝试找到一个新的特征空间,其中第一个主成分(第一个新特征)具有最大的方差,而第二个主成分(第二个新特征)具有次大的方差。详细推导过程可以看我的这篇博客:PCA降维的推导(超详细)_AI_dataloads的博客-CSDN博客

在数据中,PCA计算出的第一个主成分(新特征)具有约0.83的方差,而第二个主成分具有约0.17的方差。因此,第一个主成分保留了数据中大部分的变化和信息,而第二个主成分包含的信息相对较少。因此,降维后,只保留了第一个主成分,而第二个主成分的信息被丢弃了。

这就是为什么降维后只剩下一个主成分,即[0.83333333, 0.16666667]。这意味着降维后的数据集仅包含一个主成分,其中第一个主成分的贡献占主导地位,而第二个主成分的贡献相对较小,因此被删除。这是PCA的工作原理,它试图捕获数据中最重要的变化并减少维度以减小冗余。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/140526.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NFTScan | 11.06~11.12 NFT 市场热点汇总

欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总。 周期&#xff1a;2023.11.06~ 2023.11.12 NFT Hot News 01/ 《辛普森一家》提及 NFT 及区块链&#xff0c;相关 NFT 地板价涨至 0.35 ETH 11 月 6 日&#xff0c;据 Coindesk 报道&#xff0c;美国时间周…

thinkphp8 数据库的连接

账号&#xff1a;root 密码&#xff1a;自己设置 http://localhost:888/index.php当出现这个并且能登陆就算成功了。 回到项目config/database.php .env 里面&#xff08;如果已经.example.env 改成了.env,则改下边&#xff0c;db_name改成你的数据库表名&#xff09; 多个…

HTTP服务器——tomcat的安装和使用

文章目录 前言下载tomcattomcat 文件bin 文件夹conf 文件lib 文件log 文件temp 文件webapps 文件work 目录 如何使用 tomcat 前言 前面我们已经学习了应用层协议 HTTP 协议和 HTTP 的改进版——HTTPS&#xff0c;这些协议是我们在写与服务器相关的代码的时候息息相关的&#x…

监控视频片段合并完整视频|FFmpeg将多个视频片段拼接完整视频|PHP自动批量拼接合并视频

关于环境配置ffmpeg安装使用的看之前文章 哔哩哔哩缓存转码|FFmpeg将m4s文件转为mp4|PHP自动批量转码B站视频 <?php date_default_timezone_set("PRC"); header("Content-type: text/html; charsetutf-8"); set_time_limit(0);// 遍历获取文件 functi…

微服务面试题

微服务面试题 文章目录 微服务面试题微服务微服务面试题 微服务 微服务是一种软件开发的方法&#xff0c;它将一个大型的应用程序分解为多个小型的、独立的服务&#xff0c;每个服务都有自己的功能、技术栈和数据库。微服务之间通过网络协议&#xff08;如 HTTP、消息队列等&a…

STM32两轮平衡小车原理详解(开源)

一、引言 关于STM32两轮平衡车的设计&#xff0c;我想在读者阅读本文之前应该已经有所了解&#xff0c;所以本文的重点是代码的分享和分析。至于具体的原理&#xff0c;我觉得读者不必阅读长篇大论的文章&#xff0c;只需按照本文分享的代码自己亲手制作一辆平衡车&#xff0c…

响应式摄影科技传媒网站模板源码带后台

模板信息&#xff1a; 模板编号&#xff1a;540 模板编码&#xff1a;UTF8 模板颜色&#xff1a;黑白 模板分类&#xff1a;摄像、婚庆、家政、保洁 适合行业&#xff1a; 模板介绍&#xff1a; 本模板自带eyoucms内核&#xff0c;无需再下载eyou系统&#xff0c;原创设计、手…

[WSL] 安装hive3.1.2成功后, 使用datagrip连接失败

org.apache.hadoop.ipc.RemoteException:User: xxx is not allowed to impersonate anonymous 下载driver-hive-jdbc-3.1.2-standalone 解决 修改hadoop 配置文件 etc/hadoop/core-site.xml,加入如下配置项 <property><name>hadoop.proxyuser.你的用户名.hosts…

跨越编程界限:C++到JavaSE的平滑过渡

JDK安装 安装JDK 配置环境变量&#xff1a; Path 内添加 C:\Program Files\Java\jdk1.8.0_201\bin 添加 JAVA_HOME C:\Program Files\Java\jdk1.8.0_201 添加 CLASSPATH .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar 第一个Java程序 HelloWorld.java public class…

Linux之gdb

gdb就是一个Linux的调试工具&#xff0c;类似与vs里面的调试 可执行程序也有格式&#xff0c;不是简单的二进制堆砌

软件测试 | 测试用例编写思路

文章目录 用例编写 用例编写 用例名称&#xff1a;【版本号】页面-页面&#xff0c;功能校验所属模块&#xff1a;2023年/一季度/版本号前置条件&#xff1a; 用户登录管理后台依次点击菜单&#xff1a;仓库管理—员工管理 步骤描述&#xff1a; 点击 [] 按钮 1.1.1 1.2.2 点…

Excel函数-将A1中的字符串剔除B1中的字符串

比如A2中是类型单位&#xff0c;B2中是单位&#xff0c;在C2中体现A2-B2的结果&#xff0c;即大米 公式&#xff1a;SUBSTITUTE(A2,B2,“”) SUBSTITUTE函数功能&#xff1a;将字符串中的部分字符用新字符替换&#xff0c;替换序号忽略说明进行全部替换 结构&#xff1a;SUB…

Android unable to find valid certification path to requested target

Android Studio 无法联网解决方法 在开发 Android 应用时&#xff0c;经常需要使用 Android Studio 进行开发和调试。然而&#xff0c;有时候我们可能会遇到 Android Studio 无法联网的问题&#xff0c;这会导致无法下载依赖库、更新 SDK 等操作。在本文中&#xff0c;我将向你…

01-解码-H264转YUV

整体方案&#xff1a; 采集端&#xff1a;摄像头采集&#xff08;YUV&#xff09;->编码&#xff08;YUV转H264&#xff09;->RTMP推流 客户端&#xff1a;RTMP拉流->解码&#xff08;H264转YUV&#xff09;->YUV显示&#xff08;SDL2&#xff09; H264码流转YUV是…

设计模式之禅之设计模式-原型模式

设计模式之禅之设计模式-原型模式 一&#xff1a;原型模式的定义 ​ 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 ​ 原型模式(Prototype Pattern)的简单程度仅次于单例模式和迭代器模式。正是由于简单,使用的场景才非常地多。 ​ 原型模式的核心是一…

SSM德庆县乡村教育图书管理系统-计算机毕设 附源码 24668

SSM德庆县乡村教育图书管理系统 摘 要 大数据时代下&#xff0c;数据呈爆炸式地增长。为了迎合信息化时代的潮流和信息化安全的要求&#xff0c;利用互联网服务于其他行业&#xff0c;促进生产&#xff0c;已经是成为一种势不可挡的趋势。在德庆县乡村教育图书管理的要求下&…

23种设计模式 - 模板方法模式

1. 认识模板方法模式 1.1 模式定义 定义一个操作算法中的框架&#xff0c;而将这些步骤延迟加载到子类中。 它的本质就是固定算法框架。 1.2 解决何种问题 让父类控制子类方法的调用顺序 模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 1.3…

发明专利申请费用是多少

一、申请发明专利的费用是多少 1、申请费&#xff1a; 申请费950元(含印刷费50元) 2、审查费 该项费用仅当申请发明专利时缴纳&#xff0c;申请实用新型及外观设计时不用缴纳。 发明申请审查费2500元 3、专利登记费 申请人在接到专利授权通知书和办理登记手续通知书后&a…

卡尔曼家族从零解剖-(06)一维卡尔曼滤波编程实践

讲解关于slam一系列文章汇总链接:史上最全slam从零开始&#xff0c;针对于本栏目讲解的 卡尔曼家族从零解剖 链接 :卡尔曼家族从零解剖-(00)目录最新无死角讲解&#xff1a;https://blog.csdn.net/weixin_43013761/article/details/133846882 文末正下方中心提供了本人 联系…

【工具】Java计算图片相似度

【工具】Java图片相似度匹配工具 方案一 通过像素点去匹配 /*** * param file1Url 图片url* param file2Url 图片url* return*/public static double img相似度Url(String file1Url, String file2Url){InputStream inputStream1 HttpUtil.createGet(file1Url).execute().…