主成分分析的应用之sklearn.decomposition模块的PCA函数

news2025/5/19 20:39:35

主成分分析的应用之sklearn.decomposition模块的PCA函数

一、模型建立整体步骤

二、数据

2297.86	589.62	474.74	164.19	290.91	626.21	295.20	199.03
2262.19	571.69	461.25	185.90	337.83	604.78	354.66	198.96
2303.29	589.99	516.21	236.55	403.92	730.05	438.41	225.80
2308.70	551.14	476.45	293.23	406.44	785.74	494.04	254.10
2337.65	589.28	509.82	334.05	442.50	850.15	563.72	246.51
2418.96	618.60	454.20	429.60	615.00	1065.12	594.48	164.28
2702.34	735.01	475.36	459.69	790.26	1025.99	741.60	187.81
3015.32	779.68	474.15	537.95	865.45	1200.52	903.22	196.77
3135.65	849.53	583.50	629.32	929.92	1391.11	882.41	221.85
3415.92	1038.98	615.74	705.72	976.02	1449.49	954.56	242.26

三、代码实现(含详细注释)

#程序文件ex12_1.py
import numpy as np
from sklearn.decomposition import PCA
from scipy.stats import zscore

a=np.loadtxt('data12_1.txt')
# scipy.stats的zscore函数对数组a中的数据进行标准化处理,并将结果赋值给变量b。
# 标准化处理是将数据转换为以0为均值,以标准差为1的分布,
# 这样做的目的是消除不同量纲的影响,使得数据具有可比性。
# zscore函数计算每个值与其均值的差,然后除以该数据的标准差,
# 从而得到Z分数(也称为标准分数)。
# 参数ddof=1指定在计算标准差时使用分母N-1(其中N是数据的数量),这是统计学中的样本标准差计算方式(无偏估计)。
# 如果ddof=0,则使用N作为分母计算标准差,这通常对应于总体标准差。
b=zscore(a, ddof=1)   #数据标准化
# 创建一个PCA实例,使用数据集b来“拟合”这个实例(即计算PCA转换所需的参数)
md=PCA().fit(b)  #构造并拟合模型
print('特征值为:', md.explained_variance_)
print('各主成分贡献率:', md.explained_variance_ratio_)
# .components_:这是md对象的一个属性,它通常存储了数据分解或降维后的结果。在PCA的上下文中,components_属性包含了主成分的方向(或者说是“轴”),
# 这些主成分是用来解释原始数据集方差的最大方向。每个主成分都是一个向量,向量的长度等于原始数据的特征数。
xs1=md.components_  #提出各主成分系数,每行是一个主成分
print('各主成分系数:\n',xs1)

# axis=0代表沿着行的方向(即垂直方向,对列进行求和),而axis=1代表沿着列的方向(即水平方向,对行进行求和)。
# 因此,axis=1意味着会对xs1的每一行进行求和。
check=xs1.sum(axis=1,keepdims=True)  #计算各个主成分系数的和
# xs1 * np.sign(check):这个操作是逐元素的乘法。
# xs1数组中的每个元素与np.sign(check)数组中对应位置的元素相乘。这意味着:
# 如果check中的某个元素为正,xs1中对应的元素保持不变(因为乘以1)。
# 如果check中的某个元素为负,xs1中对应的元素取反(因为乘以-1)。
# 如果check中的某个元素为零,xs1中对应的元素将变为零(因为乘以0)。
xs2=xs1*np.sign(check)  #调整主成分系数,和为负时乘以-1
print('调整后的主成分系数:', xs2)

三、结果及其分析

特征值为: [6.27943341e+00 1.30599080e+00 2.74277611e-01 9.97624700e-02
 2.31016993e-02 1.22233669e-02 4.69357480e-03 5.17066158e-04]
各主成分贡献率: [7.84929176e-01 1.63248850e-01 3.42847014e-02 1.24703088e-02
 2.88771241e-03 1.52792086e-03 5.86696851e-04 6.46332697e-05]
各主成分系数:
 [[ 0.39186166  0.38439344  0.3059243   0.39231584  0.38537825  0.38961322
   0.38389911  0.05908768]
 [-0.0210478   0.02214509  0.47783697 -0.08905605 -0.19878256 -0.1043221
  -0.11376475  0.83634169]
 [ 0.14762176  0.39254883  0.57745685 -0.20021017 -0.15914777 -0.1347164
  -0.4303164  -0.47108809]
 [ 0.47832186  0.48941314 -0.44488132 -0.27708115  0.02393188 -0.46564673
   0.07989617  0.18222681]
 [-0.09762149 -0.27604773  0.34873203 -0.35508891  0.52307577 -0.45643408
   0.4158212  -0.10824944]
 [ 0.70552867 -0.53549607  0.049896   -0.32914209 -0.14716623  0.28505603
  -0.02367193 -0.03426265]
 [-0.08102349  0.10492282  0.11905975 -0.07206231 -0.68369188 -0.02060535
   0.68706375 -0.15212634]
 [ 0.28557308 -0.29011082  0.09180137  0.6940343  -0.15286467 -0.55886444
  -0.05098258 -0.07665729]]
调整后的主成分系数: [[ 0.39186166  0.38439344  0.3059243   0.39231584  0.38537825  0.38961322
   0.38389911  0.05908768]
 [-0.0210478   0.02214509  0.47783697 -0.08905605 -0.19878256 -0.1043221
  -0.11376475  0.83634169]
 [-0.14762176 -0.39254883 -0.57745685  0.20021017  0.15914777  0.1347164
   0.4303164   0.47108809]
 [ 0.47832186  0.48941314 -0.44488132 -0.27708115  0.02393188 -0.46564673
   0.07989617  0.18222681]
 [ 0.09762149  0.27604773 -0.34873203  0.35508891 -0.52307577  0.45643408
  -0.4158212   0.10824944]
 [-0.70552867  0.53549607 -0.049896    0.32914209  0.14716623 -0.28505603
   0.02367193  0.03426265]
 [ 0.08102349 -0.10492282 -0.11905975  0.07206231  0.68369188  0.02060535
  -0.68706375  0.15212634]
 [-0.28557308  0.29011082 -0.09180137 -0.6940343   0.15286467  0.55886444
   0.05098258  0.07665729]]

由结果可知前两个特征值的累积量贡献率达到了94.82%,主成分分析效果很好,因此后续直接对这两个主成分的特征值进行详细的分析即可。

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

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

相关文章

1. Go 语言环境安装

👑 博主简介:高级开发工程师 👣 出没地点:北京 💊 人生目标:自由 ——————————————————————————————————————————— 版权声明:本文为原创文章&#xf…

IP协议深度解析:互联网世界的核心基石

作为互联网通信的基础协议,IP(Internet Protocol)承载着全球99%的网络数据流量。本文将深入剖析IP协议的核心特性、工作原理及演进历程,通过技术原理、协议对比和实战案例分析,为您揭示这个数字世界"隐形交通规则…

Oracle DBMS_STATS.GATHER_DATABASE_STATS 默认行为

Oracle DBMS_STATS.GATHER_DATABASE_STATS 默认行为 DBMS_STATS.GATHER_DATABASE_STATS的默认选项究竟是’GATHER’还是’GATHER AUTO’?这个问题非常重要,因为理解默认行为直接影响统计信息收集策略。 一 官方文档确认 根据Oracle 19c官方文档&#…

C++天空之城的树 全国信息素养大赛复赛决赛 C++小学/初中组 算法创意实践挑战赛 内部集训模拟题详细解析

C++天空之城的树 全国青少年信息素养大赛 C++复赛/决赛模拟练习题 博主推荐 所有考级比赛学习相关资料合集【推荐收藏】1、C++专栏 电子学会C++一级历年真题解析

GO语言语法---switch语句

文章目录 基本语法1. 特点1.1 不需要break1.2 表达式可以是任何类型1.3 省略比较表达式1.4 多值匹配1.5 类型switch1.6 case穿透1.7 switch后直接声明变量1.7.1 基本语法1.7.2 带比较表达式1.7.3 不带比较表达式1.7.4 结合类型判断 1.8 switch后的表达式必须与case语句中的表达…

开疆智能Profient转ModbusTCP网关连接ABB机器人MODBUS TCP通讯案例

本案例是通过开疆智能Profinet转ModbusTCP网关将西门子PLC与ABB机器人进行通讯 因西门子PLC采用Profinet协议,而ABB机器人采用的是ModbusTCP通讯。故采取此种方案。 配置过程: 1.MODBUS/TCP基于以太网,故ABB机器人在使用时需要有616-1PCIN…

解决qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed

可以参考:解决qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed-CSDN博客 讲的是程序执行目录下可能缺少了: libssl-1_1-x64.dll 和 libcrypto-1_1-x64.dll 库文件,将其复制到可执行文件exe的同级目录下即可…

Text2SQL:自助式数据报表开发---0517

Text2SQL技术 早期阶段:依赖于人工编写的规则模板来匹配自然语言和SQL语句之间的对应关系 机器学习阶段:采用序列到序列模型等机器学习方法来学习自然语言与SQL之间的关系 LLM阶段:借助LLM强大的语言理解和代码生成能力,利用提示…

使用Visual Studio将C#程序发布为.exe文件

说明 .exe 是可执行文件(Executable File)的扩展名。这类文件包含计算机可以直接运行的机器代码指令,通常由编程语言(如 C、C、C#、Python 等)编译或打包生成。可以用于执行自动化操作(执行脚本或批处理操…

React Flow 边的基础知识与示例:从基本属性到代码实例详解

本文为《React Agent:从零开始构建 AI 智能体》专栏系列文章。 专栏地址:https://blog.csdn.net/suiyingy/category_12933485.html。项目地址:https://gitee.com/fgai/react-agent(含完整代码示​例与实战源)。完整介绍…

oracle 资源管理器的使用

14.8.2资源管理器的使用 资源管理器控制CPU资源使用说明:  第一种分配方法:EMPHASIS CPU 分配方法确定在资源计划中对不同使用者组中的会话的重视程度。CPU占用率的分配级别为从1 到8,级别1 的优先级最高。百分比指定如何将CPU 资源分配给每…

贝叶斯优化Transformer融合支持向量机多变量回归预测,附相关性气泡图、散点密度图,Matlab实现

贝叶斯优化Transformer融合支持向量机多变量回归预测,附相关性气泡图、散点密度图,Matlab实现 目录 贝叶斯优化Transformer融合支持向量机多变量回归预测,附相关性气泡图、散点密度图,Matlab实现效果一览基本介绍程序设计参考资料…

Docker配置SRS服务器 ,ffmpeg使用rtmp协议推流+vlc拉流

目录 演示视频 前期配置 Docker配置 ffmpeg配置 vlc配置 下载并运行 SRS 服务 推拉流流程实现 演示视频 2025-05-18 21-48-01 前期配置 Docker配置 运行 SRS 建议使用 Docker 配置 Docker 请移步: 一篇就够!Windows上Docker Desktop安装 汉化完整指…

一个stm32工程从底层上都需要由哪些文件构成

原文链接:https://kashima19960.github.io/2025/05/17/stm32/一个stm32工程从底层上都需要由哪些文件构成/ 前言 我最近因为做课设要用到stm32,所以去找了一些开源的stm32工程来看看,然后发现现在新版的keil mdk对于环境的配置跟以前 相比发…

[Mac] 开发环境部署工具ServBay 1.12.2

[Mac] 开发环境部署工具ServBay 链接:https://pan.xunlei.com/s/VOQS0LDsC_J6XU4p-R6voF6YA1?pwdnbyg# 非常给力的本地 Web 开发/测试环境工具:ServBay。之前我们本地搭个 PHP MySQL Nginx 环境,或者搞个 PHP web 环境啥的,不…

商城小程序源码介绍

今天要为大家介绍一款基于ThinkPHP、FastAdmin以及UniApp开发的商城小程序源码,这款源码在设计和功能上都有不俗的表现,非常适合想要搭建线上商城的开发者。 该源码采用了ThinkPHP作为后端框架,利用其强大的性能和灵活性,保障了系…

科技项目验收测试对软件产品和企业分别有哪些好处?

科技项目验收测试是指在项目的开发周期结束后,针对项目成果进行的一系列验证和确认活动。其目的是确保终交付的产品或系统符合预先设定的需求和标准。验收测试通常包括功能测试、性能测试、安全测试等多个方面,帮助企业评估软件在实际应用中的表现。 科…

汽车零部件冲压车间MES一体机解决方案

在当前制造业升级的大背景下,提升生产效率、实现精细化管理已成为企业竞争力的关键。特别是在汽车零部件制造领域,冲压车间作为生产流程中的重要一环,其生产数据的实时采集与分析对于确保产品质量、优化生产节拍、降低运营成本至关重要。今天…

hysAnalyser 从MPEG-TS导出ES功能说明

摘要 hysAnalyser 是一款特色的 MPEG-TS 数据分析工具。本文主要介绍了 hysAnalyser 从MPEG-TS 中导出选定的 ES 或 PES 功能(版本v1.0.003),以便用户知悉和掌握这些功能,帮助分析和解决各种遇到ES或PES相关的实际问题。hysAnalyser 支持主流的MP1/MP2/…

家里wifi不能上网或莫名跳转到赌博及色情网站就是域名被劫持、DNS被污染了

文章目录 定义上网过程域名被劫持可能阶段案例排查工具 解决方法清除系统DNS缓存查看DNS缓存清除DNS缓存 登录路由器,设置DNS可用的DNS地址: 找网络运营商报警 定义 DNS(Domain Name System,域名系统)劫持&#xff0c…