输电线路故障诊断(Python代码,逻辑回归、决策树、随机森林、XGBoost和支持向量机五种不同方法诊断)

效果视频:输电线路故障诊断(Python代码,逻辑回归、决策树、随机森林、XGBoost和支持向量机五种不同方法诊断)_哔哩哔哩_bilibili

项目文件

code.py装载的是英文版本,图上显示英文标签及坐标,Chinese.py装载的是中文版本,图上显示中文标签等等,以及每一行代码几乎都有中文注释。code.py和Chinese.py是一样的代码。

1.数据

仿真平台

仿真模型分别获取单相接地故障、两相接地故障、两相间短路故障、三相接地故障、三相间短路故障和正常状态下的电流(Ia,Ib,Ic)大小和电压(Ua,Ub和Uc)大小。每种故障下获取1300行左右的数据

将故障区分为具体的不同类型(一共五种),再算上正常的状态,因此是六分类。这里随意举出每种类别的两个样本进行展示。

GCBAIaIbIcVaVbVc
1001-151.2918124-9.67745156385.800162260.400749853-0.132934945-0.267814907
1001-336.1861826-76.2832619518.328896580.312731934-0.123633156-0.189098779
1011-343.4870147104.56275133.7942853090.2720425010.011317575-0.283360076
1011-339.1254001105.4293167-0.2672412250.277820540.021756839-0.299577378
011019.38615173-785.553797768.7279081-0.210406869-0.00201120.212418069
011018.47841651-783.8619173767.9410527-0.217651204-0.002604510.220255714
0111506.5917463374.8825788-879.3449970.042029705-0.025636401-0.016393305
0111495.1384715387.4159615-880.42530960.042107683-0.025103056-0.017004627
1111-89.03263152-732.8168572821.9123732-0.0367594790.0052342190.03152526
1111-75.8022885-740.3563342816.2199695-0.036800630.0046859170.032114713
000010.5461862679.38231464-93.21467968-0.5376443450.548591338-0.010946993
00009.59094096580.11550744-92.99814299-0.5423905220.543819429-0.001428907

数据表格(开始位置)

数据表格(截止位置) 

 

2.代码流程:

  1. 导入所需的Python库,包括NumPy、Pandas、Seaborn、Matplotlib等。

  2. 设置Seaborn和Matplotlib的样式和主题,包括字体、颜色、图形大小、边缘颜色等。

  3. 从数据集中读取10行数据,并对其进行样式设置,以显示不同的背景颜色。

  4. 使用df_class.info()检查数据集中列的数据类型。

  5. 使用df_class.isnull().sum().sum()检查数据集中是否存在空值。

  6. 使用df_class.shape获取数据集的形状。

  7. 绘制关于"Ground Fault"的柱状图和饼图,以及关于"Line A"、"Line B"、"Line C"中Fault的柱状图和饼图。

  8. 合并不同列的Fault信息,创建一个新的列"Fault_Type"。

  9. 替换"Fault_Type"列中的值,以便进行可视化。

  10. 分析数据集的统计信息,包括均值、标准差等。

  11. 统计不同"Fault_Type"的计数。

  12. 绘制"Fault_Type"计数的柱状图和饼图。

  13. 绘制电流和电压的图形。

  14. 绘制电压和电流的分布图,包括直方图、KDE图和箱线图。

  15. 选择没有故障的数据,并绘制相应的电流和电压图。

  16. 绘制没有故障数据的电流和电压的分布图。

  17. 选择不同Fault Type的数据,并绘制相应的电流和电压图。

  18. 绘制不同Fault Type数据的电流和电压的分布图。

  19. 将分类变量转换为数值变量,使用LabelEncoder将"Fault_Type"列编码为数值。

  20. 分离自变量和因变量。

  21. 划分训练集和测试集。

  22. 使用不同的机器学习模型,包括逻辑回归、决策树、随机森林、XGBoost和支持向量机进行训练和预测。

  23. 绘制混淆矩阵以评估模型性能。

  24. 绘制决策树的树状图。

  25. 创建模型性能汇总表,包括训练准确率和模型准确率得分。

  26. 使用随机森林和决策树模型进行预测,并将实际值和预测值进行对比。

3.效果

 

 

 

 

 

 

 

随机森林方法

决策树

XGBoost预测

支持向量机预测

逻辑回归

 

对代码和数据集感兴趣的可以关注最后一行

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warningsfrom sklearn.model_selection import train_test_split
from sklearn.preprocessing import LabelEncoder
from sklearn.neural_network import MLPClassifier
from sklearn.metrics import accuracy_score, classification_report, confusion_matrix#代码和数据集的压缩包:https://mbd.pub/o/bread/mbd-ZJ6Vmpdy

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

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

相关文章

【Unity】ShaderGraph应用(浮动气泡)

【Unity】ShaderGraph应用(浮动气泡) 实现效果 一、实现的方法 1.使用节点介绍 Position:获取模型的顶点坐标 Simple Noise:简单的噪声,用于计算顶点抖动 Fresnel Effect:菲涅耳效应,用于实现气泡效果 计算用节点 Add&…

Pytorch(GPU)环境安装

winR:启动cmd; 输入nvidia-smi 查看cuda的配置 (1) 安装CUDA 地址:https://developer.nvidia.com/cuda-downloads 详细参考:安装CUDA与CUDNN与Pytorch(最新超级详细图文版本2023年8月最新)_pytorch安装cudnn_LyaJpunov的博客-C…

驱动开发---基于gpio子系统编写LED灯的驱动

一、GPIO子系统相关API 1.解析GPIO相关的设备树节点 struct device_node *of_find_node_by_path(const char *path) 功能:根据设备树节点路径解析设备树节点信息 参数: path:设备树所在的节点路径 /mynode0X12345678 返回值:成…

【力扣周赛】第 362 场周赛(⭐差分匹配状态压缩DP矩阵快速幂优化DPKMP)

文章目录 竞赛链接Q1:2848. 与车相交的点解法1——排序后枚举解法2——差分数组⭐差分数组相关题目列表📕1094. 拼车1109. 航班预订统计2381. 字母移位 II2406. 将区间分为最少组数解法1——排序贪心优先队列解法2——差分数组 2772. 使数组中的所有元素…

安全厂商安恒信息加入龙蜥社区,完成 与 Anolis OS 兼容适配

近日,杭州安恒信息技术股份有限公司(以下简称“安恒信息”)签署了 CLA(Contributor License Agreement,贡献者许可协议),正式加入龙蜥社区(OpenAnolis),并成为…

通过java代码在指定目录生成一个指定内容的vue文件

可能很多人觉得 用java写vue会更快 或者有什么固定格式 但其实 那需要构建一套非常完整的系统架构 如果什么都没构建 那么 用前端编辑器 肯定是比你用java写的快 而且写的好的 我们直接创建一个类 叫 Main 编写代码如下 import java.io.FileWriter; import java.io.IOExcepti…

element ui - el-table 表头筛选

element ui - el-table 表头筛选 前言情况一:表格没有分页方法代码 前言 场景:根据表头筛选出表格中符合条件的数据; 效果: 筛选结果: 情况一:表格没有分页 方法 在列中设置 filters 和 filter-metho…

Cpp/Qt-day020918Qt

目录 完善登录框 点击登录按钮后,判断账号(admin)和密码(123456)是否一致,如果匹配失败,则弹出错误对话框,文本内容“账号密码不匹配,是否重新登录”,给定两…

在Windos 10专业版搭建Fyne(Go 跨平台GUI)开发环境

目录 在Windos 10专业版搭建Fyne(Go 跨平台GUI)开发环境一 Fyne 和 MSYS2简介1.1 Fyne1.2 MSYS2 二 安装 MSYS22.1 下载MSYS22.2 安装2.3 环境变量设置2.4 检测安装环境 三 参考文档 在Windos 10专业版搭建Fyne(Go 跨平台GUI)开发…

第三、四、五场面试

第三场 共享屏幕做题(三道简单题) 替换空格成%20(双指针) 删除升序链表中的重复元素(指针)有效的括号(栈) 第四场、第五场 自我介绍 项目拷打 整个项目架构rpc模块的情况分析的数…

【lesson8】操作系统的理解和类比

文章目录 操作系统是什么?为什么要有操作系统?怎么做?学校的例子(理解管理)银行的例子(类比操作系统) 操作系统是什么? 操作系统是一款软件,是为了进行软硬件资源管理的…

芯片SoC设计你了解吗?

数字IC设计根据岗位性质一般包含SOC设计,前端设计,ASIC设计,逻辑设计,IP设计,CPU设计等。 有人说:做IP设计就是翻译官,做SOC设计就是连连看。 SoC设计是做什么的?与IP设计有什么不同…