第二届全球工业互联网算法大赛-汽车赛道第1名方案

原文发表于:数据竞赛:工业互联网算法大赛汽车赛道Top1方案
欢迎关注微信公众号:YueTan

image

背景

18年时,我在天津Valeo做VDA审核。印象很深,审核时,完全不像实习的工厂态度,甚至安排厂长和总部VP给我们卑谦的详细介绍。最后那天,厂长忙前忙后的拿各种材料佐证自己确实按流程在做,我无聊的试图在本子上从头写出线性回归,没写出来。那时才意识到自己水平真是差,开始慢慢学习了一波ML。今天遇到汽车的比赛,就参加了。之前已分享过在其他赛道的经历:

  • 装备赛道Top5方案
  • 能源赛道Tail5方案
  • 工业比赛集锦
  • 最强答辩技巧

比赛特点:

  • 信号特征,在预处理上要花不少时间。用了祖传代码为基础。
  • 特征选择,肉眼可以提前判断是否有效。
  • 个人拙见是这个任务不怎么适合机器学习,至少目前给出的数据不适合。因为目标几乎找不到任何有效特征,随机性很大。但整体场景在汽车工业很常见,需求很大。
image

个人总结:

  • 运气第一,比赛第二
  • 一些常用特征和验证方法仍然有用
  • 针对数据特殊情况,做了一些平平无奇处理
image

Roadmap

D1

拿到测试数据后,首先把探索性分析用在新数据上。特征主要是基本的套路,特征上主要是全局的统计特征,加分段的统计特征。工序划分方法如下:

image

画图分析的时候发现了一个规律,就是拧紧阶段会有一个角度逆行,如果逆行期间的扭矩平整又规律的话,静态扭矩有可能更大。最后证明是矮子里拔将军的好特征:

image

D2

D1得分:1.93,排名:1st/8。

在D1基础上新建了部分特征,同时一开始的猜测是正确的,这个数据做机器学习只比平均值靠谱一点点。所以用instance based模型应该更靠谱一些。这里首先换了一种验证方法,原本按file_id分层采样的五折交叉验证,通过我的观察,数据是连续的,完全没有打乱,而一些波峰是连续的。既然机器学习不好用,找到测试集和训练集哪一段最相似,也许可以出奇制胜了。这里我先用0-100和100-200了,因为猜测这两段就是关键。本地验证从1.67增加到1.72。预测平均值由25.14减少一点25.07。

image
image

D3

D2得分1.964,排名2nd/15

分析:上了一堆花里胡哨之后,还自以为找到了一些规律,但得分下降了。不过还算正常,比赛都会有一段瓶颈期,没想到来的这么突然。一下子改动太多,其实不知道哪个能加分、哪个会减分。教训就是每次只选择最有希望的两个,变量要控制好。本地验证难道有用?感觉想多了。

进展:继续滚动播放信号与类别的关系,试图发现点什么规律。同时,认真分析了D1新提供的数据电流时间曲线,看看能不能摸索出一些规律,先回退到了D1。同时每隔10跑一个本地验证,试图找到哪段数据集和测试集是最接近的。暂时没有找到哪段和第一天分数相近。

image

D4

新增了数据筛选部分。分析:目前对特征上的收获是1)从机理和数据两方面涞源进行添加,2)训练时要反复检查才能加入,毕竟特征和目标的关系肉眼可见。

进展:回到了之前发现的唯一一个像样的规律。从机理上说,静态扭矩应该小于动态扭矩,但事实却是有一些30多的。而且RMSE作为评价指标,这几个异常也是占分非常大的,我Lightgbm设置的同一叶子节点的最小样本是7,所以这几个样本基本考虑不到、还加大了原节点误差。D5从这点切入,预测值较大、同时该特征也特别大的情况下,把他们都提到31。为了稳妥,只选了两三个数字进行调节。

同时新增加了过度阶段的其他统计特征:

image

奇妙的一夜,换了数据说晚上11点测试一次。然后,又多给了一次11:30的测试机会。不知道有没有人已经睡了,或者电脑不再身边,就挺突然的;还好半夜的我一般都在电脑前。

D5

白天通知说比赛延期两天,很多人私信反应要求增加。

原计划:对划分的所有阶段,暴力生成所有可能生成的统计特征。然后分别用split gain和null importance的方式特征选择。

新计划:躺平,每天只调节参数提交。主要是模型后处理的参数,也就是整体偏移量。

image
image

D6-D9:

无进展,由于在排行榜领先,每天简单调调参数就提交了,调节整体偏移量真的有些进展。一个小比赛就结束了,运气独占八成,由于主办方要求,代码不能开源,下期再见。我是YueTan,谢谢关注

你可能感兴趣的:(第二届全球工业互联网算法大赛-汽车赛道第1名方案)