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

news2024/11/14 14:44:26

目录

 往期精彩内容:

前言

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.coloradmin.cn/o/1487630.html

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

相关文章

windows7怎么改ip地址?win7设置ip地址的步骤

随着网络的普及和技术的不断发展,IP地址对于计算机用户来说,已经不再是一个陌生的概念。在Windows 7操作系统中,根据网络环境和个人需求,有时我们需要手动修改IP地址。本文旨在向读者介绍如何在Windows 7系统中修改IP地址&#xf…

Redis常用指令,jedis与持久化

1.redis常用指令 第一个是key的常用指令,第二个是数据库的常用指令 前面的那些指令都是针对某一个数据类型操作的,现在的都是对所有的操作的 1.key常用指令 key应该设计哪些操作 key是一个字符串,通过key获取redis中保存的数据 对于key…

keil 中使用了cks32F103C8T6的芯片如何安装pack

首先是本来想使用stm32的芯片,结果商家给发过来的无法写入,一查是因为商家把cks的芯片给磨皮了,冒充stm来卖 那就花点时间来研究一下这个cks怎么在keil中写入 好不容易找到一个下载包 Keil.CS32F1xx_DFP.pack 【免费】中科芯CKSF103的PACK…

网络安全: Kali Linux 使用 hping3 阻塞目标主机

目录 一、实验 1.环境 2. 物理机测试远程连接 Windows server 3.Kali Linux 使⽤ hping3 ⼯具 二、问题 1. 常见的 DoS ⽅式有哪些 2.hping3 测试⼯具的命令格式和选项参数 一、实验 1.环境 (1)主机 表1 主机 系统版本IP备注Kali Linux2024.…

Python实现向量自回归移动平均模型(VARMA算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 向量自回归移动平均模型(Vector Autoregressive Moving Average, VARMA)是一种…

在 Rust 中实现 TCP : 2.解析原始字节

解析原始字节 现在已经设置了虚拟网络接口并且它接收了数据位,实现 TCP 之旅的下一步是从接收到的数据字节中解析出数据包。默认情况下,除了从虚拟网络接口发送和接收的数据包之外,还会在数据包前面附加 4 个字节的数据。 Tun/TAP documenta…

Flutter混合栈管理方案对比

1.Google官方(多引擎方案) Google官方建议的方式是多引擎方案,即每次使用一个新的FlutterEngine来渲染Widget树,存在的主要问题是每个引擎都要有比较大的内存等资源消耗,虽然Flutter 2.0之后的FlutterEngineGroup通过在…

AI学习集合-前瞻

AI学习前瞻 工作岗位 算法工程师机器学习工程师图像算法工程师ai工程师NLP高级算法工程师 学习路线 应用场景 计算机视觉技术应用场景 自然语言应用 AI流程 AI拟人流程 机器人历史数据经验模型规律依据模型预测未来依据规律做出判断 AI基本流程 术语所用到的技术手段数据数…

收藏4款免费又好用的甘特图软件

zz-plan zz-plan(https://zz-plan.com/) 是一款基于甘特图的项目管理协作软件。无论项目大小、简单复杂都能轻松管理。任务、进度、工时、资源、周期、依赖关系都能一目了然。支持私有化部署,可完全控制、灵活定制、确保数据安全&#xff0c…

峟思测斜仪:工程斜坡稳定性的精确守护者

在工程建设领域,斜坡的稳定性始终是一个关键的安全问题。斜坡失稳不仅可能导致工程项目的延误,更可能威胁到人们的生命安全。为了有效监测和评估斜坡的稳定性,工程师们依赖于一种先进的设备——峟思测斜仪。 测斜仪的工作原理 峟思测斜仪采用…

分层解耦-IOCDI

内聚:软件中各个功能模块内部的功能联系。 耦合:衡量软件中各个层/模块之间依赖、关联的程度 软件设计原则:高内聚低耦合 控制反转:Inversion Of Control,简称IOC。对象的创建控制权由程序自身转移到外部(…

c++ primer学习笔记(一)

目录 第一章、c快速入门 重点:类的简介 第二章 1、基本内置类型 2、字面值常量 1、整型字面值规则 2、浮点字面值规则 3、布尔字面值 4、字符字面值 5、非打印字符的转义序列 ​编辑 6、字符串字面值 3、变量 1、变量标识符 2、定义和初始化对象 3、…

javaWebssh网上超市销售管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 java ssh网上超市销售管理系统是一套完善的web设计系统(系统采用ssh框架进行设计开发),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCA…

【深度学习笔记】计算机视觉——多尺度目标检测

多尺度目标检测 在 sec_anchor中,我们以输入图像的每个像素为中心,生成了多个锚框。 基本而言,这些锚框代表了图像不同区域的样本。 然而,如果为每个像素都生成的锚框,我们最终可能会得到太多需要计算的锚框。 想象一…

第十四届蓝桥杯大赛B组 JAVA 蜗牛 (递归剪枝)

题目描述: 这天,一只蜗牛来到了二维坐标系的原点。 在 x 轴上长有 n 根竹竿。它们平行于 y 轴,底部纵坐标为 0,横坐标分别为 x1, x2, …, xn。竹竿的高度均为无限高,宽度可忽略。蜗牛想要从原点走到第 n 个竹竿的底部也…

css样式元素的相对定位,绝对定位,固定定位等元素定位运用技巧详解

文章目录 1.相对定位 relative2.绝对定位 absolute3.固定定位4.display 转换元素5.float浮动6.float产生内容塌陷问题7.overflow CSS样式学习宝典,关注点赞加收藏,防止迷路哦 在CSS中关于定位的内容是:position:relative | absolute | static…

消防主机报故障时发出故障及原因及解决办法!

本文以青鸟消防JBF-11SF为例。 其他型号或品牌的消防主机也可参考。 开机前,必须先测量系统接线的绝缘电阻,确保各绝缘电阻满足以下要求: 1)空载时各电路信号线之间的绝缘值应大于5K欧姆。 2)正常天气条件下&#x…

C++:函数模板整理

函数模板: 找到函数相同的实现思路&#xff0c;区别于函数的参数类型。 使用函数模板使得函数可容纳不同类型的参数实现函数功能&#xff0c;而不是当类型不同时便编译大量类型不同的函数&#xff0c;产生大量重复代码和内存占用 函数模板格式&#xff1a; template<typ…

基于ARIMA+SARIMA的航空公司 RPM 时间序列预测模型

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

C++入门全集(4):类与对象【下】

一、再谈构造函数 1.1 构造函数体内赋值 我们知道&#xff0c;在创建对象时&#xff0c;编译器会自动调用构造函数给对象中的各个成员变量一个合适的初始值 class Date { public:Date(int year, int month, int day){_year year;_month month;_day day;}private:int _yea…