PCA贡献率

news2024/9/20 16:03:51

什么是 PCA?

PCA(Principal Component Analysis, 主成分分析)是一种常用的数据降维技术。它通过找到一组新的互不相关的正交轴(主成分),将高维数据映射到低维空间。这些新轴是按照数据的方差大小排列的,首个主成分捕获了数据中最大的信息量,其后的每个主成分依次捕获了剩余数据中最大的信息量。

PCA 的主要目标有以下几个:

  1. 降维:在保持数据主要信息的情况下,减少数据的维度,减少数据的复杂性和冗余。
  2. 特征提取:将原始特征映射到新的特征空间,使新特征能够更好地描述数据。
  3. 噪声消除:降低数据维度的同时,可以消除高维数据中的噪声。

PCA 的贡献率是什么?

PCA 的每个主成分(Principal Component)都代表了原始数据中某一部分的方差,贡献率是指某个主成分所解释的方差占数据总方差的比例。公式如下:

贡献率=主成分的方差比上数据总方差

贡献率越高,表示该主成分包含的数据信息越多。因此,我们可以使用前几个主成分来代替原始的所有特征,以减少数据维度。

PCA 的贡献率有以下几个特点:

  • 累积贡献率:前 k 个主成分的贡献率之和,被称为累积贡献率。它衡量的是前 k 个主成分能够解释的数据方差比例。通常,我们希望累积贡献率能够达到 90% 或更高,以确保在降维的同时保留大部分信息。

  • 排序规则:PCA 的主成分是按照贡献率从大到小排序的。第一个主成分拥有最高的贡献率,接下来每个主成分的贡献率依次递减。

如何计算 PCA 的贡献率?

在 Python 中,我们可以使用 sklearn 库中的 PCA 模块来计算贡献率。以下是一个简单的代码示例:

import numpy as np
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler

# 假设有一个 10 个样本、5 个特征的示例数据
data = np.random.randn(10, 5)

# 数据标准化
scaler = StandardScaler()
data_scaled = scaler.fit_transform(data)

# 使用 PCA
pca = PCA(n_components=5)
pca.fit(data_scaled)

# 获取每个主成分的贡献率
explained_variance_ratio = pca.explained_variance_ratio_

# 输出贡献率
for i, ratio in enumerate(explained_variance_ratio):
    print(f"主成分 {i + 1} 的贡献率: {ratio:.4f}")

# 输出总贡献率
cumulative_variance = np.cumsum(explained_variance_ratio)
print(f"总贡献率: {sum(explained_variance_ratio):.2f}")

输出结果

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

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

相关文章

让Tkinter更美观:教你同步Tkinter窗口与弹窗图标(Tkinter同步主窗口与Messagebox的图标)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 文章内容 📒📝 步骤1:主窗口图标📝 步骤2:messagebox 图标📝 示例代码📝 实现原理与代码解释⚓️ 相关链接 ⚓️📖 介绍 📖 你有没有注意到,在开发软件图形界面时,会需要弹出一些提示框,而这些提示框的图标总…

阿里国际发布最新版多模态大模型Ovis,拿下开源第一

看一眼菜品图就知道怎么做、能给植物看病、能把手写英文准确翻译成中文、还能精准分析财报数据……多模态能力再次升级!阿里国际AI团队发布了一款多模态大模型Ovis,在图像理解任务上不断突破极限,多种具体的子类任务中均达到了SOTA&#xff0…

【Linux】-----进程第一弹

目录 概念 描述进程-PCB 查看进程 获取进程标识符 终止进程 fork创建进程 返回值说明 进程的状态 ①运行状态(R) ②浅度睡眠(S) ③深度睡眠(D) ④暂停状态(T) ⑤僵尸状态(Z)(重点) 是什么? 举例 危害 孤儿进程 ⑥死亡状态(X) 概念 课本上对于进程…

如何保护电脑文件夹?多种方法保护数据安全

在数字化时代,电脑中的文件夹往往存储着我们最私密、最重要的数据,如个人文档、照片、工作资料等。因此,保护这些文件夹免受未经授权的访问、盗窃或损坏变得尤为重要。本文将介绍多种方法来有效保护电脑文件夹及其数据安全。 文件夹保护3000 …

MySQL中的比较条件

符号!也能够表示不等于条件。 示例一:查询employees表中员工薪水大于等于3000的员工的姓名与薪水。 select l ast_name,salary from employees where salary > 3000; 示例二:查询employees表中员工薪水不等于5000的员工的姓名与薪水。 select las…

人工智能在肿瘤浸润淋巴细胞研究中的最新进展|文献速递·24-09-20

小罗碎碎念 文献速递|目录 一、胆道癌治疗应答的新型AI生物标志物:肿瘤浸润性淋巴细胞的空间分布 补充文献:22年发表于JCO的一篇类似文献 二、生物标志物在肝细胞癌管理中的作用:从发现到临床应用 三、肿瘤样本中免疫细胞浸润水…

C语言进阶【5】---数据在内存中的存储【2】(小数存储很难吗?)

本章概述 本章引要练习 浮点数的存储浮点数的取出小补充题目解析彩蛋时刻!!! 本章引要 常见的浮点数:3.1415,1E10等。其中,1E10是科学计数法的形式,它也就等于1*10^10。小数数据类型&#xff1…

块匹配算法简介(上)

图像中的运动估计方法大致分为两类:光流法和块匹配算法(BMA,Block Matching Algorithm)。本文将介绍BMA的相关内容,包括基本原理、相似度计算准则与常见的几种搜索方法,如三步法、四步法、钻石搜索法等。 1. 背景 视频中相邻帧往往存在大量的相似内容,即只有局部的一些…

【CustomPainter】渐变圆环

说明 实现一个渐变圆环,起点位置为- π / 2。 效果 源码 GradientCircularPainter1 class GradientCircularPainter1 extends CustomPainter {final double progress;GradientCircularPainter1(this.progress);overridevoid paint(Canvas canvas, Size size) {c…

零基础到项目实战:Node.js版Selenium WebDriver教程

在当今数字化时代,Web应用程序的质量和性能至关重要。为了确保这些应用的可靠性,自动化测试成为一种不可或缺的工具。Selenium,作为自动化测试领域的瑰宝,为我们提供了无限可能。本教程将深入介绍Selenium,以及如何结合…

如何删除EXCELL文件中的空行?

1,选择某一列 2,点击《开始》《查找和选择》>《定位条件》,调出《定位条件》的选择框; 3,在定位条件选项框,选择《空值》; 4,找到变灰被选中的某一行,右击《删除》 5&…

配置管理之configmap

一 、云原生要素——配 置分离 ConfigMap:存储明文配置 Secret:存储密文、敏感配置、用户重要信息和密码 等。 配置更新直接同步容器,热加载,无需重启pod或者容 器;镜像和配置分离,可单独修改发布 二、ConfigMap 1.…

详细分析Pytorch中的register_buffer基本知识(附Demo)

目录 1. 基本知识2. Demo3. 与自动注册的差异3.1 torch.nn.Parameter3.2 自动注册子模块3.3 总结 1. 基本知识 register_buffer 是 PyTorch 中 torch.nn.Module 提供的一个方法,允许用户将某些张量注册为模块的一部分,但不会被视为可训练参数。这些张量…

2区“发稿大户”!SCISSCI双检,3天上线出版,在这里,不用担心创新性不足~

【SciencePub学术】眼瞅评职晋升最后期限就在眼前,小编今天就给大家带来了一本“百发百中”的救命神刊~ 01 期刊详情 【期刊简介】IF:2.0-3.0 JCR2区中科院4区 【出版社】MDPI出版社 【自引率】8.30% 【类别】医学 【INDEX】SCIE&SSCI在检 02…

es由一个集群迁移到另外一个集群es的数据迁移

迁移es的数据 改下index的索引 就可以了。 查询 用curl -u就可以查询了

[数据集][目标检测]不同颜色的安全帽检测数据集VOC+YOLO格式7574张5类别

重要说明:数据集里面有2/3是增强数据集,请仔细查看图片预览,确认符合要求在下载,分辨率均为640x640 数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件…

微店商品列表API接口实战指南

微店商品列表数据接口是一种允许开发者在其应用程序中调用微店店铺所有商品数据的 API 接口。通过这个接口,开发者可以获取到微店店铺内所有商品的信息,包括但不限于商品的 ID、标题、价格、库存、销量、详情描述、图片等。以下是对微店商品列表数据接口…

如何确保Java程序分发后不被篡改?使用JNI对Java程序进行安全校验

前言 众所周知,Java/Kotlin编译后会编译成smali,使用Jadx这类的反编译工具或者Hook工具就能很轻松的把我们的软件安全校验给破解了。 为了防止这种情况发生,我们一般会将核心代码使用C编写,然后使用JNI技术,使用Java…

TCP报文格式

RFC9293协议规范,规定的TCP格式如图1, 对比RFC793规定的格式,控制位从6bit变成了8bit 图1,图片来源:datatracker.ietf.org 图2为,可对照的中文版TCP格式,中文版参照的是RFC793 图2 重点…

htop 命令:系统状态监控

一、命令简介 ​htop ​是一个互动式的进程查看器,它是 top ​命令的增强版本,提供了更丰富的功能和更好的用户界面。htop ​显示了系统的实时进程和资源使用情况(比如 CPU 和 memory 占用情况),允许用户进行交互式操…