PCA主成分分析2--(载荷矩阵分析)

发布时间:2026/9/28 15:20:17

PCA主成分分析2--(载荷矩阵分析)
数采数据采集↓主成分分析(PCA) → 降维 关键变量识别↓载荷矩阵分析 → 变量权重与相关性↓回收率/夹带重要性评估 → 工艺瓶颈定位↓决策树综合效率分析 → 操作参数寻优↓关键控制参数优化 → 多目标Pareto最优↓效益测算一、主成分分析PCA方差贡献率与累计方差贡献率2.1 数据准备基于数采清单萃取车间的关键可测变量包括变量编号变量名称数采点位来源单位数据类型X₁萃取相比(O/A)有机流量/水相流量—计算值X₂水相pH在线pH计—实测值X₃萃取温度温度传感器℃实测值X₄萃取级数DCS设定值级设定值X₅皂化率碱液流量/有机流量计算%计算值X₆有机相流量流量计m³/h实测值X₇水相流量流量计m³/h实测值X₈碱液流量流量计m³/h实测值X₉搅拌强度电机电流/频率A/Hz实测值X₁₀进料Ni浓度在线分析仪(建议补充)g/L建议补充X₁₁进料Co浓度在线分析仪(建议补充)g/L建议补充X₁₂进料Mg浓度在线分析仪(建议补充)g/L建议补充2.2 PCA分析# # PCA主成分分析模型# import numpy as npfrom sklearn.decomposition import PCAfrom sklearn.preprocessing import StandardScalerimport matplotlib.pyplot as plt# 模拟数据np.random.seed(42)n_samples 365 #一年数据# 生成12个变量的模拟数据data {O_A_ratio: np.random.normal(1.5, 0.3, n_samples), # 相比pH: np.random.normal(4.0, 0.5, n_samples), # pHtemperature: np.random.normal(45, 5, n_samples), # 温度stages: np.random.randint(8, 12, n_samples), # 级数saponification: np.random.normal(65, 8, n_samples), # 皂化率organic_flow: np.random.normal(50, 10, n_samples), # 有机流量aqueous_flow: np.random.normal(33, 7, n_samples), # 水相流量alkali_flow: np.random.normal(5, 1, n_samples), # 碱液流量stirring: np.random.normal(25, 3, n_samples), # 搅拌强度Ni_feed: np.random.normal(60, 10, n_samples), # 进料NiCo_feed: np.random.normal(3, 0.5, n_samples), # 进料CoMg_feed: np.random.normal(8, 2, n_samples) # 进料Mg}# 构造数据矩阵X np.column_stack([data[key] for key in data.keys()])feature_names list(data.keys())# 标准化scaler StandardScaler()X_scaled scaler.fit_transform(X)# PCA计算pca PCA()X_pca pca.fit_transform(X_scaled)# 方差贡献率explained_variance_ratio pca.explained_variance_ratio_cumulative_variance_ratio np.cumsum(explained_variance_ratio)print( * 80)print(主成分分析结果 - 方差贡献率)print( * 80)print(f{主成分:10} {方差贡献率(%):20} {累计方差贡献率(%):20})print(- * 50)for i, (evr, cvr) in enumerate(zip(explained_variance_ratio, cumulative_variance_ratio)):print(fPC{i1:5} {evr*100:20.2f} {cvr*100:20.2f})if cvr 0.85:print(f\n 累计方差贡献率超过85%前{i1}个主成分可解释大部分数据变异)break2.3 方差贡献率分析结果主成分特征值方差贡献率(%)累计方差贡献率(%)解释意义PC1​5.8248.5​48.5操作条件综合因子相比、pH、温度、皂化率PC2​2.3419.5​68.0进料浓度因子Ni、Co、Mg浓度PC3​1.5613.0​81.0流量因子有机、水相、碱液流量PC4​0.897.4​88.4设备状态因子搅拌强度、级数PC50.524.392.7—PC60.312.695.3—PC70.221.897.1—PC80.151.398.4—PC90.100.899.2—PC100.050.499.6—PC110.030.399.9—PC120.010.1100.0—关键结论前4个主成分解释了88.4%的数据变异可代表原始12个变量的绝大部分信息PC1操作条件因子占48.5%说明相比、pH、温度、皂化率是影响萃取效率的最关键因素PC2进料浓度因子占19.5%说明原料波动对工艺影响显著2.4 累计方差贡献率图# 绘制碎石图和累计方差贡献率图fig, axes plt.subplots(1, 2, figsize(14, 5))# 左图碎石图axes[0].bar(range(1, len(explained_variance_ratio)1), explained_variance_ratio, alpha0.7)axes[0].plot(range(1, len(explained_variance_ratio)1), explained_variance_ratio, ro-)axes[0].set_xlabel(主成分编号)axes[0].set_ylabel(方差贡献率)axes[0].set_title(碎石图)axes[0].axhline(y0.074, colorr, linestyle--, label累计85%阈值)axes[0].legend()# 右图累计方差贡献率axes[1].plot(range(1, len(cumulative_variance_ratio)1), cumulative_variance_ratio*100, bo-, linewidth2)axes[1].axhline(y85, colorr, linestyle--, label85%阈值)axes[1].fill_between(range(1, 5), 0, cumulative_variance_ratio[:4]*100, alpha0.3)axes[1].set_xlabel(主成分编号)axes[1].set_ylabel(累计方差贡献率(%))axes[1].set_title(累计方差贡献率)axes[1].legend()plt.tight_layout()plt.show()二、载荷矩阵分析3.1 载荷矩阵计算# # 载荷矩阵分析# # 载荷矩阵主成分与原始变量的相关系数loadings pca.components_.T * np.sqrt(pca.explained_variance_)# 转换为DataFrame便于查看import pandas as pdloadings_df pd.DataFrame(loadings[:, :4], # 只取前4个主成分indexfeature_names,columns[fPC{i1} for i in range(4)])print(\n * 80)print(载荷矩阵前4个主成分)print( * 80)print(loadings_df.round(3))# 计算每个变量在前4个主成分上的载荷平方和共同度communality np.sum(loadings[:, :4]**2, axis1)loadings_df[共同度] communality.round(3)print(\n * 80)print(变量共同度被前4个主成分解释的比例)print( * 80)print(loadings_df[[共同度]].sort_values(共同度, ascendingFalse))3.2 载荷矩阵分析结果载荷矩阵揭示了各原始参数与主成分的关系liPC1主要受相比(O/A)和试剂添加量影响/liliPC2主要受pH值和皂化率影响/liliPC3主要受温度影响/li变量PC1(操作条件)PC2(进料浓度)PC3(流量)PC4(设备状态)共同度相比(O/A)​0.892​-0.1520.218-0.0890.875​pH​0.845​0.112-0.1890.0650.769​温度​0.812​-0.0950.154-0.1780.728​皂化率​0.778​0.213-0.3120.0450.745​萃取级数0.345-0.0870.1230.856​0.882​搅拌强度0.4120.056-0.0980.789​0.801​进料Ni浓度0.1020.912​-0.0540.0780.852​进料Co浓度0.0850.887​0.032-0.0910.802​进料Mg浓度-0.2150.765​0.1870.0340.671​有机相流量0.234已暂停生成。

相关新闻

【硬核解析】为什么自动驾驶与机器人底层全是 C++?一文看懂 C++ 的核心机制与哲学

【硬核解析】为什么自动驾驶与机器人底层全是 C++?一文看懂 C++ 的核心机制与哲学

2026/9/28 15:19:40

目录 前言 一、 C 的一生:从文本到机器码的四步跳跃 二、 内存管理机制:C 程序员的生与死 1. 栈区(Stack):快准狠,但极其有限 2. 堆区(Heap):广阔天地,但…

CPU、GPU、NPU、TPU 架构对比:5类处理器在AI推理中的能效与延迟实测

CPU、GPU、NPU、TPU 架构对比:5类处理器在AI推理中的能效与延迟实测

2026/8/23 0:49:36

CPU、GPU、NPU、TPU 架构对比:5类处理器在AI推理中的能效与延迟实测当我们需要在边缘设备或云端部署AI模型时,选择合适的处理器架构往往成为项目成败的关键。面对市场上琳琅满目的计算单元——从传统的CPU、GPU到专为AI设计的NPU、TPU,开发者…

如何构建高可用TigerVNC架构:国产化环境深度部署指南

如何构建高可用TigerVNC架构:国产化环境深度部署指南

2026/9/25 18:39:25

如何构建高可用TigerVNC架构:国产化环境深度部署指南 【免费下载链接】tigervnc High performance, multi-platform VNC client and server 项目地址: https://gitcode.com/gh_mirrors/ti/tigervnc TigerVNC作为一款高性能、跨平台的远程桌面解决方案&#x…

CANN/GE ACL数据集缓冲区添加函数

CANN/GE ACL数据集缓冲区添加函数

2026/9/28 4:08:17

aclmdlAddDatasetBuffer 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Te…

用ffmpeg高效批量调整图片尺寸的实战指南

用ffmpeg高效批量调整图片尺寸的实战指南

2026/9/27 1:30:29

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

2026/9/28 2:15:29

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱 【免费下载链接】transformers 🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and mu…

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

2026/9/28 3:14:54

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system sup…

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

2026/9/28 3:58:00

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

2026/9/28 3:47:14

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system supporting mi…

远程协作的工作台整理

远程协作的工作台整理

2026/9/26 14:29:04

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/28 5:05:21

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/26 23:35:16

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…