发明内容
本发明的目的是针对上述现有技术存在的不足,提出一种基于工业大数据产品工期的约束条件分析系统与方法。
本发明的工业大数据产品工期的约束条件分析系统是在Spark大数据分析平台上,分别构建数据存储模块、数据预处理模块、模型训练模块、产品工期约束条件重要度输出模块。
所述的数据存储模块,用于存储产品的订单数据、原料采购数据、加工过程数据、产品工艺评价数据、生产过程机器工作状态数据、机器故障停机数据、工作人员工作记录数据以及工期数据。
所述的数据预处理模块,用于对数据存储模块中的数据缺失的部分进行平均数填充处理,采用3σ原则进行异常值剔除处理,将数据存储模块中的数据除工期数据外的剩余数据进行归一化处理,得到预处理数据。
所述的模型训练模块,包括随机森林重要度约束条件筛选模型、主成分特征提取模型、约束条件组合模型、K-means聚类方法筛选非线性约束条件模型、约束条件随机选择模型、误差分析模型;其中:随机森林约束条件筛选模型是对预处理数据所对应的约束条件进行筛选,运用随机森林重要度分析法对约束条件进行筛选,得到重要的约束条件;主成分特征提取模型是对预处理后的数据运用主成分分析方法,得到约束条件之间经过线性组合后的线性约束条件;约束条件组合模型,用于将预处理后的数据对应的约束条件进行组合,得到所有的非线性约束条件;K-means聚类方法筛选非线性约束条件模型是将所有的非线性约束条件通过距离的方法进行筛选,筛选出部分主要的非线性约束条件;约束条件随机选择模型,用于随机选择线性约束条件数据集和非线性约束条件数据集组成的组合约束条件数据集,得到随机组合约束条件数据集;误差分析模型是通过随机组合约束条件和重要约束条件对应的数据集来建立预测工期的多元线性回归模型,分析预测工期与实际工期的误差,若误差满足要求,则进行结果输出,否则,则重新选择随机组合约束条件。
所述的产品工期约束条件重要度输出模块,将模型训练模块得到的多元线性回归的所有系数和对应的随机组合约束条件或重要约束条件,对所有系数的绝对值降序排列,依次得到对应的重要约束条件或随机组合约束条件的重要度,并且将结果保存到HDFS分布式文件系统并封装成Spark平台上的接口,以API的形式提供应用链接。
本发明方法的步骤如下:
(1)构建原始数据表:
收集离散制造型产品在工业中长期积累产生的大量数据,将收集到的数据根据加工批次顺序合并,构建一个原始数据表;
(2)对数据进行预处理:
(2a)对原始数据表中数据缺失的部分进行平均数填充处理,采用3σ原则进行异常值剔除处理,得到待处理数据;
(2b)将待处理数据除工期数据外的剩余数据进行归一化处理,得到预处理后的数据;
(3)筛选约束条件:
(3a)在[0,1]的范围内设定随机森林重要度得分的阈值;
(3b)利用随机森林重要度分析法,计算每个约束条件的重要度得分;
(3c)对所有重要度得分的绝对值按照降序排列,将排第一的重要度得分的绝对值对应的约束条件筛选出来,并从所有的约束条件中删除该约束条件;
(3d)判断排列第一的重要度得分的绝对值是否小于阈值,若是,则执行步骤(3e),否则,执行步骤(3b);
(3e)将所有筛选出的约束条件对应的数据,按列合并,组成重要约束条件数据集;
(4)提取约束条件特征:
运用主成分分析方法,提取预处理后数据的主要特征,每一个主要特征对应的数据组合成一个线性约束条件,将所有线性约束条件数据,按列合并,组成线性约束条件数据集;
(5)组合约束条件:
(5a)采用放回抽样方法,从预处理后的数据对应的约束条件中,分2次抽取约束条件,列出2次抽取的约束条件的排列组合;
(5b)每种排列组合对应的约束条件的数据对应相乘后得到一个非线性约束条件,计算出所有的非线性约束条件;
(6)筛选非线性约束条件:
(6a)运用K-means聚类方法对所有非线性约束条件实现聚类;
(6b)从每一个聚类中选择出一个距离聚类中心点距离最近的非线性约束条件;
(6c)将选择出的所有非线性约束条件对应的数据,按列合并,组成非线性约束条件数据集;
(7)随机选择组合约束条件:
(7a)将线性约束条件数据集和非线性约束条件数据集,按列合并,组成组合约束条件数据集;
(7b)统计组合约束条件的总数,用0表示不选中组合约束条件,用1表示选中组合约束条件,将选中的组合约束条件对应的数据,按列合并,组成随机组合约束条件数据集;
(8)误差分析:
(8a)将随机组合约束条件数据集、重要约束条件数据集与工期数据,按列合并,并将合并后的数据按照3:1的比例随机划分为训练数据和测试数据;
(8b)运用最小二乘法,利用训练数据建立预测工期的多元线性回归模型;
(8c)将测试数据除工期外的数据输入多元线性回归模型,输出工期的预测值;
(8d)运用相对均方根误差公式,计算工期预测数据与测试数据里的工期数据的误差值;
(8e)将步骤(8a)、步骤(8b)、步骤(8c)、步骤(8d)重复10次,计算10次误差的平均值;
(9)判定10次误差的平均值是否小于误差指标值,若是,则执行步骤(10),否则,执行步骤(7);
(10)输出结果:
输出多元线性回归模型的所有系数和对应的随机组合约束条件和重要约束条件,对所有系数的绝对值降序排列,依次得到对应的重要约束条件或随机组合约束条件的重要度。
本发明与现有技术相比具有以下优点:
第一,由于本发明的系统是在Spark大数据平台上进行二次开发,运用Spark大数据平台的Hive数据库存储功能,依据RDD计算框架构建数据预处理模块和模型训练模块,克服了现有技术中当企业生产数据量急剧增加时,系统在计算机上运行速度降低,可能会导致宕机的问题,使得本发明能够实现海量数据高效的存储,避免了单机情况分析海量数据的低效性和波动性,提高了计算机的运行速度和计算效率。
第二,由于本发明的方法进行了约束条件筛选和约束条件组合,其输出结果包括单一约束条件和组合约束条件的重要度,克服了现有技术中未对影响工期的约束条件或组合约束进行分析的问题,使得本发明不仅能够挖掘出影响工期的单一约束条件的重要度,也能够挖掘出部分约束条件之间进行线性、非线性组合后形成的组合约束条件的重要度。
第三,由于本发明的方法采用多元线性回归模型的系数来代表对应约束条件或组合约束条件的重要度,克服了现有技术中利用人工经验的方法难以实现产品工期的约束条件的准确判断的问题,使得本发明能够根据输出系数绝对值的大小来量化对应的约束条件或组合约束条件的重要度。
具体实施方式
下面结合附图对发明做进一步描述。
参照附图1的系统框图,对本发明的系统做进一步描述。
本发明的系统是在Spark大数据分析平台上,依据Hive数据库构建数据存储模块、依据RDD计算框架构建数据预处理模块与模型训练模块、依据HFDS分布式文件系统构建产品工期约束条件重要度输出模块。
数据存储模块用于存储产品的订单数据、原料采购数据、加工过程数据、产品工艺评价数据、生产过程机器工作状态数据、机器故障停机数据、工作人员工作记录数据以及工期数据。
数据预处理模块用于对数据存储模块中的数据缺失的部分进行平均数填充处理,采用3σ原则进行异常值剔除处理,将数据存储模块中的数据除工期数据外的剩余数据进行归一化处理,得到预处理数据。首先找到Hive数据库里缺失数据的位置,计算该位置所在列数据的平均值,用平均值来填充缺失数据;再分别计算Hive数据库中每一列数据的平均值u和方差σ,按照列和行的顺序,依次从Hive数据库中选取一个数据,删除所选取数据中小于该列的最小三西格玛值,或大于该列的最大三西格玛的数据在原始数据表所在位置的整行数据。所述最小三西格玛值是由u-3σ计算得到的,最大三西格玛值是由u+3σ计算得到的。最后运用归一化公式将Hive数据库中除工期数据外的数据转换到[0,1]区间。
模型训练模块包括随机森林重要度约束条件筛选模型、主成分特征提取模型、约束条件组合模型、K-means聚类方法筛选非线性约束条件模型、约束条件随机选择模型、误差分析模型。其中:随机森林约束条件筛选模型是对Hive数据库里经过预处理后除工期数据外的数据所对应的约束条件进行筛选,运用随机森林重要度分析法得到约束条件的重要度得分的绝对值,选出一个重要得分绝对值最大的约束条件,运用随机森林重要度分析法得到剩余的约束条件的重要度得分的绝对值,直到多次筛选后剩余约束条件的重要度得分的绝对值都小于之前设定的阈值则停止,依次筛选出重要的约束条件,该方法筛选出的结果稳定可靠,而且运用重要度得分的绝对值来筛选约束条件,既可以得到促使工期缩短的约束条件,也可以得到促使工期延长的约束条件。主成分特征提取模型是对预处理后的数据运用主成分分析方法,得到约束条件之间经过线性组合后的线性约束条件,考虑了影响工期的线性约束条件。约束条件组合模型,用于将预处理后的数据对应的约束条件进行组合,得到所有的非线性约束条件。K-means聚类方法筛选非线性约束条件模型是将所有的非线性约束条件通过距离的方法进行筛选,筛选出部分主要的非线性约束条件,考虑了影响工期的非线性约束条件。约束条件随机选择模型,用于随机选择线性约束条件数据集和非线性约束条件数据集组成的组合约束条件数据集,得到随机组合约束条件数据集。误差分析模型是通过随机组合约束条件和重要约束条件对应的数据集来建立预测工期的多元线性回归模型,分析预测工期与实际工期的误差,若误差满足要求,则进行结果输出,否则,则重新选择随机组合约束条件。
产品工期约束条件重要度输出模块用于将模型训练模块得到的多元线性回归的所有系数和对应的随机组合约束条件或重要约束条件,对所有系数的绝对值降序排列,依次得到对应的重要约束条件或随机组合约束条件的重要度,并且将结果保存到HDFS分布式文件系统并封装成Spark平台上的接口,以API的形式提供应用链接。
参照附图2的方法流程图,对本发明的方法做进一步描述。
本发明的方法是在工业大数据产品工期的约束条件分析系统上,对产品工期的约束条件进行分析。具体步骤包括如下。
步骤1,构建原始数据表。
收集离散制造型产品在工业中长期积累产生的大量数据,将收集到的数据根据加工批次顺序合并,构建一个原始数据表。
所述的离散制造型产品在工业中长期积累产生的大量数据包括,产品订单数据、原料采购数据、加工过程数据、产品工艺评价数据、生产过程机器工作状态数据、机器故障停机数据、工作人员工作记录数据以及工期数据。
步骤2,对数据进行预处理。
对原始数据表中数据缺失的部分进行平均数填充处理,采用3σ原则进行异常值剔除处理,得到待处理数据。
所述采用3σ原则进行异常值剔除处理的具体步骤如下:
第1步,分别计算原始数据表的每一列数据的平均值u和方差σ;
第2步,按照列和行的顺序,依次从原始数据表中选取一个数据;
第3步,删除所选取数据中小于该列的最小三西格玛值,或大于该列的最大三西格玛的数据在原始数据表所在位置的整行数据;所述最小三西格玛值是由u-3σ计算得到的,最大三西格玛值是由u+3σ计算得到的。
将待处理数据除工期数据外的剩余数据进行归一化处理,得到预处理后的数据。
所述归一化处理,是运用归一化计算公式将数据转换到[0,1]区间,消除数据量纲差异,归一化计算公式如下:
其中:x*表示x经过归一化后的值,x表示进行归一化数据,xmin表示x在原始数据表所在列数据的最小值,xmax表示x在原始数据表所在列数据的最大值。
步骤3,筛选约束条件。
步骤A,在[0,1]的范围内设定随机森林重要度得分的阈值。
步骤B,利用随机森林重要度分析法,计算每个约束条件的重要度得分。
步骤C,对所有重要度得分的绝对值按照降序排列,将排第一的重要度得分的绝对值对应的约束条件筛选出来,并从所有的约束条件中删除该约束条件。
步骤D,判断排列第一的重要度得分的绝对值是否小于阈值,若是,则执行步骤E,否则,执行步骤B。
步骤E,将所有筛选出的约束条件对应的数据,按列合并,组成重要约束条件数据集。
所述随机森林重要度分析法计算约束条件的重要度得分的具体步骤如下:
第1步:设置随机森林中树的棵数h。
第2步:运用每颗树依次计算约束条件的置换重要性。置换重要性公式如下:
其中:V表示约束条件的置换重要性,
表示第k棵树的观测数据,∑表示累计求和操作,
表示指示函数,当
时,
当
时,
Y
p∈{0,1}表示第p个观测的真实结果,
表示置换前第k棵树第p个观测的预测结果,
表示指示函数,当
当
表示置换后第k棵树第P个观测的预测结果。
第3步:计算约束条件的重要度得分。重要度得分公式如下:
其中:I表示重要度得分,VIMg表示第g棵树计算得到的约束条件置换重要度。
步骤4,提取约束条件特征。
运用主成分分析方法,提取预处理后数据的主要特征,每一个主要特征对应的数据组合成一个线性约束条件,将所有线性约束条件数据,按列合并,组成线性约束条件数据集。
所述主成分分析方法提取预处理后数据的主要特征的具体步骤如下:
第1步:将预处理后的数据转换为矩阵,计算矩阵的相关系数矩阵。
第2步:运用雅克比法计算相关系数矩阵的所有特征值,记为λ1,λ2,…,λq,进一步计算出所有特征值对应的特征向量。
第3步:计算累计贡献率。累计贡献率公式如下:
其中:Φ表示累计贡献率,λb表示第b个特征值;取Φ≥0.85,计算得到c的最小正整数,选择主要特征值为λ1,λ2,…,λc,主要特征值对应的特征向量为主要特征向量。
第4步:将预处理后的数据转换的矩阵与主要特征向量构成的矩阵相乘,计算得到预处理后数据的主要特征数据。
步骤5,组合约束条件。
采用放回抽样方法,从预处理后的数据对应的约束条件中,分2次抽取约束条件,列出2次抽取的约束条件的排列组合。
每种排列组合对应的约束条件的数据对应相乘后得到一个非线性约束条件,计算出所有的非线性约束条件。
步骤6,筛选非线性约束条件。
运用K-means聚类方法对所有非线性约束条件实现聚类。
从每一个聚类中选择出一个距离聚类中心点距离最近的非线性约束条件。
将选择出的所有非线性约束条件对应的数据,按列合并,组成非线性约束条件数据集。
所述运用K-means聚类方法具体实现步骤如下:
第1步:确定样本间距离计算公式。考虑到各个约束条件的量纲以及分布不同对聚类结果的影响,因此采用标准化欧式距离,假设两个样本对象分别为x1=(x11,x12,…,x1d)和x2=(x21,x22,…,x2d),则它们的标准化欧式距离为:
其中:D表示两个样本的标准化欧式距离,
表示求平方根操作,s
f为样本中第f个属性对应的标准差。
第2步:确定最佳聚类数目。把每个数据点与其最近的聚类中心的平方距离和作为数据集分类结果优劣的评估指标(VIS),取聚类数目r从2到10分别计算VIS;将所有VIS进行归一化,并运用箱线图法,按照从后向前的顺序依次判断每一个VIS是否为离群点,若首次检测出某一个VIS为离群点,该VIS对应的r加上1则为最佳聚类数目,若不存在离群点,则最佳聚类数目为10。
所述运用箱线图法,按照从后向前的顺序依次判断每一个VIS是否为离群点;首先计算所有VIS构成的数组的上四分位点Q1、下四分位点Q3、最小值VISmin、最大值VISmax;如果VIS小于下限,或大于上限,则该VIS为离群点;所述下限是由VISmin-1.5×(Q3-Q1)计算得到的,下限是由VISmax+1.5×(Q3-Q1)计算得到的。
第3步:根据标准化欧式距离和最佳聚类数据,对所有非线性约束条件对应的数据进行聚类处理,并确定每个聚类的中心点。
第4步:运用标准化欧式距离计算公式,分别计算每一个聚类类别中的所有非线性约束条件与该聚类中心点的欧式距离,依次选择出每一个聚类类别中欧式距离最小的非线性约束条。
第5步:将选择出的所有非线性约束条件对应的数据,按列合并,组成非线性约束条件数据集。
步骤7,随机选择组合约束条件。
将线性约束条件数据集和非线性约束条件数据集,按列合并,组成组合约束条件数据集。
统计组合约束条件的总数,用0表示不选中组合约束条件,用1表示选中组合约束条件,将选中的组合约束条件对应的数据,按列合并,组成随机组合约束条件数据集。
所述用用0表示不选中组合约束条件,用1表示选中组合约束条件的具体实现步骤如下:
第1步:统计组合约束条件的总数,记为m。
第2步:生成m个0或1的随机数,记为Q。Q中的第v(1≤v≤m,v为正整数)个位置对应的数,若是0,表示不选中第v个组合约束条件,若是1,表示选中第v个组合约束条件。
第3步:将选中的组合约束条件对应的数据,按列合并,组成随机组合约束条件数据集。
步骤8,误差分析。
将随机组合约束条件数据集、重要约束条件数据集与工期数据,按列合并,并将合并后的数据按照3:1的比例随机划分为训练数据和测试数据。
运用最小二乘法,利用训练数据建立预测工期的多元线性回归模型。
将测试数据除工期外的数据输入多元线性回归模型,输出工期预测数据。
运用相对均方根误差公式计算工期预测数据与测试数据里的工期数据的误差值。
将本步骤中所有的步骤重复10次,计算10次误差的平均值。
所述相对均方根误差公式如下所示:
其中:R表示工期预测数据与测试数据里的工期数据的误差值,n表示测试数据的总数,y
i表示第i次工业大数据产品工期的预测值,
表示第i次工业大数据产品工期的实际值。
步骤9,判定10次误差的平均值是否小于误差指标值,若是,则执行步骤10,否则,执行步骤7。
所述的误差指标值是运用误差估计公式计算得到的,误差估计公式如下所示:
Y2=10%
其中:Ti表示第i次工业大数据产品工期的计划值,| |表示取绝对值操作,若Y1<Y2,则误差指标值取为Y1,否则,取Y2。
步骤10,输出结果。
输出多元线性回归模型的所有系数和对应的随机组合约束条件和重要约束条件,对所有系数的绝对值降序排列,依次得到对应的重要约束条件或随机组合约束条件的重要度。