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

效果视频:输电线路故障诊断(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

只对数据集,感兴趣的可以关注下面最后一行

复制代码
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-ZJ6VmZ5t
相关推荐
Max_uuc8 分钟前
【C++ 硬核】打破嵌入式 STL 禁忌:利用 std::pmr 在“栈”上运行 std::vector
开发语言·jvm·c++
白日做梦Q8 分钟前
Anchor-free检测器全解析:CenterNet vs FCOS
python·深度学习·神经网络·目标检测·机器学习
故事不长丨8 分钟前
C#线程同步:lock、Monitor、Mutex原理+用法+实战全解析
开发语言·算法·c#
牵牛老人11 分钟前
【Qt 开发后台服务避坑指南:从库存管理系统开发出现的问题来看后台开发常见问题与解决方案】
开发语言·qt·系统架构
froginwe1119 分钟前
Python3与MySQL的连接:使用mysql-connector
开发语言
喵手22 分钟前
Python爬虫实战:公共自行车站点智能采集系统 - 从零构建生产级爬虫的完整实战(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·采集公共自行车站点·公共自行车站点智能采集系统·采集公共自行车站点导出csv
喵手29 分钟前
Python爬虫实战:地图 POI + 行政区反查实战 - 商圈热力数据准备完整方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·地区poi·行政区反查·商圈热力数据采集
熊猫_豆豆35 分钟前
YOLOP车道检测
人工智能·python·算法
nimadan1236 分钟前
**热门短剧小说扫榜工具2025推荐,精准捕捉爆款趋势与流量
人工智能·python
灵感菇_38 分钟前
Java HashMap全面解析
java·开发语言