【ACE成长记第4期】美女程序员分享:机器学习之数据预处理到特征构建模型训练

本文涉及的产品
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
简介: 本期由阿里云MVP&优秀ACE(阿里云开发者社群) 郭翔云 为大家分享机器学习之从数据预处理到特征构建谈天池工业AI竞赛模型训练。通过天池工业AI竞赛示例,演示从数据观察到特征构建,再到模型训练验证评估的一个机器学习的完整流程。

本期由阿里云MVP&优秀ACE(阿里云开发者社群) 郭翔云 为大家分享机器学习之从数据预处理到特征构建谈天池工业AI竞赛模型训练。通过天池工业AI竞赛示例,演示从数据观察到特征构建,再到模型训练验证评估的一个机器学习的完整流程。
视频:https://yq.aliyun.com/live/597
_

分享分为三部分:

  • 基于天池工业AI大赛-智能制造质量预测的赛题进行示例分析;
    1.1赛题与数据理解

1.2数据预处理
1.3特征构建
1.4模型与参数选择

  • 个人经验总结;
  • 个人推荐。

一、赛题分析
1.1赛题与数据理解
2
赛题示例分析选取的是阿里云天池大数据竞赛平台上的天池工业AI大赛-智能制造质量预测赛题。

3
首先我们来看赛题分析。
本次比赛提供了生产线上不同工序的参数数据。通过这些参数特征设计模型,预测与之对应的特性数值。
赛题的难点在于生产过程复杂,参数众多,存在空值和异常值。
赛题的价值在于通过建立算法模型,希望能够提前发现当前工序中所存在的问题,避免问题流入到后道工序,减少生产资源浪费,优化产品良率。
评测指标选取的是MSE,MSE的值越小代表预测结果越好。
4

在我们拿到数据的时候,首先要对数据进行观察,通过观察,可以发现数据包含以下特点:
特点1,数据包含ID列、工具列、参数列,训练集包含目标列。
特点2,参数列和目标列经过脱敏处理,无法得知其物理意义。
比如我们来看下面的数据示例,我们会发现参数列的名称为210X1、210X2等,是经过脱敏处理的,也就是说我们无法从业务角度进行考虑。

5
特点3,通过观察时间,发现参数列并不是从左到右依次产生的。
比如我们来看下面的数据示例,我们会发现下面的5列参数列的发生顺序依次是5、4、1、3、2.

6
特点4,部分参数列存在缺失值、单一值和重复列情况。我们可以看下面的数据示例。

7
特点5,一道工序内,机台的种类直接影响了多个参数列的数据分布。
我们来看下面的数据示例。我们可以发现后面的参数列明显受到前面TOOL列的影响,比如参数210X1,在工具M下数值为101左右,在工具N下数值为89左右,而在工具O下数值为98左右。

8
特点6,部分参数列中的缺失值被机器自动以0或其他异常值进行填充,上述现象存在于同工序下的多个工具中。我们可以看下面的数据示例。

1.2 数据与处理
9
基于上面总结的6个数据特点,我进行了以下数据预处理操作。

10
1、将数据集依照工序列分割为不同的工序单元。
大部分工序列都是以Tool开头的,但是也有几列比较特殊的,比如Chamer ID、OPERATION ID和Chamber列。我们来看一下该如何处理。

11
通过观察,可以发现Chamber ID后面的数据,同时受到TOOL1和Chamber ID的影响,因此把TOOL1和Chamber ID合并作为工具列。
而对于OPERATION ID和Chamber列,后面的数据仅受此列数据的影响,因此把它们看做独立的工序列。

12
2、对数据列的初步清理,先后删除空值占全列40%以上的列、方差为0的列和重复列。
3、对日期列的处理。对于8位、14位、16位的日期数据,因为数据是2016年以后的数据,因此把日期列转为2016年1月1日以来所经历的秒数。

13
5、对各列的0值和NA值,填充工具内内非零非NA元素的平均值。

1.3 特征构建
14
在工业生产中,每一项参数都有标准值,我们该如何评价实际参数的好坏呢?
以冰箱这种典型工业产品为例,我们当然是希望冰箱的温度控制越精确越好,能耗越低越好。

15
基于以上思考,我们可以总结出两种评价参数好坏的方式。1、与标准值的差值,也就是所谓的能耗越低越好。2、相对标准值差值的绝对量,也就是温度控制越精确越好。
在这种思路下,除了原值以外,我又建立了两类额外特征备选。
将组内平均值看做标准值。特征1,与标准值的差,看作偏差值err。特征2,与标准值的差的绝对值,看作偏离量errabs。

16
进一步地,两列交互能否作为特征呢?比如时间列,单一的时间戳是无意义的,那么两列时间戳之差就有可能表示某道工序所耗费的时间,可以作为一列新特征。
同样的,既然差我们可以做,那么和差积商我们是不是都可以尝试。

17
因此,对于双因子,我构建了加减乘除反除5个备选特征,将这些因子当做新的独立的因子,像单因子一样考虑原值、偏差值和偏离量。

18
我们来看特征构建的流程。
1、计算单因子和双因子交互列并纳入备选特征。
对于单因子X,建立原始值X,X与组内平均值的偏差值X_err,X与组内平均值的偏差绝对量X_errabs。
对于双因子X和Y。计算X和Y的和差积商反除,同时建立上述五列值的样本值与组内平均值的偏差值err,平均值的偏差绝对量errabs。

19
那么单双因子备选特征具体是怎么计算的呢?
我们首先看单因子备选特征。以210X1为例,假设数据仅包含如下12行,对于工具M,我们计算210X1的平均值为101.6375,原始值与平均值的差为210X1_err,差的绝对值为210X1_errabs。工具N、O也是一样的计算方式。我们将210X1、210X1_err和210X1_errabs作为备选特征。

20
对于双因子备选特征。我们以210X1乘210X2为例,假设数据仅包含以下12行。对于工具M,先分别计算210X1乘210X2,对乘法结果计算均值mean。用乘法结果与均值的差作为err,差的绝对值作为errabs。同理,工具N、O也是一样的计算方式。将210X1210X2、210X1210X2_err、210X1*210X2_errabs作为备选特征。对于加减乘除反除都是同样的计算方式。

21
我们来约定一下单双因子的描述方式。单因子记作X、Xerr、Xerrabs,双因子记作f(X,Y)、f (X,Y)_ err 、f (X,Y)_ erabs。

22
接下来我们对构建产出的特征进行筛选。这里选用的方法是计算备选特征与特征值Value的pearson相关性。
记某特征X与特征值Value的pearson相关性(绝对值)为Pearson(X,Value)。
对于单因子,我们要求Pearson相关性大于0.2。

23
对于双因子,我们要求双因子的pearson大于0.24并且双因子的pearson分别比各自的单因子pearson大于0.05。这里主要是为了强调因子交互带来的额外相关性。
对于单双因子的阈值,是基于当前数据的实验结果给出的,可以进行适当调整。

24
随后填充inf和标准化,共计产出单因子425列,双因子4756列。
单双因子相关系数最高的十维如下所示。
这里需要注意的一点是,下表列出的仅为相关系数较高的列,并不是模型中的重要特征列。

1.4 模型与参数选择
25
在初赛及复赛阶段,在testA公布前,采用的是Train五折交叉验证。在testA公布后,采用的是Train训练的模型结果预测testA。评价指标选用的是mse和R方。
选用这样的模型评价方式主要是为了客观考察模型在新数据集的泛化能力。

26
在初赛阶段,标准化尝试过全体标准化、组内标准化、将训练集测试集分开和和合并标准化等。最后选用的方案是基于当前的特征构建结果,最后标准化。
降维尝试过PCA、SelectKBest等,一直效果不佳,复赛后因提交机会有限,就不再尝试降维。
模型尝试过SVR、Lasso、XGBoost等,最后根据模型效果,主要选用Lasso、XGBoost和GBDT。

27
复赛阶段基于多版本数据和多模型的比较,选择最优的数据和模型。
数据包括单双因子带err、纯单因子、跨工序单双因子无err等,模型包括Lasso和XGBoost。最后根据数据和模型结果,选用的是单双因子带err,XGBoost。

28
最终数据及XGBoost模型参数如下。
利用train数据训练testA的结果,mse为0.02013,R方为0.63564.
将train和testA拼接,利用全部单、双因子数据,最终预测testB。

29
预测结果中的30维重要因子排序如上所示。

30
那么整套数据处理的全流程如下。我们拿到数据的时候首先要对数据进行观察,基于数据理解进行数据预处理,包括分工序、删无效字段和NA、0的补值。然后构建单双因子特征,计算特征相关性,利用相关性阈值进行特征筛选,补inf后进行Z-Score标准化。模型尝试Lasso、SVR等,最后选取Lasso、XGBoost和GBDT。根据模型评估结果选用XGBoost。最后进行参数优化并产出最终预测结果。

二、总结与讨论
31
在进行数据分析建模的过程中,我的个人经验包含以下几点:
观察数据,理解业务。在解决问题的全过程中,要保持对数据的重视,甚至可以尝试“人工”智能。
注重特征。在机器学习领域有一句名言,数据和特征决定了机器学习的上限,模型只是去逼近它。我们可以尝试基于业务逻辑和自身的问题理解,积极构造新特征。
模型选择。当特征很复杂时,可以考虑使用简单模型。当特征较为简单时,可以尝试考虑复杂模型。
最后一定要注重模型的泛化能力和可解释性。

三、 个人推荐
32
在机器学习领域,经常有一些小伙伴自称自己是“炼丹师”,模型调参和改bug就像炼丹一样,靠的是经验和运气。那么对于经验,可以从书籍、课程中获得理论指导,论文中获取原理推导,在公开数据集、项目和竞赛中进行实践,同时通过一些博客或者技术沙龙学习他人的经验。

33
书籍推荐:李航老师的《统计学习方法》、周志华老师的《机器学习》,还有《集体智慧编程》、《机器学习实战》以及《深度学习》
论文推荐:arXiv.org
竞赛推荐:kaggle、阿里云天池大数据竞赛平台。
以上就是本次的技术分享内容,如有不足,请多多指教,谢谢Thanks(・ω・)ノ

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
目录
打赏
0
0
0
0
920
分享
相关文章
机器学习特征筛选:向后淘汰法原理与Python实现
向后淘汰法(Backward Elimination)是机器学习中一种重要的特征选择技术,通过系统性地移除对模型贡献较小的特征,以提高模型性能和可解释性。该方法从完整特征集出发,逐步剔除不重要的特征,最终保留最具影响力的变量子集。其优势包括提升模型简洁性和性能,减少过拟合,降低计算复杂度。然而,该方法在高维特征空间中计算成本较高,且可能陷入局部最优解。适用于线性回归、逻辑回归等统计学习模型。
79 7
特征时序化建模:基于特征缓慢变化维度历史追踪的机器学习模型性能优化方法
本文探讨了数据基础设施设计中常见的一个问题:数据仓库或数据湖仓中的表格缺乏构建高性能机器学习模型所需的历史记录,导致模型性能受限。为解决这一问题,文章介绍了缓慢变化维度(SCD)技术,特别是Type II类型的应用。通过SCD,可以有效追踪维度表的历史变更,确保模型训练数据包含完整的时序信息,从而提升预测准确性。文章还从数据工程师、数据科学家和产品经理的不同视角提供了实施建议,强调历史数据追踪对提升模型性能和业务洞察的重要性,并建议采用渐进式策略逐步引入SCD设计模式。
164 8
特征时序化建模:基于特征缓慢变化维度历史追踪的机器学习模型性能优化方法
PAI训练服务:云上大模型训练新篇章
本文介绍了通用AI时代下的新训练方法及PAI平台的优化。随着大模型时代的到来,算力需求激增,硬件和网络通信成为瓶颈。PAI平台通过自动容错、3D健康检测等技术确保训练稳定性;通过资源配额、智能调度等提高性价比;并推出PAI-TorchAcc和PAI-ChatLearn两大引擎,分别实现高效训练加速和灵活的对齐训练,显著提升训练性能与效果。这些改进解决了大规模AI训练中的关键问题,提升了效率和稳定性。
特征平台PAI-FeatureStore的功能列表
本内容介绍了阿里云PAI FeatureStore的功能与使用方法,涵盖离线和在线特征管理、实时特征视图、行为序列特征视图、FeatureStore SDK的多语言支持(如Go、Java、Python)、特征生产简化方案、FeatureDB存储特性(高性能、低成本、及时性)、训练样本导出以及自动化特征工程(如AutoFE)。同时提供了相关文档链接和技术细节,帮助用户高效构建和管理特征工程。适用于推荐系统、模型训练等场景。
40 2
MATLAB在机器学习模型训练与性能优化中的应用探讨
本文介绍了如何使用MATLAB进行机器学习模型的训练与优化。MATLAB作为强大的科学计算工具,提供了丰富的函数库和工具箱,简化了数据预处理、模型选择、训练及评估的过程。文章详细讲解了从数据准备到模型优化的各个步骤,并通过代码实例展示了SVM等模型的应用。此外,还探讨了超参数调优、特征选择、模型集成等优化方法,以及深度学习与传统机器学习的结合。最后,介绍了模型部署和并行计算技巧,帮助用户高效构建和优化机器学习模型。
49 1
MATLAB在机器学习模型训练与性能优化中的应用探讨
|
17天前
PAI-Rec推荐平台对于实时特征有三个层次
PAI-Rec推荐平台针对实时特征有三个处理层次:1) 离线模拟反推历史请求时刻的实时特征;2) FeatureStore记录增量更新的实时特征,模型特征导出样本准确性达99%;3) 通过callback回调接口记录请求时刻的特征。各层次确保了实时特征的准确性和时效性。
24 0
机器学习模型中特征贡献度分析:预测贡献与错误贡献
本文将探讨特征重要性与特征有效性之间的关系,并引入两个关键概念:预测贡献度和错误贡献度。
698 3
魔搭支持在阿里云人工智能平台PAI上进行模型训练、部署了!
现在,魔搭上的众多模型支持在阿里云人工智能平台PAI-Model Gallery上使用阿里云算力资源进行模型训练和部署啦!
332 22
使用PAI-FeatureStore管理风控应用中的特征
PAI-FeatureStore 是阿里云提供的特征管理平台,适用于风控应用中的离线和实时特征管理。通过MaxCompute定义和设计特征表,利用PAI-FeatureStore SDK进行数据摄取与预处理,并通过定时任务批量计算离线特征,同步至在线存储系统如FeatureDB或Hologres。对于实时特征,借助Flink等流处理引擎即时分析并写入在线存储,确保特征时效性。模型推理方面,支持EasyRec Processor和PAI-EAS推理服务,实现高效且灵活的风险控制特征管理,促进系统迭代优化。
78 6
从零到一:手把手教你完成机器学习项目,从数据预处理到模型部署全攻略
【10月更文挑战第25天】本文通过一个预测房价的案例,详细介绍了从数据预处理到模型部署的完整机器学习项目流程。涵盖数据清洗、特征选择与工程、模型训练与调优、以及使用Flask进行模型部署的步骤,帮助读者掌握机器学习的最佳实践。
447 1

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等