一种基于梯度提升决策树的磷酸生产参数控制方法
技术领域
本发明涉及化工生产中的原料计量领域,尤其涉及饲料级磷酸氢钙生产过程中基于梯度提升决策树的磷酸生产参数控制方法,还涉及基于梯度提升决策树的磷矿粉消耗量软测量方法。
背景技术
在饲料级磷酸氢钙生产过程中,磷矿粉是重要的原材料,磷矿粉消耗量的计量对成本控制等企业经营管理活动有着重要意义。目前,生产过程中磷矿粉消耗量计量主要依靠矿粉装载机在产线投料时进行计量,计量设备存在着耗资大、故障率高、不够稳定等问题。相较于矿粉计量,流量计量和密度计量具有较高的稳定性和成本优势。而且如果因装载机计量误差导致实际装载磷矿粉过高,则会导致返流稠浆中的磷酸不足以溶解磷矿粉,多余的磷矿粉与硫酸反应发生钝化,使多余的磷矿粉与生成的硫酸钙水合物一起被过滤,产生浪费加大磷矿粉的投入成本;因装载机计量误差导致实际装载磷矿粉过少,则会生成较多二水物硫酸钙(CaSO4·2H2O)不易洗涤过滤,磷酸浓度较低,增加单位浓度磷酸的能耗。分析矿粉制浆工段和磷酸萃取工段的生产流程不难发现,矿粉的消耗与矿浆流量、矿浆密度以及硫酸流量有关联。因此,有效的利用更为稳定的流量计量和密度计量数据,然后通过机器学习的方法,对矿粉消耗量进行测算,对减少成本和保证磷酸的产量具有极大意义。
发明内容
本发明的主要目的在于,提供一种基于梯度提升决策树的磷矿消耗量软测量方法,基于机器学习方法理论,建立饲料级磷酸氢钙生产过程中磷矿粉消耗量软测量的应用分析系统。
本发明的另一目的在于,提供一种基于梯度提升决策树的磷酸生产参数控制方法,替代不够稳定的磷矿粉装载机计量量,用于作为饲料级磷酸氢钙的生产参数,以解决磷矿粉消耗量的测量精度问题。
本发明的上述技术问题主要是通过下述技术方案得以解决的:
一种基于梯度提升决策树的磷酸生产参数控制方法,包括磷矿消耗量软测量方法及磷酸生产参数控制步骤:
磷矿消耗量软测量方法:
步骤1.根据饲料级磷酸氢钙的磷矿来源通过传感器采集磷酸生产参数构建历史数据库,磷酸生产参数包括:从生产厂磷矿粉制浆工段采集磷矿浆计量流量数据和矿浆贮槽密度数据;从生产厂磷酸萃取工段采集硫酸计量流量数据;其次从生产厂磷矿粉制浆工段获取磷矿粉消耗量的测量值;形成以磷矿浆计量流量、矿浆贮槽密度、硫酸计量流量、磷矿粉消耗量为特征并以时间为序列的磷酸生产参数大数据集;用于对获取的磷酸生产参数大数据集进行数据转换,形成以每日每小时为序列的矿浆贮槽密度、磷矿粉消耗量,以及1-60分钟的磷矿浆计量流量和1-60分钟的硫酸计量流量的122列参数特征的大数据集。
步骤2.采用标准化模块对获取大数据集进行零-均值计算处理得标准化数据,零-均值计算模块处理过程包括:标准化数据=(原始磷酸生产参数-原始磷酸生产参数的均值)/原始磷酸生产参数的标准差,用于将各分钟磷矿浆计量流量、各小时矿浆贮槽密度以及各分钟硫酸计量流量数据按比例缩放,消除上述参数特征数量级差异,降低上述参数特征的权重占比;
步骤3.对获取的标准化后的大数据集进行划分,以时间为维度按照4:1的数据量比例将大数据集随机划分为训练大数据集和测试大数据集,训练大数据集用于对模型进行训练,测试大数据集用于对训练的模型进行评估;
步骤4中.将步骤3中以磷矿浆计量流量、矿浆贮槽密度、硫酸计量流量为特征组成的121列训练大数据集进行相关性分析和主成分分析,得降维数据集作为GBDT回归模型输入样本,同时得PCA降维参数:均值和协方差,用于消除冗余特征,减少参数特征维度;
步骤5.基于提取的GBDT回归模型输入样本,训练基于训练大数据集中磷矿粉消耗量的梯度提升决策树GBDT回归模型模块;
步骤6.采用步骤5中训练的梯度提升决策树GBDT回归模型,将步骤3中测试大数据集经步骤4处理后作为梯度提升决策树GBDT回归模型输入样本,对测试大数据集的磷矿粉消耗量进行预测,通过绘制磷矿粉消耗量预测值与真实值构成的QQ-plot图进行残差正态分布检验;
步骤7.若步骤6中残差服从正态分布,则将采集的磷酸生产参数,经过步骤1、步骤2和步骤4的数据处理,然后代入步骤5中的梯度提升决策树GBDT回归模型,获得磷矿粉消耗量预测值;
磷酸生产参数控制步骤:将步骤7获得的磷矿粉消耗量预测值作为参考值,以预测值与单位时间内计量给料器单位投料量的比值,作为计量给料器投料控制量,调整单位时间内计量给料器投料次数,用于稳定磷矿消耗量,其中单位时间为一小时,单位投料量为一小时内计量给料器投料量均值与投料次数的比值。
作为优选的技术方案,为将不同来源的磷酸生产参数进行统一,磷矿浆计量流量、硫酸计量流量、磷矿粉消耗量通过物联网采集设备自动采集,矿浆贮槽密度通过人工采集,每小时内获取的数据点作为特征,还包括获取磷酸生产参数历史数据的步骤:S01.磷矿浆计量流量、硫酸计量流量特征数据均按照1分钟的时间间隔进行采集,并按每个检测点的时间序列进行向后填充采样至每分钟,按时间序列排序;S02.矿浆贮槽密度、磷矿粉消耗量数据均按照1小时的时间间隔进行采集,并按每个检测点的时间序列进行向后填充采样至每小时,按时间序列排序;S03.通过Python环境与数据库直连,上述磷酸生产参数均需提取至少147天的数据或至少3528个小时的数据,生成至少包括3528行*121列个变量的磷酸生产参数大数据集。
作为优选的技术方案,所述步骤2中,采用零-均值计算模块对转换后的大数据集进行数据标准化处理。
作为优选的技术方案,所述步骤3中,训练大数据集为:
S={(x1,y1),(x2,y2),…,(xn,yn),},其中xi表示第i个样本的特征,yi表示第i个样本的对应磷矿粉消耗量。
作为优选的技术方案,所述步骤4包括对标准化后的大数据集进行相关性分析和主成分分析的步骤:
相关性分析步骤,对标准化以后的训练大数据集采用Pearson算法求相关系数λ,作相关系数的热力图,提取影响不同磷矿粉消耗量的磷酸生产参数特征权重值,用于为预测模型的建立提供参考;Pearson算法如下:
其中,w,z为磷酸生产参数的任意两列,
和
表示所选的磷酸生产参数的均值,m为训练大数据集的样本数。
主成分分析步骤:利于PCA算法对标准化的训练大数据集进行主成分降维,提取各磷酸生产参数方差贡献率达98%的主成分因子,输出降维后数据集作为训练GBDT回归模型或测试模型的输入样本;同时输出PCA降维参数:均值和协方差,用于所述步骤5~7中模型效果检验以及磷矿粉预测输入参数的降维。
作为优选的技术方案,所述步骤5中,采用梯度提升决策树GBDT模型通过梯度提升算法学习出多个弱学习器,将弱学习器组合成一个强学器F(x)即目标函数,使得损失函数L(y,F(x))取得极小值,使该模型实现从样本特征xi到样本对应磷矿粉消耗量的映射,弱学习器由CART回归模型拟合得到,损失函数最小的情况下的映射为最好的映射;
使用梯度提升算法通过T次迭代后得到的强学习器,包含以下步骤:
I.初始化,使用决策树算法获得初始化模型
F0(x)等于一个常量,这个常量使得损失函数值最小,γ为训练集样本数量;
II.计算损失函数的负梯度在当前模型的值,计算经t(t=1,2,…,T)轮迭代第i个样本的负梯度rti,已经经过t-1轮迭代,对第t轮迭代,计算负梯度(伪残差):
将它作为残差的估计;
训练弱学习器,利用(xi,rti)(i=1,2,…,N),拟合一个CART回归树,得到第t棵树的叶结点区域Rtj,j=1,2,…,J,其中J为回归树t的叶子结点的个数;
对叶子区域j=1,2,…J,计算最佳拟合值:
利用线性搜索估计叶节点区域的值,使损失函数极小化;其中ctj表示叶子区域Rtj的最优拟合值;
然后更新回归树:
其中I为指示函数,也可以理解为特征函数当存在x∈Rtj时为1,否则为0;
III.从而得到强学习器F(x)的表达式:
作为优选的技术方案,所述步骤6中,残差正态分布检验即先计算测试大数据集的磷矿粉消耗量特征与测试大数据集的磷矿粉消耗量预测值之间的残差,在对残差进行正态检验。
作为优选的技术方案,所述步骤7中,首先获取预测生产厂的磷酸生产参数历史数据,经过步骤1、步骤2和步骤4处理,在进行磷矿粉消耗量预测时,将待预测生产厂的磷矿浆计量流量、矿浆贮槽密度、和硫酸计量流量的时间序列数据作为输入变量,运用步骤6中的通过正态检验的预测模型进行计算,输出为预测的磷矿粉消耗量结果。
本发明与现有技术相比,具有以下优点:
1.由于本方法只需采集流量计量和密度计量数据,因此数据具有较高的稳定性,而且测量成本也大大减少;而传统的检测方法,由于矿石分布丰度不均匀,受产地,采矿点,粒度等因素影响,矿石消耗量数据稳定性差,为提高测量准确性,还需做矿石来样检测,成本高;
2.由于本方法进行了数据转换,特征维度达到121维,因此在模型的训练之前,采用了相关性分析和主成分分析,从而能够有效地去除冗余特征参数,不仅保证了模型的精度,而且大大减少了模型训练时间。
3.由于本方法基于梯度提升决策树算法,而梯度提升决策树属于强学习,是有多棵树组合而成,因此,预测效果比CART模型精确度更高;
附图说明
图1为本发明的磷矿消耗量实施流程图;
图2为本发明所述的饲料级磷酸氢钙工艺流程图;
图3为本发明实施例中GBDT模型预测饲料级磷酸氢钙生产过程中磷矿消耗量的QQ-plot图
具体实施方式
下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。实施例:基于梯度提升决策树的磷酸生产参数控制方法,包括磷矿消耗量软测量方法及磷酸生产参数控制步骤。
如图1所示,基于梯度提升决策树的磷矿消耗软测量方法,包括以下步骤:
磷矿粉的消耗量在饲料级磷酸氢钙生产过程中不易直接测量,现在通过采集国内某饲料级磷酸钙生产厂矿粉制浆工段和磷酸萃取工段历史数据,作为训练模型的数据源。通过数据清洗、数据转换,建立模型训练的大数据集。
步骤1:01.数据准备,如图2在饲料级磷酸氢钙工艺流程中,选择矿粉制浆工段和磷酸萃取工段相关数据点,作为后续建模分析的输入变量。
矿粉制浆工段和磷酸萃取工段相关磷酸生产参数数据点设置及采集方式采集间隔时间如下表:
02.数据清洗,python环境与数据库直连,提取上述原始数据的时间序列,进行缺失值处理:将数据转换为每个检测点的序列格式(即将提取的数据按其时间先后顺序排列),并且对每个检测点的时间序列进行向后填充的重采样。其中,矿浆计量流量数据和硫酸计量流量的采集频率为每分钟1次,故在数据清洗时按照1分钟的频率进行重采样;矿浆贮槽密度和磷矿粉密度的采集频率为每小时一次,故在数据清洗时按照1小时的频率进行重采样;提取147天的矿浆计量流量、矿浆贮槽密度、硫酸计量流量、磷矿粉消耗量历史数据;通过采集至少147天的数据或至少3528个小时的数据,才能更好地训练回归模型,保证精准预测的目的;
03.数据转换,现场自动采集设备采集的矿浆计量流量和硫酸计量流量频率为每分钟1次,即每小时60次,实验室人工采集的矿浆贮槽密度采集频率为每小时1次,故将自动采集的数据每小时的所有数据点均作为特征,由此作为磷酸生产参数数据集完成了时间维度的统一,输出3528行*121列的磷酸生产参数数据集,即每分钟的矿浆计量流量、每分钟的硫酸计量流量和每小时的矿浆贮槽密度;
步骤2:04.数据标准化步骤,对数据转换后的大数据集中的各分钟矿浆计量流量、矿浆贮槽密度以及各分钟硫酸计量流量数据采用零-均值公式进行标准化处理,将所有数据按比例缩放,使之落入较小的特定区间,消除数据数量级上的差异,避免在求相关系数的时候部分变量占比过重的情况;零-均值公式:标准化数据=(原始磷酸生产参数-原始磷酸生产参数的均值)/原始磷酸生产参数的标准差;
步骤3:05.数据集划分,处理后的数据随机取80%的数据为训练大数据集,20%的数据为测试大数据集;训练大数据集用于对模型进行训练,测试大数据集用于对训练的模型进行评估;如果采用全部原始数据去训练模型,得到的模型往往是为了拟合所有原始数据而存在,当新样本出现时效果较差,因此一般训练集的数量占原始数据的4/5,这样可以尽可能的提高模型的泛化能力;训练大数据集为:S={(x1,y1),(x2,y2),…,(xn,yn)}其中xi表示第i个样本的特征,yi表示第i个样本的对应磷矿粉消耗量。
步骤4中:将步骤2中以磷矿浆计量流量、矿浆贮槽密度、硫酸计量流量为特征组成的121列标准化后的大数据集进行相关性分析和主成分分析,用于消除冗余特征,减少参数特征维度,由于数据转换后的大数据集除了磷矿粉消耗量具有121列特征参数,通过相关性分析和主成分分析,可以有效地消除冗余特征,减少参数特征维度,从而能够提高GBDT回归模型的训练效率。对标准化后的数据进行相关性分析和主成分分析步骤:
步骤4.1:06.相关性检验步骤,对标准化以后的数据采用Pearson公式求相关系数,作相关系数的热力图,观察发现多个参数之间存在较强的相关关系,提取影响不同磷矿粉消耗量的参数特征权重值,进而为预测模型的建立提供参考;Pearson公式如下:
其中,w,z为磷酸生产参数的任意两列,
和
表示所选的两列磷酸生产参数的均值,m为对应训练大数据集的样本数。
步骤4.2:07.主成分分析步骤,利用PCA算法对标准化后的数据进行主成分降维,提取各磷酸生产参数方差贡献率达98%的主成分因子,输出降维后数据集作为训练GBDT回归模型或预测模型的输入样本;同时输出PCA降维参数08:均值和协方差,用于所述步骤5~7中模型效果检验以及磷矿粉预测输入参数的降维;
PCA算法步骤:
a01.获取n行m列标准化后的数据,写成n*m的矩阵形式,n=3528,m=121;
a02.数据中心化,即把每个属性的均值处理设为0,即每一行的数据进行零均值化,即减去这一行的均值;
a03.根据标准化后的矩阵求协方差矩阵,协方差有三种值,0表示属性之间相互独立,没有影响;正值表示属性是正相关的关系,若属性A和属性B是正相关关系,则A增加B也增加,A减小B也减小;负值表示属性是负相关的关系,若属性C和属性D是负相关关系,则C增加D减小,C减小D增加,所以,协方差矩阵即相关系数矩阵,表示属性间的相关程度;
a04.根据协方差矩阵求特征值矩阵,特征值矩阵只有对角线上的元素有值,上三角和下三角元素都为0;
a05.根据特征值矩阵求对应的特征向量;
a06.对特征值矩阵进行排序,并设定一个阈值,若前k个特征矩阵的和大于等于设定的阈值98%,则就有k个主成分,取其对应的特征向量,定为主成分向量矩阵;
a07.原始矩阵乘以转置后的主成分向量即得降维后的矩阵,比如,原始数据是3528*121的矩阵,在步骤a06中取得了5个主成分,那么主成分矩阵就是5*121的矩阵;3528*121的矩阵乘以121*5的矩阵,即得3528*5的矩阵,体现了降维效果。
步骤5:09.回归模型训练步骤,将PCA降维步骤输出的降维数据集作为输入样本,训练大数据集中的磷矿粉消耗量作为输入样本所对应的输出样本,选择损失函数、最大迭代次数,训练GBDT回归模型。
步骤6:10.模型效果检验步骤,用降维步骤输出的降维参数:均值和协方差,对测试大数据集样本进行PCA降维处理(输入样本测试大数据集数据,减去均值后乘以协方差矩阵)输出数据作为输入样本输入训练好的GBDT回归模型,输出磷矿粉的预测值,计算实际观察值(即测试大数据集的磷矿粉消耗数据)与拟合值(即输出的磷矿粉预测值)之间的残差,对残差进行正态检验,作QQ-plot图如图3所示,R2的值为0.98,残差服从正态分布,模型效果优。
步骤7:11.磷矿粉消耗预测步骤,采集预测生产厂的一段时间的矿浆计量流量数据、矿浆贮槽密度数据、硫酸计量流量数据序列,对数据集12进行数据清洗13、数据变换14、数据标准化15、相关系数分析16、PCA降维17,由训练后且通过正态检验的GBDT回归模型预测每小时的磷矿粉消耗量。
磷酸生产参数控制步骤:将步骤7获得的磷矿粉消耗量预测值作为参考值,以预测值与单位时间内计量给料器单位投料量的比值,作为计量给料器投料控制量,调整单位时间内计量给料器投料次数,用于稳定磷矿消耗量,其中单位时间为一小时,单位投料量为一小时内计量给料器投料量均值与投料次数的比值,一小时内计量给料器投料量即步骤1中物联网采集设备自动采集磷矿粉消耗量。
作为方案之一,计量给料器为专利106592662A中的装载机,装载机每个取料卸料周期T内装卸的磷矿粉量都是固定值L,投料的次数为n,n=1,装载机的单位投料量即为一小时内装载机投料量均值与投料次数的比值Z=(1/T)L/(1/T)n,磷矿粉消耗量预测值与装载机的单位投料量的比值,即表示装载机投料量达到磷矿粉消耗量预测值所需消耗的投料次数,调整每小时内装载机的投料次数,用于稳定磷矿消耗量。
作为方案之一,计量给料器为图2中的圆盘给料器,转速恒定时圆盘给料器每个投料周期T内投放的磷矿粉量都是固定值L,每个投料周期内圆盘旋转的圈数为n,n=1,圆盘给料器的单位投料量即为一小时内圆盘给料器投料量均值与圆盘旋转圈数的比值Z=(1/T)L/(1/T)n,磷矿粉消耗量预测值与圆盘给料器的单位投料量的比值,即表示圆盘给料器投料量达到磷矿粉消耗量预测值所需消耗的圆盘旋转圈数,调整每小时内圆盘给料器的圆盘旋转圈数,用于稳定磷矿消耗量。
步骤5中,训练GBDT回归模型即:采用梯度提升决策树GBDT模型通过梯度提升算法学习出多个弱学习器,将弱学习器组合成一个强学器F(x)即目标函数,使得损失函数L(y,F(x))取得最小值,使该模型实现从样本特征xi到样本对应磷矿粉消耗量的映射,弱学习器由CART回归模型拟合得到,损失函数最小的情况下的映射为最好的映射;
使用梯度提升算法通过T次迭代后得到的强学习器,包含以下步骤:
I.初始化,使用决策树算法获得初始化模型:
F0(x)等于一个常量,这个常量使得损失函数值极小化,γ为训练集样本数量;
II.计算损失函数的负梯度在当前模型的值,计算经t(t=1,2,…,T)轮迭代第i个样本的负梯度rti,已经经过t-1轮迭代,对第t轮迭代,计算负梯度(伪残差):
将它作为残差的估计;
训练弱学习器,利用(xi,rti)(i=1,2,…,N),拟合一个CART回归树,得到第t棵树的叶结点区域Rtj,j=1,2,…,J,其中J为回归树t的叶子结点的个数;
对叶子区域j=1,2,…J,计算最佳拟合值:
利用线性搜索估计叶节点区域的值,使损失函数极小化;其中ctj表示叶子区域Rtj的最优拟合值;
然后更新回归树:
其中I为指示函数,也可以理解为特征函数当存在x∈Rtj时为1,否则为0;
III.从而得到强学习器F(x)的表达式:
F(x)即经过T轮迭代,最终得到强学习器。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。