【工业智能】VSB Power Line Fault Detection-chapter1

VSB Power Line Fault Detection-chapter1

  • background
  • dataset
  • 数据介绍
  • 信号处理方法
  • EDA
    • train
  • feature engineering
  • model train try

信息来源:Kaggle Competition : VSB Power Line Fault Detection

background

中压高架线路绵延上百公里来为城市提供电力。因为距离很远,所以人工检测那些没有立即导致断电的线路破损是很昂贵的。例如树枝撞击了电线或者绝缘有破损。这种损伤模式导致了局放的现象。局放:不能完全桥接绝缘系统之间电极的放电。局放会慢慢破坏电线,如果放任不管,最终会导致断电或起火。
task:
检测信号中的局放模式,使用这些数据进行有效的分类,会使得持续监控电线故障成为可能。

dataset

URL:
https://www.kaggle.com/competitions/vsb-power-line-fault-detection/data
其中,除了3个csv,还有2个parquet文件。
parquet是面向分析型业务的列式存储格式。
一个parquet由一个header和一个或多个block块组成,以一个footer结尾。
header中只包含一个4字节数字PAR1用来识别整个parquet文件格式。
文件中所有的metadata都存在于footer中。
reference:
https://blog.csdn.net/qiangzi_lg/article/details/85791988

数据介绍

每个信号包含80万个电线电压测量值,测量超过20ms。由于底层电网以50Hz运行,这意味着每个信号都覆盖一个完整的电网周期。电网本身是三相供电的,所有测量值都是三相同时测量的。
metadata.csv
id_measurement: 同时记录三个信号为一组的ID代码
signal_id: 信号数据的外键。每个信号id在训练集和测试集中都是唯一的。因此训练集中的第一个id是0,测试集中的第一个id是8712
phase:三个一组的信号的相位ID代码。这个相位可能或者可能不是受线路上的故障影响。
target:如果线路没有破损则为0,有故障则为1.
train/test.parquet
信号数据。每个列是一个信号。使用pyarrow导出的80万个int8的测量值。parquet 版本0.11 .
请注意,这和我们平时的每行为一个观测值的不一样。这使得有效地加载该信号的子集变得可能。
train.parquet
head()
在这里插入图片描述
tail()
在这里插入图片描述
shape
(800000, 8712)
test.parquet
head()
在这里插入图片描述

tail()
在这里插入图片描述

data shape
(800000, 20337)

sample_submission.csv: 一个有效的提交样本.

besides,数据是来源于ENET centre的,所以这里把ENET相关URL也放在这里,
https://ceet.vsb.cz/cenet/en/about-us/

信号处理方法

reference:
https://zhuanlan.zhihu.com/p/63344213

电力电缆故障分析
https://zhuanlan.zhihu.com/p/51728262

Matthews correlation coefficient, MCC,二分类问题评价指标:
https://zhuanlan.zhihu.com/p/650766045

PRPD PRPS
PRPD
Partial Response to Pulse Discharges,是局部放电相位分布图谱,将局部放电产生的脉冲信号携带相位显示在二维坐标系中。
PRPS
Partial Response to Pulse Signals,是局部放电脉冲信号谱图,将局部放电产生的带相位的脉冲信号按照时间先后顺序显示在三维坐标系中。

EDA

首先可以看到,并不一定三相一起故障,单独一个相故障,两个相故障都是有可能的。

train

信号的最大最小值分别为:127、-128,电压单位V
【工业智能】VSB Power Line Fault Detection-chapter1_第1张图片
train dataset中,
target共计8712条,target1的有525条。占比6%。
phase
0:
target共计2904条,target1的有178条,占比6.13%
phase
1:
target共计2904条,target1的有166条,占比5.72%
phase
2:
target共计2904条,target==1的有181条,占比6.23%
对每个样本计算三相同时故障、两相同时故障、单独一相故障的个数:
Counter({0: 2710, 3: 156, 2: 19, 1: 19})
可见在故障中,大多数情况下是三相同时发生故障,在故障中占比80.4%

DP:
parquet文件数据读取代码:

from fastparquet import ParquetFile
datadir = r'./train.parquet'
pf = ParquetFile(datadir)
df = pf.to_pandas()

归一化,from (-128 to 127) to (-1 to 1)
特征工程,
均值,标准差,均值+标准差,均值-标准差,峰峰值,四分位数,四分位数-均值
tqdm:
tqdm模块是python进度条库
tqdm derives from the Arabic word taqaddum ( ) which can mean “progress,”
[00:06<00:00, 16.04it/s]
第一个00:06是已用时间,第二个00:00是剩余时间, 16.04it/s表示每秒16.04项
数据集KFOLD切分
LSTM模型训练
计算最佳阈值和MCC指标
测试

np.squeeze
用于从数组中删除单维度的条目。

feature engineering

可以统计出常见 的故障模式,在该模式下,电压信号的表示形式,可伸缩。然后滑窗观察数据,计算当前窗口与统计故障模式的MSE,值越小则有该故障模式的可能性越大。

model train try

用训练集做模型尝试
铜牌代码:
KFold(分割训练集和测试集),K=5
算法:LSTM attention
对每个80w个点的signal,切分了160份,对每一份5000个点的数据取19个特征。
故:每80w个点形成16019个特征输入,再将每个采样的三相数据拼接,形成16057大小的特征输入。
输出为某一相的target。
即模型输入为:(2904,160,57),输出为(2904,)
用Matthews 系数来计算准确性。
(Matthews系数介于-1至1之间,越接近1说明对正样本类别判出的效果越好)

chapter2 of this topic:
https://blog.csdn.net/weixin_46870583/article/details/135596378

大于80m用光纤,小于的话用网线。

你可能感兴趣的:(学习,python,制造,数据挖掘)