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

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 本期由阿里云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实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
14天前
|
机器学习/深度学习 数据采集 自然语言处理
构建高效机器学习模型的策略与实践
【4月更文挑战第30天】 在数据驱动的时代,机器学习(ML)作为一项核心技术,其应用范围和影响力日益扩大。然而,构建一个既高效又准确的机器学习模型并非易事。本文将探讨一系列实用的策略和技术,用于优化机器学习的工作流程,包括数据预处理、特征工程、模型选择、超参数调优以及模型评估等方面。通过这些策略,读者可以提升模型的性能,确保在实际应用中达到预期的准确度和效率。
|
1天前
|
机器学习/深度学习 监控 算法
构建高效机器学习模型的五大技巧
【5月更文挑战第13天】 在数据科学领域,机器学习模型的性能往往决定了项目成功与否。本文将深入探讨提升机器学习模型效率和准确度的五个关键技巧。这些技巧包括数据处理优化、特征工程精炼、算法选择与调整、模型集成以及持续监控与调优。文章将结合实例分析每个技巧的实施过程及其对模型性能的影响。通过这些策略,读者可以构建出更加健壮、高效的机器学习模型,并为未来的项目提供实用的技术参考。
|
2天前
|
机器学习/深度学习 传感器 算法
构建未来:基于机器学习的智能健康监测系统
【5月更文挑战第12天】 在数字医疗领域,智能健康监测系统的出现正在革新我们对健康管理和疾病预防的理解。本文将探讨一个基于机器学习技术的智能健康监测系统的设计与实现,它能够实时跟踪个体的健康指标并通过预测性分析提前警示潜在的健康问题。通过融合生物统计学、数据挖掘及模式识别等先进技术,该系统旨在为个人用户提供量身定制的健康建议,并为医疗专业人员提供决策支持。文章首先概述了系统框架和关键技术,随后详细讨论了机器学习模型的建立过程以及如何优化这些模型以提高预测的准确性。最后,我们通过实验结果验证了系统的有效性,并讨论了未来的发展方向。
|
3天前
|
机器学习/深度学习 数据采集
构建高效机器学习模型的最佳实践
【5月更文挑战第11天】 在数据驱动的时代背景下,机器学习已经成为企业与研究者解决复杂问题的重要工具。本文将探讨构建高效机器学习模型的关键步骤,包括数据预处理、特征工程、模型选择与调参、以及性能评估。我们将深入分析这些步骤的重要性,并提供实用的技巧和最佳实践,以助读者提高模型的预测能力与泛化性能。通过案例分析和经验总结,本文旨在为从业者提供一套系统的方法论,帮助他们在面对各种机器学习项目时能够更有效地设计和实现解决方案。
5 0
|
3天前
|
机器学习/深度学习
【机器学习】如何根据训练集大小选择分类器?
【5月更文挑战第10天】【机器学习】如何根据训练集大小选择分类器?
|
4天前
|
机器学习/深度学习 数据采集 监控
构建高效机器学习模型的最佳实践
【5月更文挑战第10天】 在面对海量数据和复杂问题时,构建一个既高效又准确的机器学习模型显得至关重要。本文将探讨一系列实用的技术和策略,旨在帮助数据科学家和工程师优化他们的机器学习工作流程。从数据预处理到模型训练,再到最终的评估与部署,我们将深入讨论如何通过最佳实践提升模型性能,同时确保过程的可复现性和可扩展性。
|
4天前
|
机器学习/深度学习 数据采集 监控
构建高效机器学习模型的五大技巧
【5月更文挑战第10天】 在数据驱动的时代,机器学习模型的性能往往决定了一个项目的成败。本文将深入探讨如何通过五个关键步骤——数据预处理、特征工程、模型选择、超参数调优以及模型评估与部署,来构建一个高效的机器学习模型。我们将提供实用的技术细节和策略,帮助读者避免常见的陷阱,并提升模型的准确性和泛化能力。无论你是机器学习新手还是有经验的开发者,本文的技巧都将对你构建更健壮、高效的模型大有裨益。
|
5天前
|
机器学习/深度学习 算法 异构计算
构建高效机器学习模型的策略与实践
【5月更文挑战第8天】 随着数据科学领域的不断进步,机器学习(ML)已成为解决复杂问题的重要工具。然而,构建一个既高效又准确的ML模型并非易事。本文将详细探讨在设计和训练机器学习模型时可以采用的一系列策略,以优化其性能和效率。我们将讨论特征工程的重要性、选择合适的算法、调整参数以及评估模型的有效性。通过这些策略,读者将能够更好地理解如何提升模型的预测能力并避免常见的陷阱。
|
8天前
|
机器学习/深度学习 数据采集 人工智能
构建高效机器学习模型:从数据预处理到性能优化
【5月更文挑战第6天】 在机器学习领域,构建一个高效的模型并非一蹴而就的过程。它要求开发者具备从数据预处理、特征工程到算法选择和性能调优的全面技能。本文将深入探讨如何通过精确的数据处理流程、细致的特征提取以及先进的模型调优技巧来提升机器学习模型的准确性和效率。我们将分享实用的技术策略,并通过案例分析展示如何应对过拟合、欠拟合以及其他常见的性能瓶颈。
23 6
|
11天前
|
机器学习/深度学习 算法
构建高效机器学习模型的五大关键技术
【5月更文挑战第3天】 在数据驱动的时代,机器学习已经成为挖掘信息、预测未来和优化决策的关键工具。本文将深入探讨构建高效机器学习模型的五大关键技术:特征工程、模型选择、超参数调优、集成学习和模型评估。这些技术不仅能够提高模型的性能,还能确保模型的泛化能力和可解释性。