Python电能质量扰动信号分类(六)基于扰动信号特征提取的超强机器学习识别模型

目录

 往期精彩内容:

前言

1 数据集和特征提取

1.1 数据集导入

1.2 扰动信号特征提取

2超强模型XGBoost——原理介绍

2.1 原理介绍

2.2 特征数据集制作

3 模型评估和对比

3.1 随机森林分类模型

3.2 支持向量机SVM分类模型

3.3 XGBoost分类模型

代码、数据如下:


创新度高!!!需要发论文的同学即买即用

 往期精彩内容:

电能质量扰动信号数据介绍与分类-Python实现-CSDN博客

Python电能质量扰动信号分类(一)基于LSTM模型的一维信号分类-CSDN博客

Python电能质量扰动信号分类(二)基于CNN模型的一维信号分类-CSDN博客

Python电能质量扰动信号分类(三)基于Transformer的一维信号分类模型-CSDN博客

Python电能质量扰动信号分类(四)基于CNN-BiLSTM的一维信号分类模型-CSDN博客

Python电能质量扰动信号分类(五)基于CNN-Transformer的一维信号分类模型-CSDN博客

基于FFT + CNN -Transformer时域、频域特征融合的电能质量扰动识别模型-CSDN博客

前言

本文基于Python仿真的电能质量扰动信号,先经过数据预处理进行数据集的制作和加载,然后通过特征提取机器学习方法进行扰动信号识别,特征提取是通过从原始PQD信号中提取有意义的特征来减少数据维度,并捕捉到信号的关键信息,机器学习方法能够基于这些特征建立模型,并通过训练和学习来识别不同的扰动信号。

Python仿真电能质量扰动信号的详细介绍可以参考下文(文末附10分类数据集):

电能质量扰动信号数据介绍与分类-Python实现_python给电压数据做分类-CSDN博客

部分扰动信号类型波形图如下所示:

1 数据集和特征提取

1.1 数据集导入

在参考IEEE Std1159-2019电能质量检测标准与相关文献的基础上构建了扰动信号的模型,生成包括正常信号在内的10中单一信号和多种复合扰动信号。参考之前的文章,进行扰动信号10分类的预处理:

第一步,按照公式模型生成单一信号

单一扰动信号可视化:

根据信号时间步长为 1024 制作数据集

形成5000个样本, 单个样本长度 1024,加上一个标签类别。

1.2 扰动信号特征提取

(1) 峭度(Kurtosis):衡量信号的尖锐程度,用于检测信号中的高频成分

(2) 熵值(Entropy):衡量信号的复杂程度和随机性,用于检测信号的频谱特性

(3) 分形值(Fractal Dimension):衡量信号的自相似性和复杂度,用于分析信号的分形特征

(4) 波形指标(Waveform Indicators):包括峰值因子、脉冲因子、裕度因子等,用于分析信号的时域特征

(5) 频谱指标(Spectral Indicators):包括峰值频率、能量比值、谱线形指标等,用于分析信号的频域特征

(6) 频域指标(Time-Frequency Indicators):包括瞬时频率、瞬时能量等,用于分析信号的时频特征

(7) 统计特征(Statistical Features):包括均值、方差、偏度等,用于描述信号的统计特性

(8) 小波包特征(Wavelet Packet Features):通过小波变换提取的特征,用于分析信号的时频局部特性

(9) 振动特征(Vibration Features):包括峰值振动、有效值振动等,用于描述信号的振动特性

图片

图片

选择了多种特征提取方法来捕捉信号的不同特征,共提取9类13个特征指标,来作为机器学习模型的训练与识别。

2超强模型XGBoost——原理介绍

2.1 原理介绍

论文链接:

XGBoost | Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining

GBoost模型(eXtreme Gradient Boosting)是一种梯度提升框架,由Tianqi Chen在2014年开发,并在机器学习领域广泛应用。XGBoost的核心思想是通过迭代地训练多个弱学习器,并将它们组合起来,实现强大的预测能力。它在梯度提升算法的基础上进行了改进和优化,具有高效、灵活和可扩展的特点。

下面是XGBoost的一些关键特性和原理:

1. 梯度提升:XGBoost使用了梯度提升算法,也称为增强学习(Boosting)算法。它通过迭代地训练多个弱学习器,并通过梯度下降的方式来优化模型的预测能力。每个弱学习器都是在前一个弱学习器的残差上进行训练,从而逐步减小预测误差。

2. 基于树的模型:XGBoost采用了基于树的模型,即决策树。决策树是一种非常灵活和可解释的模型,能够学习到复杂的非线性关系。XGBoost使用了CART(Classification and Regression Trees)作为默认的基学习器,每个决策树都是通过不断划分特征空间来实现分类或回归任务。

3. 正则化策略:为了防止过拟合,XGBoost引入了正则化策略。它通过控制决策树的复杂度来限制模型的学习能力。常用的正则化策略包括限制决策树的最大深度、叶子节点的最小样本数和叶子节点的权重衰减等。

4. 特征选择和分裂:XGBoost在构建决策树时,通过特征选择和分裂来最大化模型的增益。特征选择基于某种评估准则(如信息增益或基尼系数),选择对当前节点的划分最有利的特征。特征分裂则是确定特征划分点的过程,使得划分后的子节点能够最大程度地减小预测误差。

5. 并行计算:为了提高模型的训练速度,XGBoost使用了并行计算的策略。它通过多线程和分布式计算等技术,将训练任务分解为多个子任务,并在不同的处理器上同时进行计算。这样可以加快模型的训练速度,特别是在处理大规模数据集时表现优异。

6. 自定义损失函数:XGBoost允许用户自定义损失函数,以适应不同的任务和需求。用户可以根据具体问题的特点,定义适合的损失函数,并在模型训练过程中使用它。

XGBoost模型通过梯度提升算法和基于树的模型,在许多机器学习任务中都取得了很好的效果,包括分类、回归、排序和推荐等。我们利用其高效、灵活和可扩展的特性,使用XGBoost来构建一个梯度提升模型,通过迭代地训练多个决策树来实现轴承故障识别。

2.2 特征数据集制作

3 模型评估和对比

3.1 随机森林分类模型

模型分数、准确率、精确率、召回率、F1 Score

扰动信号十分类混淆矩阵

3.2 支持向量机SVM分类模型

模型分数、准确率、精确率、召回率、F1 Score

扰动信号十分类混淆矩阵:

3.3 XGBoost分类模型

模型分数、准确率、精确率、召回率、F1 Score

扰动信号十分类混淆矩阵:

实验结果表明,所提取的各种特征都对电能质量扰动信号识别有一定的贡献。峭度、熵值和分形值能够帮助捕捉信号的尖锐程度、复杂程度和自相似性,从而有效地区分不同类型的扰动信号。波形指标、频谱指标和频域指标能够提供信号的时域和频域特征,有助于识别扰动信号的时频特性。统计特征、小波包特征和振动特征则能够描述信号的统计特性和振动特性,从而更好地区分扰动信号。

对比可以看出来, XGBoost分类模型性能最好,在训练集、测试集上的表现最优,模型分数也是最高,在扰动信号识别中取得了良好的效果。通过准确地捕捉到信号的特征和模式,能够对不同类型和程度的信号类型进行准确的识别和分类,准确率达到98%,速度快,性能好,创新度高。

代码、数据如下:

图片

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

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

相关文章

智慧应急与物联网相结合:物联网技术如何提升智慧应急响应能力

目录 一、引言 二、智慧应急与物联网技术的结合 三、物联网技术提升智慧应急响应能力的途径 四、物联网技术在智慧应急中的应用案例 五、物联网技术在智慧应急中面临的挑战与解决方案 挑战一:技术标准与规范不统一 解决方案: 挑战二:…

工业锅炉物联网:HiWoo Cloud为工业能源转型注入新动力

随着全球工业化的快速发展,工业锅炉作为工业生产的“心脏”,其能源效率和运行安全性越来越受到关注。然而,传统的工业锅炉管理往往依赖于人工监控和定期维护,这种方式不仅效率低下,而且难以确保设备的持续高效运行。在…

Matlab如何批量读取txt数据?科研效率UpUp第1期

最近帮几个亲朋好友整理博士毕业论文。 期间,我观察了他们的行为模式,发现其将大量的时间,不同程度地浪费在一些机械、重复性劳动上,导致效率低下。 博士尚且如此,想必还有很多人也深受其扰。 作为一个专业摸鱼人&a…

分享:大数据信用报告查询的价格一般要多少钱?

现在很多人都开始了解自己的大数据信用了,纷纷去查大数据信用报告,由于大数据信用与人行征信有本质的区别,查询方式和价格都不是固定的,本文就为大家详细讲讲大数据信用报告查询的价格一般要多少钱,希望对你有帮助。 大…

vue3 实现一个简单的输入框

需求背景 需要一个输入框,可以输入文字,添加表情,一开始用了富文本编辑器,有点大材小用,所以自己封装一个输入框组件。支持输入文字,选择表情/插入表情,支持组合键换行,使用enter 进…

DPU:未来计算的三大支柱之一

随着计算领域的不断发展,数据处理单元(DPU)的出现正在重塑数据中心和计算架构的未来。在本文中,我们深入探讨了DPU在该领域的重要性和作用,并将其与传统的中央处理器(CPU)和图形处理单元&#x…

2024年小程序云开发CMS内容管理无法使用,无法同步内容模型到云开发数据库的解决方案,回退老版本CMS内容管理的最新方法

一,问题描述 最近越来越多的同学找石头哥,说cms用不了,其实是小程序官方最近又搞大动作了,偷偷的升级的云开发cms(内容管理)以下都称cms,不升级不要紧,这一升级,就导致我…

亚马逊云科技实时 AI 编程助手 Amazon CodeWhisperer,开发快人一步

​ 亚马逊云科技:https://mic.anruicloud.com/url/1024 ​ Amazon CodeWhisperer 是一款 AI 编码配套应用程序,可在 IDE 中生成 整行代码和完整的函数代码建议,以帮助您更快地完成更多工作。在本系列 文章中,我们将为您详细介绍 A…

学习阶段单片机买esp32还是stm32?

学习阶段单片机买esp32还是stm32? 在开始前我有一些资料,是我根据网友给的问题精心整理了一份「stm32的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!&#xf…

5G时代对于工业化场景应用有什么改善

5G 不仅仅是 4G 的技术升级,而是将平板电脑和智能手机的技术升级。除了更好的高清视频流和其他高带宽应用,消费者不会注意到很多性能差异。然而,在工业领域,5G 代表着巨大的飞跃。 在工厂和厂房内, 设备的Wi-Fi 网络经…

el-table实现转置表格

vue版本&#xff1a;vue2.6.10 elementui版本&#xff1a;2.15.14 实现效果&#xff1a;el-table实现行列互换 代码&#xff1a; <template><div class"app-container"><span>原始数据</span><el-table:data"datas"border>…

自动化信息抽取:提升物资仓库管理效率的实践案例

一、引言 在当今快节奏的供应链管理中&#xff0c;物资仓库的信息抽取和处理是确保物流效率的关键环节。我曾参与的一个项目&#xff0c;正是针对这一需求而设计。该项目的核心目标是优化收货与入库流程&#xff0c;通过先进的信息抽取技术&#xff0c;我们能够自动接收并处理来…

MYSQL--JDBC*

一.介绍: 1.JDBC是一种用于执行SQL于语句的JAVA API,JDBC是一种使用JAVA访问数据库的执行规范标准,能够为不同的数据库提供统一的访问!由一组使用JAVA语言编写的接口以及类组成的 2.JDBC核心的类以及相关的接口主要有: DriverManager 注册驱动 Connection 使用…

代码随想录刷题笔记-Day25

1. 分割回文串 131. 分割回文串https://leetcode.cn/problems/palindrome-partitioning/ 给你一个字符串 s&#xff0c;请你将 s 分割成一些子串&#xff0c;使每个子串都是 回文串 。返回 s 所有可能的分割方案。 回文串 是正着读和反着读都一样的字符串。 示例 1&#xf…

购房合同的注意事项是什么呢?房子备案需要多久?

房屋登记需要多长时间&#xff1f; 购房合同要注意什么&#xff1f; 2019/02/20 10:02:07 来源&#xff1a;方天下观点&#xff08;6993&#xff09; [摘要] 购买房屋后&#xff0c;需要向房管部门办理房屋登记。 这样可以证明房子是在业主名下的&#xff0c;所以需要了解房屋…

c++学习记录 deque容器—排序

算法&#xff1a; sort(iterator beg,iterator end); //对beg和end区间内元素进行排序 #include<iostream> using namespace std; #include<deque> #include<algorithm>//标准算法头文件void printDeque(const deque<int>& d) {for …

FPGA-时钟管理单元

时钟管理单元(Clock Management Tile, CMT) : 即时钟管理片,是FPGA器件中一个十分重要的时钟资源。能够对内部和外部的时钟去偏斜、去抖动,同时还支持频率合成、分倍频等功能。 举例&#xff0c;下面这个例子数据从FIFO输出时钟频率为125MHZ&#xff0c;这个时钟频率可以通过…

flink重温笔记(八):Flink 高级 API 开发——flink 四大基石之 Window(涉及Time)

Flink学习笔记 前言&#xff1a;今天是学习 flink 的第八天啦&#xff01;学习了 flink 高级 API 开发中四大基石之一&#xff1a; window&#xff08;窗口&#xff09;知识点&#xff0c;这一部分只要是解决数据窗口计算问题&#xff0c;其中时间窗口涉及时间&#xff0c;计数…

Bert基础(五)--解码器(下)

1、 多头注意力层 下图展示了Transformer模型中的编码器和解码器。我们可以看到&#xff0c;每个解码器中的多头注意力层都有两个输入&#xff1a;一个来自带掩码的多头注意力层&#xff0c;另一个是编码器输出的特征值。 让我们用R来表示编码器输出的特征值&#xff0c;用M来…

【JavaEE进阶】 Spring AOP快速上手

文章目录 &#x1f343;什么是AOP&#x1f333;什么是Spring AOP&#x1f334;上手Spring AOP&#x1f6a9;引入依赖&#x1f6a9;编写AOP程序 ⭕总结 &#x1f343;什么是AOP AOP是Aspect Oriented Programming的简称&#xff08;又称为面向切⾯编程&#xff09; 什么是面向…