数据竞赛:工业互联网算法大赛能源赛道风机轴承剩余寿命预测

背景

做好比赛的关键大概是:“唯手熟尔”。熟练后,I guess取得成绩只是或早或晚的事情(sooner or later)。技能熟悉后,主要是要找到任务和数据的特殊之处并着手应对。这个题最特殊的大概是赛制,其实只有一周时间,而且是在测试集不可见、每天只提交一次的情况下,最后一天还要提供方案介绍、PPT、解说视频等材料。由于主办方不允许赛中和赛后开源代码,所以这里就介绍一下我之前的赛前准备。八月初还要出差,这里主要是开始前的准备工作。不过本来以为一个0.5w的比赛应该不会很激烈,谁想到最后还是很激烈。
既然自己工作就是工业数据分析,也已经趁着这段时间工作不忙参加比赛了,就不要想别的事情了,专注在任务上。(其实想最多的是,数据这么难处理的0.5w比赛,最后还两手空空,潜意识总觉得不值,至于部分人觉得做工业互联网为制造业做贡献的想法我很欣赏,但我自己是真有一头牛,毕业后先后在航空和汽车做了九年,这两个领域已经快磨灭我了,导致我九年又累又荒废,开始想做航空赛道马上放弃,实在是再承受不起这情怀)。

任务

能源赛题的任务是基于传动系统上主轴承的振动信号预测风电机组主轴承剩余寿命。参加这道能源赛道和汽车赛道主要是因为情怀吧,在我不会编程的时候,第一份工作毕竟做了五年寿命预测。当然,这些经验对比赛毫无帮助。
接下来就开始寻找资料:一种是风机,一种是轴承。之前涉及到的风机比赛有“DF-风机叶片开裂故障预警”和“第一届工业大数据竞赛-风机结冰故障“。因此我首先查看了这两个比赛的Top开源,直接从这里找到的:https://github.com/hongyingyue/Competition-solutions。
而轴承的寿命预测,之前有“DC-轴承故障检测训练赛”,但这题太过简单,稍微跑一跑就几乎满分了。同时轴承的寿命预测也是业界研究比较多的课题,那么就利用开始前的这段时间提前研究一下。
整体思路:

采用时域、频域、时频域的lgb模型
深度学习模型
由于设备数少,有可能极简单的模型就可以胜任,但需要少量robust、novel的特征

每天的单独建模
每天的avg或者max建模
故障发生时间到结束是关键,前期都是正常的。先找故障征兆
数据
虽然数据要7月31才发布,但是一开始就给了列名,据此可以做一些准备工作,可能并不是自己熟悉的领域。因为涉及到振动的高频数据,往往需要时域加频域的特征提取,而在我自己工作中振动只有较长间隔的振幅来,所以一直没有机会做频域特征提取。
另一个值得注意的点是,这里的振动单位给的是加速度。就去研究了一下加速度代表的振动,发现加速度传感器是振动测量的主流。
由于工况往往对工业数据影响较大,因此对不同机器、不同时间的数据要先看看是否需要划分工况,是否需要聚类增加一个类别特征。
数据预处理可以包括缺失值处理、异常值检测和处理、噪声处理等。
D1: 第一天照例,基础特征加Lightgbm。得分0.42,排在第七。前面花了很多时间整理数据,但感觉同时cover多个赛道是不可能完成的任务。所以第2天后进行了技术性调整阶段,看到排行榜上很多大佬直接霸屏多个赛道,好几个队伍手握多个Top3,还是把精力暂时放在优势的赛道上。每天看看分,调调参,一副躺平的样子。但是其实这个任务是一个很经典的任务,也有很多经典的特征与模型值得学习。但一想到提交文件里只有两个数,就有点失望,之后有时间还是参加一下真正的消费者互联网任务,但是我好像一直没摸到门道,成绩较差,还是没适应那种所有人分差都特别接近的比赛吧。

机理

作为工业机器学习,在做特征之前应该对机理有所了解,很多有效的特征其实需要机理知识来帮助我们做特征工程,这也是工业机器学习最大的不同。

特征

通过观察数据发现特征可以提取时域、频域、时频域。
考虑指数模型的特点作为特征
每个特征是否可用需要检查训练集两个样本与测试集两个样本是否同分布
整体参数特征,例如效率

时域特征:
常用方法我总结如下
x = {
“RMS”: np.mean(sig**2),
“STD”: np.std(sig),
“Mean”: np.mean(sig),
“Max”: np.max(sig),
“Min”: np.min(sig),
“Peak-to-Peak”: (np.max(sig) - np.min(sig)),
“Max ABS”: np.max(abs(sig)),
“Kurtosis”: kurtosis(sig),
“Skew”: skew(sig),
}

频域特征:
主要从频谱、包络谱、功率谱等坐标下进行特征提取。尤其是相关频率和幅度作为特征,还有比如频谱占比,平均频率,轴心轨迹,以及谱峭度kurt是经过实践检验是业内常用的方法。
结合特定轴承从机理分析的方法如从轴承固有频率Ball Pass Frequency Outer(BPFO)等。

时频域特征:
主要考虑短时傅里叶变换和小波变换。

模型

模型正常的话,还是尝试一下LightGBM和NN即可。可能存在的问题就是标签不平衡问题。
但是这个比赛本身研究这样根本没啥用吧,通过合适的方法去拟合排行榜才是最高效的,毕竟提交文件里只有两个数。所以我猜测正确做法是一个数一个数的改,然后找到分数和差值的关系就可以得到解析解吧。

参考

开源数据:https://github.com/mathworks/WindTurbineHighSpeedBearingPrognosis-Data
该数据方法1:https://github.com/luishpinto/wind-turbine/blob/master/pkurtosis.ipynb
该数据方法2: https://ww2.mathworks.cn/help/predmaint/ug/wind-turbine-high-speed-bearing-prognosis.html
该数据方法2中文版:https://zhuanlan.zhihu.com/p/100552574
该数据集在kaggle:https://www.kaggle.com/luishpinto/wind-turbine-high-speed-bearing-prognosis-data/code

希望大家继续取得好成绩,由于主办方限制,这里就不分享数据和代码了。可自行查看原始数据:https://shimo.im/docs/RKAWgeJKG2toQvA8/read

猜你喜欢

转载自blog.csdn.net/weixin_38812492/article/details/119744682