• 输电线路故障诊断(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预测

    支持向量机预测

    逻辑回归

     

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

    1. import numpy as np
    2. import pandas as pd
    3. import matplotlib.pyplot as plt
    4. import seaborn as sns
    5. import warnings
    6. from sklearn.model_selection import train_test_split
    7. from sklearn.preprocessing import LabelEncoder
    8. from sklearn.neural_network import MLPClassifier
    9. from sklearn.metrics import accuracy_score, classification_report, confusion_matrix
    10. #代码和数据集的压缩包:https://mbd.pub/o/bread/mbd-ZJ6Vmpdy

  • 相关阅读:
    H5 简约四色新科技风引导页源码
    【Multiwfn学习】-Multiwfn批量读入xyz结构文件并生成ORCA输入文件
    JDK1.5 新特性【泛型】
    阿里内部高并发编程高阶笔记终于开源出来了!
    Day798.Java编译 -Java 性能调优实战
    MyBatis关联映射深度解析
    Maven学习(二)
    python3 学习记录 字符串处理
    mysql—多表查询
    gitlab-ce-12.3.5 挖矿病毒及解决方案
  • 原文地址:https://blog.csdn.net/qq_40840797/article/details/132892606