工业数据分析竞赛的那些事儿
来源: | 作者:pmod6d781 | 发布时间: 2024-07-30 | 633 次浏览 | 分享到:


数据分析的竞赛大概分几种典型类别?

从赛事组织的角度,组织这场比赛的初衷不同,就决定用什么样的形式来设计这场比赛。

第一类,创意赛,适合探索一些新的技术领域,还没有特定的场景和数据,又需要有一些新的想法涌现。

创意赛是规定一个新的题目,需要结合行业知识和企业访谈去找新的解决方案,考核重点是大家能不能把一个具体行业问题巧妙解决,而不在算法。最后提交形式是一个报告或者报告衍生的一些视频,包括POC演示系统等。典型问题例如:大模型如何结合你的行业需求落地应用?如何借鉴其他行业的工业互联网经验,对你所在的产业带来价值?

第二类,有相应的技术得到了一定程度的运用,就可以做成解决方案赛。一般针对一个现实问题,给一些领域限定,比如在设计、智能制造或者其他,大家结合企业的实践和自己的想法,基于过去几年的沉淀再提升和总结,提出一个解决方案,最后评估可行性和可复制性。

第三类,有一定的场景和数据积累,对结果也有一定的量化目标,就可以考虑算法赛,尝试解决一个现实问题。比如背包问题,问题明确,甚至有标准答案,也有边界条件,需要提交一个结果。这种类型的统称为ACM赛事,典型赛事例如KDD。有的ACM算法赛会考核在一个很短的约定时间内提交结果,考核能不能运行,运行效率如何,能不能编译,给你随机出一个输入,你能不能算出来。

工业数据分析挖掘的价值,对时效性、对环境的依赖各有侧重。国内竞赛为了保证算法可用,一般还要求代码,但由于大家用的环境和版本不一样,并不严格要求代码一定能运行,或者说并不要求在指定的时间内跑出来,主要是看提交结果。

第四类,为了促进领域的技术研究,做open dataset赛。没有规定时间,大家在同一个地方公平测试,参与打榜,后来者可以在前人的肩膀上进一步研究,也可以知道这种算法在什么情况下有效没效,促进整个研究生态的发展。

其实工业数据分析竞赛一方面提供有限时间内的竞技,另一方面,赛题数据集本身也可以成为供大家继续研究的基础,竞赛之后还可以继续演进,做研究发论文,也可以把它当成一个案例练习。

以算法赛为例,从赛事组织的角度看,设计竞赛有哪些考虑因素?

首先要公平性,工业数据竞赛要对高校或者非本行业的人公平,不能出一个水电的题目就只有水电行业的人能得高分,非水电的人就差很多。机理不能太深,一般出题的时候会提供很多与解题相关的行业参考文献,把领域专家的知识都提前公布出来,让大家在一个起跑线公平竞争。

第二要有可区分性,得分要拉得开差距,又不能出现断崖式的差距。我们2017年参加PHM竞赛的时候,做高铁转向架的故障诊断,把机理和数据巧妙结合之后,按照原始排名,我们高出其他团队十几分,即便最后一个报告不交,都能得第一。后来赛会被迫调整了两个子问题中第二个问题的权重。第一名和第二名不能差那么多。

第三,对工业数据分析竞赛来说,数据的预处理也很关键。

企业一般喜欢出故障诊断、价格预测、需求预测类的题目,最开始要去准备相应场景下的原始数据集,做一些相应的标注以及脱敏处理。一方面数据比较敏感,另一方面也是为了公平性。之前就有一年我们联合湖南电网出的水流量预测的题目,湖南电网这个名字一出来,有人可能就沿着地图去找旗下的水电站,对照历史的真实数据,特别是水利专业院校的会有先天优势,我们必须做数据处理,避免参赛选手动歪心思。

另外,国外好多竞赛的数据集出现过和预测结果高相关的量,一旦线性相关达到0.9或0.8,题目难度就降下去了,这也是要注意的。

出题企业愿意提供尽量丰富的数据,也确实花了很多精力,但有时不小心把一个觉得选手不会用的变量带进来,对选手来说也是误导。从竞赛的角度来说,只要给的我都可以用。但是一到答辩的时候,专家可能发现因果关系倒置的情况。所以赛前需要大量的数据预处理,加工完之后,有时还要把样本稍微均衡一下,别让竞赛太难,区分度太大。

赛题公布之前,一般都要邀请不同的专家提前试做,看看难度怎么样,会不会出现一些意想不到的情况,尽量前期考虑全面一点,避免实际执行中选手发现一些新的问题,这样对整个比赛的进程会有影响。当然试做的专家在开题之后就不会提供任何与赛题相关的信息,直到比赛结束。

一般来说,我们会鼓励选手,放开手脚大胆干,可以用机理结合数据,也可以用纯数据、纯人工智能去做。从评委或者从出题人的角度,两种结果我们都喜欢看。

如何看待赛题中的非监督学习与监督学习赛题?

局部的或者领域内部的可以尝试非监督学习或者甚至没有任何标签。但是一般面向大众的赛题都是尽量走监督学习或者是运筹优化。

非监督学习比较难,例如能源企业集团面向内部的领域赛事,可以出一些无监督学习的场景,比如给出一组风电基础数据,没有标签,可以告诉你是多少兆瓦的、什么型号、多长年限、大概在什么位置,选手要来分析哪个风功率曲线或者哪个部件是有异常的。甚至出题人也不知道结果,最后到现场以激光测速雷达再测一遍,看谁的结果最接近。当然你可以怀疑激光测速雷达不准,但出题方会邀请资深的行业专家复核结果。

监督学习,例如运筹优化,例如给你一个物流网络,在多长时间内算出一个结果,然后看谁的排班最好。偶尔也会安排一些极端情况,看看你的程序能不能顶得住,能不能用,都需要精心设计。

纯算法型赛选手也需要注重可解释性

近几年,参赛选手最喜欢用的是深度学习,只要数据量够大,不管怎样都值得试一把;第二,各种boosting(包括XGBoost、 Catboost、 LightGBM等)是竞赛选手的标准操作;其他就是各显神通。有题目特征相对明显,用Random Forest等传统机器学习能做得非常好。

当然,如果在同样情况下,从评委的角度更喜欢可解释性,你要知道你的模型边界是什么。好多选手可能对工业不太熟,可解释性还有待提升。非行业选手在可解释性上能到一个大概的粒度,就挺好的。

竞赛中一般会把一些现实中可能出现的极端情况过滤掉,避免对大家造成干扰。因为极端情况没有特别好的办法,需要加入一些人工经验或者规则来辅助,非业内人士不知道。所以题目做了一定程度的理想化,而在理想化的情况下,再不知道边界那就更不应该了。

你说试了所有的算法,发现就这个分高,也是一种解释。但评委更希望过程有一些感悟和收获,例如在这种情况下,贝耶斯也不错,最好讲清楚为什么不错,为什么不行,收敛性不好还是什么。我们希望通过竞赛,不光是得出一个分数,还是希望大家有点收获,如果能转化成一个科研项目,或是回归到工业界应用,构建一个闭环那就更好了。

数据分析竞赛与现实工业数据分析项目的异同

整体来看,依照CRISP-DM,做赛题和做实际项目流程一样,从业务理解选题到数据理解、数据预处理、建模、模型评估到模型发布,都需要一套完整的流程。

不过做赛题是专家和选手组合在一起完成的,在公布赛题之前专家也会提前走一个闭环做验证,而选手是从数据理解开始完成后面的流程。

赛题需要考虑趣味性,能够不断迭代,如果做五天和做一天的结果没有明显差异,说明题目深度或者数据预处理的特征提取上可能有点浅。

和实际项目相比,比赛缺少交互。实际项目中拿到的数据都是不确定的,要反反复复确认,数据质量也不能一下讲清楚,需要很多交互,甚至做到一半可能会重新定义题目。比赛中这部分工作都在专家出题验证的时候就前置解决了。

现实项目会比竞赛更加复杂,因为定义出一个数据可解的好题目,就完成了工作的一半。通过竞赛,我们希望吸引更多的人关注工业数据价值,推动工业数字化的落地。