使用随机森林进行工艺路线分工

2019-07-05 11:17张向良
科技创新与应用 2019年21期
关键词:随机森林机器学习

张向良

摘 要:在新的机型投入生产之前,需要安排每个零件的工艺路线,如果该工作能实现自动化,就可以事先快速地给出一个基本正确的方案,为后续的并行协调提供方便。文章将介绍使用机器学习技术建立工艺路线分工模型的思路和方法,首先是任务性质的分析、数据清洗、特征工程、one-hot編码等准备工作,然后使用随机森林算法训练工艺分工预测模型,对模型的性能进行审查,以及模型学到的内容进行解释,最后对更先进的机器学习技术在工艺路线分工中的应用进行展望。

关键词:工艺路线;机器学习;随机森林;特征工程;one-hot编码

中图分类号:TG506 文献标志码:A 文章编号:2095-2945(2019)21-0091-02

Abstract: Before the new machine is put into production, it is necessary to arrange the process route of each part. If the work can be automated, a basic and correct scheme can be given quickly in advance, so as to provide convenience for the subsequent parallel coordination. This paper will introduce the ideas and methods of using machine learning technology to establish the model of process route division of labor. First of all, it is the preparatory work of task nature analysis, data cleaning, feature engineering, one-hot coding and so on. Then, the stochastic forest algorithm is used to train the process division prediction model, the performance of the model is reviewed, and the contents of the model are explained. Finally, the application of more advanced machine learning technology in the process route division of labor is prospected.

Keywords: process route; machine learning; random forest; feature engineering; one-hot coding

在新机型投入制造之前,需要安排每个零件的工艺路线,如果能实现工艺路线分工自动化,就可以事先快速地给出一个基本正确的方案,为后续的并行协调提供方便。实现该项工作的自动化主要有两种思路,即基于硬编码规则和基于数据分析技术。基于硬编码规则的系统源于一个容易想到的方法——将人工分工所遵循的规则编入程序中,输入待预测的零件数据,程序给出工艺路线结果。这种方法难以解决两个问题,一是规则集很难找全,人工梳理规则有所遗漏在所难免;二是硬编码的规则在多变的实际状况面前非常脆弱、容易失效且维护困难。基于数据分析的系统通过预测模型提供了一种概率规则,因此更简单、更实用,虽然也面临泛化性的困难及对数据集的较高要求,但随着数据资源的积累、算力的提升与更有效的算法的出现,这些问题得以解决。本文将使用机器学习技术,首先进行数据准备工作,然后训练工艺分工预测模型,对模型进行审查,最后对机器学习在本领域的应用进行展望。

本文所述的方法使用python实现。

1 任务分析

在建立机器学习模型前,需要对任务和所使用的数据集进行理解。本文所用的工艺路线分工数据集包含11个特征274340个样本,其形式如表1。从业务经验可知,各生产单位的设备与工艺基础不同,所能加工的零件也不同,人工分配工艺路线就是根据零件的材料、形状、加工方式等信息进行的。数据集中包含材料的牌号和状态,材料规格很大程度上决定着零件的形状与加工方式,并且名称、单机数量与重量等特征也能一定程度地反映零件的状况。另外,该数据集包含了多个较新机型各部位零件的数据,数据量充足且样本分布对问题空间比较典型。任务的输出(工艺路线)是一个序列,本文将序列的每一种情形作为一个类别,这样原任务便转换成了一个具有上百个类别的多分类任务。输入部分有10个特征,其中的缺失值应予以填充,内容不规范的标签特征应进行清洗,还有的特征其内容是复合的。这些问题将在下面的数据准备中处理。

2 数据准备

多分类任务属于有监督学习,需要保证训练集有标注,所以应删除没有标注的样本。这些操作可以使用pandas的布尔遮罩实现(标注中若有奇异值也可以用类似操作剔除):

import pandas as pd

route_data = pd.read_csv("./test3.csv", encoding="gbk")

route_data = route_data[route_data[u"工艺路线"].notnull()]

对缺失值应进行填充,这里采用的策略是:将多项分布特征的空值标签型填充为新值“#”;将数值型特征的空值填充为0;将二项分布特征的空值填充为出现频率最高的值。以“名称”、“单机数量”和“对称件”三个特征为例:

route_data.isnull().any()

route_data[u"名称"].fillna("#")

route_data[u"单机数量"].fillna(0)

route_data[u"对称件"].fillna("N")

數据集中含有标签特征,以“名称”为例,口盖类零件的这一特征值可能为“口盖、舱口盖、舱口盖(右)、小口盖、右边条13框-14框口盖”等。这些标签的含义基本相同(都是口盖),但在one-hot编码中会被映射为完全无关的量,这会导致不应有的信息损失,所以将每个标签特征统一成一系列枚举值,并更名为“类型”。“编号”特征表达的信息过于细致,可将其处理成“号段”,使之有更好的泛化性。“材料规格”特征表达的信息是复合的,如“XC211-114”表示某一规格的型材,δ1.2为板料,而d6.0为棒料,且这些特征值的数据类型也不一致。应将复合特征按表达的信息类别不同拆分成多个特征,其中有数值的特征清理成数值型,标签特征清理成枚举型。

在上述工作完成后,用于建立模型的数据集应有如表2的特征和数据类型。

由于大多数机器学习算法只能进行数值运算,无法直接处理带有标签特征的数据,因此需要对标签特征进行编码。本文采用one-hot编码方式,即将n个标签作为n个新的特征,样本在其原标签对应的特征处值为1,其余n-1个位置为0。使用pandas可以方便地完成这一变换:

pd.get_dummies(route_data)

需要注意的是,应对训练集、验证集和测试集作相同的变换,否则会导致数据集形状不一致、串列等毁灭性问题。在实际应用中,可以定义一个sklearn变换器并在模型中使用管线来保证这一点。

3 建立模型

如前所述,工艺路线分工是根据零件的材料、形状等信息进行的,于是推测逻辑模型在本任务中会有更好的表现。现使用90%的数据作为训练集,训练一个随机森林模型,该模型在训练集上的5折交叉验证结果如图1。可以看出模型的评分集中在0.903附近,说明模型有着较高准确率和很好的泛化性。然后在测试集上评估该模型,得到各类别加权平均准确率、召回率与f1值均为0.91,该结果与在训练集上的交叉验证结果比较一致。对于训练的模型,可以输出各个特征的重要性(以>=0的浮点数表示,数值越大说明越重要)。最重要的前10个特征如表3。

上述特征是编码后的特征,可以看出零件的BOM层级、重量、单机数量、有无对称件、“管”类零件和原料为板料的零件有着较强的特征,运用这些特征能够最大程度地将零件分类。同理,可以观察到一些特征的重要性非常小,如以“XC_”开头的特征,说明模型认为不同型材品种对工艺路线分工几乎没有帮助,于是可以在特征工程中将这些特征处理成取值为0或1的int64类型,这可以降低编码后的数据维度。

使用处理后的数据训练模型会发现,3个指标依然是0.91,说明这种特征选择是合理的。

4 结论

本文根据各个特征的特性,通过数据填充、清洗、拆分等操作形成了工艺路线分工数据集,在保证泛化性的情况下取得了91%的准确率,配合自动化的数据处理机制,可以部署在工程实际中。

然而本文所用的方法也受到了多种因素的限制。从输出形式来说,本文将分工中出现的每一种情况作为一个类别,这忽略了各车间工艺的相关性,也无法很好地反应各车间的“分工顺序”概念(如一个能够分到化铣厂的零件有很大概率会先分到钣金厂);对于标签特征的处理,本文是清洗后进行one-hot编码,一来自动化的清洗过程有赖于人工定义,二来one-hot编码本身也会导致标签之间的关联信息流失。使用更先进的RNN模型配合词嵌入会使特征提取与预测机制变得更合理,也能相当程度地减少特征工程的工作量。另外,本文用于训练模型的数据从BOM中获取,一些有助于分类的信息无法被采集到是无可避免的,从表达信息更完整的CAD模型中提取信息将是一个好的思路。

参考文献:

[1][英]Peter Flach.机器学习[M].段菲,译.人民邮电出版社,2016.

[2][美]Peter Harrington.机器学习实战[M].李锐等,译.人民邮电出版社,2013.

[3][美]Jake VanderPlas.Python数据科学手册[M].陶俊杰,等,译.人民邮电出版社,2018.

猜你喜欢
随机森林机器学习
随机森林在棉蚜虫害等级预测中的应用
基于二次随机森林的不平衡数据分类算法
拱坝变形监测预报的随机森林模型及应用
基于词典与机器学习的中文微博情感分析
基于网络搜索数据的平遥旅游客流量预测分析
前缀字母为特征在维吾尔语文本情感分类中的研究
基于随机森林算法的飞机发动机故障诊断方法的研究
基于支持向量机的金融数据分析研究
机器学习理论在高中自主学习中的应用
基于随机森林算法的B2B客户分级系统的设计