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

2023-10-27

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

项目文件

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

1.数据

仿真平台

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

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

G C B A Ia Ib Ic Va Vb Vc
1 0 0 1 -151.2918124 -9.677451563 85.80016226 0.400749853 -0.132934945 -0.267814907
1 0 0 1 -336.1861826 -76.28326195 18.32889658 0.312731934 -0.123633156 -0.189098779
1 0 1 1 -343.4870147 104.5627513 3.794285309 0.272042501 0.011317575 -0.283360076
1 0 1 1 -339.1254001 105.4293167 -0.267241225 0.27782054 0.021756839 -0.299577378
0 1 1 0 19.38615173 -785.553797 768.7279081 -0.210406869 -0.0020112 0.212418069
0 1 1 0 18.47841651 -783.8619173 767.9410527 -0.217651204 -0.00260451 0.220255714
0 1 1 1 506.5917463 374.8825788 -879.344997 0.042029705 -0.025636401 -0.016393305
0 1 1 1 495.1384715 387.4159615 -880.4253096 0.042107683 -0.025103056 -0.017004627
1 1 1 1 -89.03263152 -732.8168572 821.9123732 -0.036759479 0.005234219 0.03152526
1 1 1 1 -75.8022885 -740.3563342 816.2199695 -0.03680063 0.004685917 0.032114713
0 0 0 0 10.54618626 79.38231464 -93.21467968 -0.537644345 0.548591338 -0.010946993
0 0 0 0 9.590940965 80.11550744 -92.99814299 -0.542390522 0.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 warnings
 
from 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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • Systemverilog Open Arrays

    原文链接 http www testbench in DP 08 ARRAYS html The size of the packed dimension the unpacked dimension or both dimensions
  • vscode配置php环境(以phpstudy2018为例)

    首先我们需要有一个vscode 安装 无脑下一步 其次我们需要有一个phpstudy2018 安装 无脑下一步 安装路径换到自己能找到的位置就行 然后打开vscode安装下图所示四个扩展 安装完成后启用扩展重启vscode 生效 接着我们
  • selenium扫码登录操作edge

    from selenium import webdriver 导入包 from selenium webdriver common by import By from selenium webdriver common action cha
  • 计算机应用技术与物联网专业介绍,《物联网应用技术》专业简介

    物联网应用技术 专业简介 专业代码 610119 物联网 Internet of Things 被称为继计算机 互联网之后 世界信息产业的第三次浪潮 它是通过计算机嵌入技术将各种设备智能化 再通过通信技术 互联网技术将它们相互连接起来 从而
  • 删除表和截断表命令之间的区别是什么?

    删除表和截断表命令之间的区别是什么 此问题提交于2004年11月23日 表删除包括表的定义和关联对象 规则 索引 约 触发器 主键 等 很明显 一旦表被删除 那么表中包含的所有的数据行都会被一同删除 truncate table 命令则仅仅
  • 左外连接与右外连接

    左外连接 两个表在连接过程中除了返回满足连接条件的行以外 还要返回左表中不满足条件的行 这种连接称为左外连接 右外连接 两个表在连接的过程中除了返回满足连接条件的行以外 还要返回右表中不满足条件的行 这种连接称为右外连接 左外连接 from
  • java语言的动态性相关概念;动态绑定、动态连接、与虚方法

    1 动态连接 链接 java代码在进行javac编译的时候不会像c或者c 有 连接 这一步骤 而是虚拟机在加载Class文件的时候进行动态连接 也就是说在class文件中不会保存各个方法 字段最终在内存中的入口地址 也就无法被虚拟机直接使用
  • CAS实现单点登录--错误记录

    遇到的错误 生成证书 1 命令 keytool genkey alias smalllove keyalg RSA keystore C keys smallkey 错误 java lang Exception Keystore文件存在 但
  • uni——tab切换

    案例展示 案例代码
  • Jaxb annotation初步使用

    今天在阅读cxf官方文档的时候遇到一种用法主要真对Map类型的复杂对象处理 WebServicepublicinterface HelloWorld String sayHi String text Advanced usecase of
  • Keil5 点击Debug Setting 软件崩溃解决方法

    因为我我打开另外一个程序是可以仿真的 所以没有考虑keil5软件自身的问题 1 有中文路径 然后剪切到没有中文路径的文件夹 gt 未解决 2 打开注册表 Win R键呼出 运行 在框内输入 Regedit 回车打开注册表 如果弹出 是否允许
  • Python时间格式转换

    概述 strptime 与strftime 若仅转换时间格式使用strftime 若需要做时间操作则使用strptime 1 strptime 中的p指parse 解析 一般解析都是说对字符串进行解析 所以strptime 方法是将字符串解
  • Yapi接口一键生成Java代码

    文章目录 一 简介 1 这是什么 2 有啥用 3 为什么要用 二 快速开始 1 下载 2 配置 3 运行 三 版本说明 v1 0 0 v1 0 1 四 Github项目地址 一 简介 1 这是什么 这是一个Java代码生成器 2 有啥用 能
  • IDEA如何生成 serialVersionUID

    序列化和反序列化 Java是面向对象的语言 与其他语言进行交互 比如与前端js进行http通信 需要把对象转化成一种通用的格式比如json 前端显然不认识Java对象 从对象到json字符串的转换 就是序列化的过程 反过来 从json字符串
  • import-from

    1 import from可以导入什么文件 通过import from 导入时 from后的来源可以是js vue json 这个是在webpack base conf js中extensions设置的 该属性值默认是js vue json
  • 深度学习入门资料整理

    深度学习基础总结 无一句废话 附完整思维导图 深度学习如何入门 知乎 深度学习入门基础讲义 shuzfan的博客 CSDN博客 深度学习入门 神经网络15分钟入门 足够通俗易懂了吧 知乎 深度学习基础知识点梳理 知乎
  • MQ-2烟雾传感器代码(STM32单片机驱动)

    MQ 2烟雾传感器代码 STM32单片机驱动 MQ 2烟雾传感器简介 接线 三级目录 MQ 2烟雾传感器简介 MQ 2烟雾传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡 SnO2 当烟雾传感器所处环境中存在可燃气体时 烟雾传感器的
  • 什么是 BFC?

    3 BFC的规则 BFC就是一个块级元素 块级元素会在垂直方向一个接一个的排列BFC就是页面中的一个隔离的独立容器 容器里的标签不会影响到外部标签垂直方向的距离由margin决定 属于同一个BFC的两个相邻的标签外边距会发生重叠计算BFC的
  • 在线吉他调音

    先看效果 图片没有声 可以下载源码看看 比这更好 再看代码 查看更多
  • 输电线路故障诊断(Python代码,逻辑回归、决策树、随机森林、XGBoost和支持向量机五种不同方法诊断)

    效果视频 输电线路故障诊断 Python代码 逻辑回归 决策树 随机森林 XGBoost和支持向量机五种不同方法诊断 哔哩哔哩 bilibili 项目文件 code py装载的是英文版本 图上显示英文标签及坐标 Chinese py装载的是