news 2026/2/6 21:42:10

探索多元经验模式分解:从数据到可视化的完整实践

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
探索多元经验模式分解:从数据到可视化的完整实践

多元经验模式分解(memd)算法,是emd算法从单个变量到任意数量变量的扩展。 从Excel表格中读取,电流,温度,湿度,油温。 然后将个序列输入算法,得到分解结果并画图,每个变量的imf用不同颜色来表示。

在数据分析的世界里,多元经验模式分解(MEMD)算法是一个让人眼前一亮的工具。它不仅是经验模式分解(EMD)算法的升级版,更是一种能够同时处理多个变量的利器。本文将通过一个完整实践案例,带你了解如何运用MEMD算法对多维数据进行分解和可视化。我们选取了电流、温度、湿度和油温四个变量作为示例数据,通过代码实现数据读取、分解以及结果可视化,让你直观感受MEMD的强大功能。

数据准备:从Excel表格获取原始数据

在正式开始之前,我们需要准备一些数据。我们的数据来源于一个Excel文件,包含四个变量:电流、温度、湿度和油温。为了方便后续分析,我们需要将这些数据读取到Python环境中,并进行必要的预处理。

import pandas as pd import numpy as np # 读取Excel文件 data_df = pd.read_excel('multivariate_data.xlsx') # 提取需要变量的数据 current = data_df['Current'].values temperature = data_df['Temperature'].values humidity = data_df['Humidity'].values oil_temp = data_df['Oil_Temperature'].values # 确保数据长度一致 assert len(current) == len(temperature) == len(humidity) == len(oil_temp), "数据长度不一致"

数据预处理:标准化与降噪

为了使数据更适合进行经验模式分解,通常需要对数据进行标准化处理,以消除量纲和数量级差异带来的影响。此外,原始数据往往包含噪声,因此进行适当的降噪处理也是有必要的。

# 数据标准化 def normalize(data): return (data - data.mean()) / data.std() current_norm = normalize(current) temperature_norm = normalize(temperature) humidity_norm = normalize(humidity) oil_temp_norm = normalize(oil_temp) # 手动降噪(简单移动平均法) def smooth(data, window_size=3): return np.convolve(data, np.ones(window_size)/window_size, mode='same') current_smooth = smooth(current_norm) temperature_smooth = smooth(temperature_norm) humidity_smooth = smooth(humidity_norm) oil_temp_smooth = smooth(oil_temp_norm)

分解过程:MEMD算法的应用

经验模式分解(EMD)算法是一种将复杂信号分解为若干本征模函数(IMF)的方法,而多元经验模式分解(MEMD)则是EMD的扩展,能够同时处理多变量数据。我们使用第三方库pymcdm来实现MEMD算法。

# 安装pymcdm库 !pip install pymcdm import numpy as np from pymcdm import methods # 准备数据矩阵,各行代表不同的变量 data_matrix = np.array([current_smooth, temperature_smooth, humidity_smooth, oil_temp_smooth]) # 初始化MEMD方法 memd = methods.MEMD() # 设置参数 max_inner_iterations = 100 # 最大内层迭代次数 stop_condition = 0.0001 # 停止条件 # 执行分解 # 我们需要为每个变量单独运行MEMD,由于MEMD处理的是单变量数据, # 这里的处理方式可能需要根据具体库的实现进行调整 # 这里仅为示例代码,需根据实际情况修改 decomposed_data = [] for i in range(data_matrix.shape[0]): data = data_matrix[i, :] imfs = memd.decompose(data, max_inner_iterations=max_inner_iterations, stop_condition=stop_condition) decomposed_data.append(imfs)

结果可视化:多变量IMF的直观呈现

分解完成后,我们需要将结果以图表的形式展示出来。通过给每个变量的IMF分配不同的颜色,我们可以更清晰地观察各个变量的内在模式。

import matplotlib.pyplot as plt # 准备绘图区域 fig, axes = plt.subplots(len(decomposed_data[0]), 4, figsize=(20, 10 * len(decomposed_data[0]))) # 定义颜色映射 colors = ['blue', 'orange', 'green', 'red'] # 对应四个变量 variables = ['Current', 'Temperature', 'Humidity', 'Oil Temperature'] # 绘制每个IMF for imf_idx in range(len(decomposed_data[0])): for var_idx in range(4): imf = decomposed_data[var_idx][imf_idx] axes[imf_idx][var_idx].plot(imf, color=colors[var_idx]) axes[imf_idx][var_idx].set_title(f'IMF {imf_idx + 1} of {variables[var_idx]}')

分析与总结:从数据中发现规律

通过以上步骤,我们完成了对四个变量数据的MEMD分解和可视化。从图中我们可以看到,每个变量被分解成了多个IMF,每个IMF代表了信号中不同频率的成分。通过颜色的区分,我们能够更直观地比较不同变量之间的IMF分布,从而发现潜在的关联或差异。

例如,电流和温度的IMF分布较为相似,可能存在某种物理上的相关性;而湿度和油温的波动模式则有所不同,可能受到不同的环境因素影响。结合专业知识,我们可以通过这些IMF进一步分析变量之间的相互作用机制。

总结:MEMD的应用前景

多元经验模式分解(MEMD)算法为多维数据分析提供了一个强大的工具。通过本文的实践案例,我们展示了如何从数据读取、预处理、分解到结果可视化的完整流程。这种算法特别适用于那些需要同时分析多个相关变量的场景,如设备状态监测、环境数据分析等领域。希望本文能为你的数据分析实践提供一些启发!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/6 9:04:19

AI智能体知识蒸馏:大模型教小模型,效果提升40%

AI智能体知识蒸馏:大模型教小模型,效果提升40% 1. 为什么教育公司需要知识蒸馏技术 教育科技公司经常面临一个困境:既希望AI解题助手足够聪明,又受限于终端设备的计算能力。直接训练的小模型往往表现不佳,而大模型虽…

作者头像 李华
网站建设 2026/2/5 13:42:16

DDoS攻击AI检测实战:云端10分钟出报告,成本不到一杯奶茶

DDoS攻击AI检测实战:云端10分钟出报告,成本不到一杯奶茶 1. 为什么需要AI检测DDoS攻击? 想象一下,你的网站突然变得异常缓慢,服务器CPU飙升至100%,正常用户完全无法访问——这很可能遭遇了DDoS&#xff0…

作者头像 李华
网站建设 2026/1/30 9:47:07

第 484 场周赛Q1——100959. 统计残差前缀

题目链接:100959. 统计残差前缀(简单) 算法原理: 解法:哈希表 3ms击败68.95% 时间复杂度O(N) 思路很简单,既然是从头开始的前缀,那就从头遍历一遍即可,遍历的同时扔进Set里&#xff…

作者头像 李华
网站建设 2026/2/5 4:01:50

【火山引擎与TRAE协同打造智慧供应链平台建设:从数据智能到研发提效】

火山引擎与TRAE协同打造智慧供应链平台建设:从数据智能到研发提效 目录 第一部分:背景与挑战 封面:AI驱动的智慧供应链平台建设——火山引擎与TRAE协同实践汽车供应链数字化转型面临的挑战传统供应链管理模式的痛点分析智慧供应链建设的核心目…

作者头像 李华
网站建设 2026/2/7 0:41:43

StructBERT实战教程:用户反馈情感分析系统

StructBERT实战教程:用户反馈情感分析系统 1. 引言 1.1 中文情感分析的现实需求 在当今数字化服务快速发展的背景下,企业每天都会收到海量的用户反馈——来自电商平台评论、客服对话记录、社交媒体留言等。如何高效地理解这些文本背后的情绪倾向&…

作者头像 李华
网站建设 2026/2/4 16:11:18

StructBERT情感分析API开发:零基础快速上手教程

StructBERT情感分析API开发:零基础快速上手教程 1. 引言 1.1 中文情感分析的现实需求 在当今数字化时代,用户评论、社交媒体内容、客服对话等海量中文文本数据不断涌现。如何从中自动识别情绪倾向——是满意还是不满?是推荐还是投诉&#…

作者头像 李华