赛题 A 工业机械设备故障预测 分析、代码、预测结果 | 2022年第二届中国高校大数据挑战赛


一、题目

关键词: 工业机械设备故障预测、影响因素分析、分类任务(二分类/多分类)、标签类别不平衡、数据挖掘


二、数据预处理和分析

赛题所给数据包括机械设备使用环境和工作强度的相关指标,先进行数据查看/熟悉和预处理,分析可知数据没有重复值和缺失值

请添加图片描述

接下来注意,训练集其实存在两个异常值,如下所示:

是否发生故障为 1,可具体故障类别却为 Normal,选择删除这两条数据,避免引入噪声。下面说一下变量和预测目标的含义:

变量:

  • 机器编号: 此设备的标识
  • 统一规范代码: 机械设备的统一规范代码
  • 机器质量等级: 质量等级分为高、中、低(HML)三个等级
  • 室温(K): 设备所处厂房的室温(单位为开尔文 K)
  • 机器温度(K): 工作时的机器温度(单位为开尔文 K)
  • 转速(rpm): 转速(单位为每分钟的旋转次数 rpm)
  • 扭矩(Nm): 扭矩(单位为牛米 Nm)
  • 使用时长(min): 机器运转时长(单位为分钟 min)

预测目标:

  • 是否发生故障: 取值为 0/1,0 代表设备正常运转,1 代表设备发生故障。8697:301(说明标签类别不平衡
  • 具体故障类别: 包含 6 种情况,分别是 NORMAL、HDF、OSF、PWF、TWF、RNF。HDF 代表散热故障;OSF 代表过载故障;PWF 代表电力故障;TWF 代表磨损故障;RNF 代表其他故障。8697:95:85:74:41:6(同样也标签类别不平衡)

分析发现机器编号和统一规范代码在训练集与预测集无交集,建模预测时无须用这两个变量。

机器质量等级分为高、中、低(HML)三个等级,重新编码处理。查阅资料和文献,可以构造一些新的合理的特征,比如转速(rpm)× 扭矩(Nm)、转速(rpm)× 使用时长(min)。工业机械设备故障预测这样实际的工程问题比较复杂,简单的模型(Logistic 回归、KNN 可能表现不佳),主要还是用树模型和神经网络。根据实际情况做归一化/标准化(树模型不需要)。

分类任务,处理标签类别不平衡问题:

  • 数据层面的方法:欠采样/重采样/组合采样(SMOTETomelink,imblearn)技术。这个题目的数据的特征较少,少数类别占比很小,推荐做一下组合采样(但注意:建模时对训练集!测试集不要一起处理)。
  • 算法层面的方法:集成学习(随机森林、XGBoost)、代价敏感学习(其实就是设置少数类别权重更大一些)
  • 当做无监督学习异常检测任务,用异常检测的方法(孤立随机森林、AutoEncoder)。

熟悉数据后,对解决问题明确了思路,根据关键词找相关文献,对着问题分析开始编程建模,选择合适的方法解决问题。


三、问题分析

任务 1: 观察数据 “train data.xlsx”,自主进行数据预处理,选择合适的指标用于机械设备故障的预测并说明原因。

  • 数据熟悉和预处理已经做了,任务 1 就很简单。选择合适的指标用于机械设备故障的预测,其实是个特征选择任务,综合多种方法和分析即可!
  • 统计的方法(model-free):相关性分析【但要注意预测目标是分类变量,别乱套 pearson 什么的】、最大互信息系数(MIC,Python 有 minepy 库)、模型预测的方法(因为数据量为 9000,而特征数小于 10 ,因此可以这么干):递归特征消除 RFE、Boruta 方法(有新意!)、随机森林/XGBoost 等的特征重要性分数【这时候不用调参优化和评估,能建模预测,筛选出特征就行】、SHAP 可解释性。

任务 2: 设计开发模型用于判别机械设备是否发生故障,自主选取评价方式和评价指标评估模型表现。

  • 预测机械设备是否发生故障,标签类别不平衡的二分类任务。评价方式可以打印那个 classification_report 和可视化混淆矩阵,评价指标推荐计算 F1-Score 和 AUC(因为标签类别不平衡),多个模型的结果用三线表展示。模型训练时注意用分层交叉验证划分训练集和测试集(不同 Fold 里保持类别的分布一致,因为少数类别挺少的,推荐使用 3 折)。调参优化,这个数据量不大,可以用网格搜索/随机搜索,但要有点特色的话,推荐用 Optuna 的贝叶斯优化,论文也能吹。
  • 看见评论区小白问 A 题第二问的开发模型是什么意思?软件开发模型嘛,这个可以解答一下么。emmm,这个就是机器学习建模预测嘛,针对标签类别不平衡的二分类任务。
  • 总之,前面数据处理、探索性分析、特征筛选已经做好啦,这里是机器学习建模预测(针对标签类别不平衡的二分类任务,以及选择合适的评价指标),多用几个方法和对比!(随机森林、XGBoost、LightGBM、CatBoost、AdaBoost、神经网络、DeepForest、LCE【这个比较新】),基础模型作为 Basline 看你最后补个啥的吧(如果需要,KNN、Logistic 回归啥的,对比也能看出,通常集成学习效果更好,泛化性能通常也强,对于解决实际问题)。

任务 3: 设计开发模型用于判别机械设备发生故障的具体类别(TWF/HDF/PWF/OSF/RNF),自主选取评价方式和评价指标评估模型表现。
任务 4: 利用任务 2 和任务 3 开发的模型预测 “forecast.xlsx” 中是否发生故障以及故障类别。数据 “forecast.xlsx” 与数据 “train data.xlsx” 格式类似,要求在 “forecast.xlsx” 第 8 列说明设备是否发生故障(0 或 1),在第 9 列标识出具体的故障类型(TWF/HDF/PWF/OSF/RNF)。

  • 任务 3 跟任务 2 是类似的,扩展到了多分类预测。评价方式可以打印那个 classification_report。评价指标仍可以使用 F1-Score 和 AUC。
  • 任务 4 其实就是任务 2 和任务 3 的模型交叉验证和调参优化达到最佳,预测输出 “forecast.xlsx” 对应的结果,填进表里。仔细一些。

任务 5:探究每类故障(TWF/HDF/PWF/OSF/RNF)的主要成因,找出与其相关的特征属性,进行量化分析,挖掘可能存在的模式/规则。

  • 作为最后一个问题,量化分析和挖掘与每类故障相关的特征属性(主要成因)。
  • 首先统计分析(分组、对比)看一下差异,做可视化,直观了解。结合之前的模型预测,特征重要性分数和 SHAP 可解释性。尝试一下关联分析/规则。
  • 相关参考文献的分析和结果可以借鉴,解决这样的实际问题。合理即可,论文包装得好。

需要指导、代码/建模辅助、好的预测结果、精美可视化、论文完善的可以私信我,以赛促学,收获更多,不仅仅是拿个奖(降低信息差,拿个二等奖很简单,而不是只能拿个成功交钱奖)。名额有限、先到先到!有意的小伙伴可以抓紧,带你降维打击这个比赛!


本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>