一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于XGBoost算法的伴热带装置寿命状态预测方法

2022-06-08 23:18:12 来源:中国专利 TAG:

基于xgboost算法的伴热带装置寿命状态预测方法
技术领域
1.本发明涉及伴热带及管线温控技术领域,特别是基于xgboost算法的伴热带装置寿命状态预测方法。


背景技术:

2.传统的管道防冻采用伴热带加热技术,施工人员将伴热带缠绕至管线上,两端通以220vac使伴热带持续加热,管线外部包裹一定厚度的硅酸铝、高硅玻璃纤维等阻热阻燃材料进行保温。但是长时间不间断的工作使伴热带持续老化,寿命耗尽的伴热带经常发生功率不足、断裂等故障,导致被保护管线在短时间内冻结,影响工业生产。伴热带的老化存在随机性和不确定性,同一批次产品的使用寿命也各不相同,无法准确预测,因此为了保证各处管线正常工作,现场工作人员需要频繁的巡检伴热带是否有效运行,其中包括难以探查的室外管线、架空管线等。这种传统的现场巡检方式检测效率低、工作强度大、人工耗时高,并且存在一定的漏检风险。
3.目前,伴热带采用ptc材料,此类材料随着使用时间增加逐渐老化,设备的发热功率衰减,最终无法达到管线加热的需求功率。伴热带工作会衰减老化失效,此外,伴热带设备也存在意外老化情况,如被加热物体温度过低、不当拖曳、过度拉伸、受潮等。意外状态将加速伴热带产品的老化,加之伴热带产品个体差异,采用传统伴热带工作衰减老化失效曲线进行预测无法有效估计设备运行状态。
4.传统伴热带寿命的不确定性和随机性是造成更换设备施工作业无序性和急迫性的重要原因,科学地预测加热设备的使用寿命可以为保障人员展开工作提供依据。本发明将研究ai机械学习在伴热带寿命预测方面的应用技术,通过已有数据样本发现关联规律,通过高效的训练方法强化学习过程,建立分类、聚类和回归算法/模型,根据对象数据实现对伴热带的寿命预测。


技术实现要素:

5.本发明的目的在于克服现有技术的不足,提供一种基于xgboost算法的伴热带装置寿命状态预测方法,以解决上述技术背景中提出的问题。
6.为实现上述目的,本发明通过以下技术方案来实现:
7.基于xgboost算法的伴热带装置寿命状态预测方法,包括以下步骤:
8.步骤一、将伴热带装置的的历史数据信息加入数据集;
9.其中,数据集中的每个数据样本包括伴热带工作电流、端电压和温度三个特征值以及一个真实标签值;
10.步骤二、将步骤一的数据集以7:2:1的比例进行划分,其中70%数据作为训练数据集用于训练模型、20%数据作为验证数据集用来对模型参数进行调整、以及10%数据作为测试数据集验证模型的准确度;
11.步骤三、在开始训练xgboost模型之前对xgboost模型参数进行初始化处理,
xgboost模型参数包含通用参数、booster参数和学习目标参数;
12.步骤四、设定迭代次数num_round为t(t默认为10),用步骤二中的训练数据集训练步骤三的xgboost初始化模型,得到训练后模型,即第1棵树到第3t棵树的构建,模型训练具体步骤为:
13.4.1设定每个样本的初始预测概率均为p0,并根据初始预测概率和样本真实标签值构建前三棵树;
14.4.2根据前三棵树中每个样本的预测概率p
1i
、样本真实标签值进行第二次迭代,直到达到设定的迭代次数,训练模型构建完成;
15.在模型训练过程中,针对每一类别的t棵树中样本xi预测分值的变化如下式(1)所示,
[0016][0017]
式(1)中,f
t
(xi)指某一类型的第t棵树中样本xi对应的叶子节点权值;k表示类别,k取值1、2或3;表示第k类别中,在前t-1棵树中样本xi对应的叶子节点权值和第t棵树中样本xi对应的叶子节点权值之和;
[0018]
样本xi的叶子节点权值之和和预测概率之间的转换关系式为:
[0019][0020]
式(2)中,p
1i
表示样本xi为第一类的预测概率,p
2i
表示样本xi为第二类的预测概率,p
3i
表示样本xi为第三类的预测概率;
[0021]
步骤五、利用步骤二中的验证数据集调整步骤四所得训练后模型的模型参数,具体为通过不断的调整模型参数查看验证数据集的分类结果,最终选出最优的模型参数;
[0022]
步骤六、通过步骤二中的测试数据集验证步骤五所得xgboost模型的准确度;
[0023]
步骤七、当步骤六中验证xgboost模型准确度不满足要求时,重复步骤一至步骤六,直到准确为止;若步骤六中验证xgboost模型准确度满足要求时,得到验证好的xgboost模型,用验证好的xgboost模型对伴热带装置实时工作数据进行预测,得到其预测分值,预测分值转化为对应的寿命类别即为当前伴热带装置寿命状态。
[0024]
上述技术方案中,步骤一中的真实标签值为[1,0,0]、[0,1,0]或]0,0,1],且标签值[1,0,0]、[0,1,0]和[0,0,1]分别对应工作正常、寿命预警和寿命不足三种不同的寿命状态。
[0025]
上述技术方案中,步骤三中xgboost模型参数进行初始化处理具体为:
[0026]
通用参数中将booster设置为gbtree;booster参数中将eta设置为0.1、gamma设置为0.1、max_depth设置为5、min_child_weight设置为2、lambda设置为2;学习目标参数设置为:objective设置为multi:softmax、num_class设置为3;
[0027]
其中,gbtree表示基于树的模型,eta表示学习率,gamma表示节点分裂所需的最小损失函数下降值,max_depth表示树的最大深度,min_child_weight表示最小叶子节点样本权重和,lambda表示权重的l2正则化项,objective表示返回预测的类别,multi:softmax表示softmax的多分类器,num_class为类别数目。
[0028]
上述技术方案中,步骤4.1中,根据初始预测概率和样本真实标签值构建前三棵树的具体构建过程为:
[0029]
4.1.1针对第一个类别进行构建第1棵树,根据初始预测概率(设为0.333)和样本真实标签值对训练集样本进行节点划分;训练集样本中,样本属于第一类的真实标签值为1,样本不属于第一类的真实标签值为0;
[0030]
4.1.2在对训练集样本进行节点划分的过程中,当该棵树叶子节点的权值之和达到最小叶子节点样本权重和(min_child_weight)或者该棵树中树的深度达到设定的树的最大深度(max_depth)或者分裂收益达到阈值(阈值设定为0)即停止节点分裂,此时得到第一类的第1棵树,即训练模型的第1棵树;
[0031]
4.1.3采用同样的方法针对第二个类别和第三个类别的第1棵树的构建,即训练模型的第2棵树和第3棵树。
[0032]
上述技术方案中,步骤4.1.1中,根据初始预测概率和样本真实标签值(0/1/2)对训练样本进行节点划分具体方法为:
[0033]
4.1.1.1设定每个样本的初始预测概率p0,并根据初始预测概率和样本真实标签值得到训练集样本损失函数的一阶偏导数值和二阶偏导数值,并根据一阶偏导数值和二阶偏导数值得到分裂前后的目标函数;
[0034]
训练集样本损失函数的一阶偏导数值和二阶偏导数值如下式所示:
[0035][0036][0037]
其中,gi为样本xi损失函数的一阶导,hi为xi损失函数的二阶导,yi表示样本xi的真实标签值,表示样本xi的预测分值或样本xi所对应的叶子节点权值之和;在前三棵树的建立过程中,每个样本的初始预测概率p0=0.333;
[0038]
分裂前、后的目标函数分别为:
[0039][0040][0041]
其中,左子树一阶偏导数值计算
[0042]
左子树二阶偏导数值计算
[0043]
右子树一阶偏导数值计算
[0044]
右子树二阶偏导数值计算
[0045]ileft
为左子树样本集合,i
right
为右子树样本集合,i表示样本xi,λ表示步骤三中的参数lambda,γ表示步骤三中的参数gamma;
[0046]
4.1.1.2根据分裂前后的目标函数计算分裂收益,即分裂后的分裂收益=分裂前目标函数-分裂后目标函数,分裂后的分裂收益gain为如下式所示:
[0047][0048]
4.1.1.3根据步骤4.1.1.1至4.1.1.2计算训练数据集样本的每个特征值所对应的分裂收益,并以最大分裂收益所对应的特征值作为分裂点,进行节点划分。
[0049]
上述技术方案中,步骤4.2中,根据前三棵树中每个样本的预测概率p
ki
、样本真实标签值进行第二次迭代,构建第4棵到第6棵树,其具体构建过程为:
[0050]
4.2.1针对第一类的树进行构建第一类的第2棵树,根据该类别中每个样本的预测概率p
1i
(k=1,即p
ki
=p
1i
)和样本真实标签值,对训练集样本进行节点划分,其中,训练集样本中,属于第一类的样本真实标签值为1,不属于第一类树别的样本真实标签值为0;具体节点划分方法为:
[0051]
4.2.1.1根据每个样本的预测概率p
1i
和样本真实标签值得到训练集样本损失函数的一阶偏导数值和二阶偏导数值,并根据一阶偏导数值和二阶偏导数值得到分裂前后的目标函数;
[0052]
训练集样本损失函数的一阶偏导数值和二阶偏导数值如下式所示:
[0053][0054][0055][0056]
其中,gi为样本xi损失函数的一阶导,hi为xi损失函数的二阶导,yi表示样本xi的真实标签值,表示样本xi的预测分值或样本xi所对应的叶子节点权值之和;p
1i
表示第一类中样本xi的预测概率;
[0057]
分裂前、后的目标函数分别为:
[0058][0059][0060]
其中,左子树一阶偏导数值计算
[0061]
左子树二阶偏导数值计算
[0062]
右子树一阶偏导数值计算
[0063]
右子树二阶偏导数值计算
[0064]ileft
为左子树样本集合,i
right
为右子树样本集合,i表示样本xi,λ表示步骤三中的参数lambda,γ表示步骤三中的参数gamma;
[0065]
4.2.1.2根据分裂前后的目标函数计算分裂收益,即分裂后的分裂收益gain=分裂前目标函数obj
1-分裂后目标函数obj2,,分裂后的分裂收益gain为如下式所示:
[0066][0067]
4.2.1.3根据步骤4.2.1.1至4.2.1.2计算训练数据集样本的每个特征值所对应的分裂收益,并以最大分裂收益所对应的特征值作为分裂点,进行节点划分;
[0068]
4.2.2在对训练集样本进行节点划分的过程中,当该棵树叶子节点的权值之和达到最小叶子节点样本权重和min_child_weight,或者该棵树中树的深度达到设定的树的最大深度max_depth,或者分裂收益达到阈值,阈值设定为0,即停止节点分裂,此时得到第一类的第2棵树,即训练模型的第4棵树;
[0069]
4.2.3采用同样的方法进行第二类和第三类的第2棵树的构建。
[0070]
上述技术方案中,步骤五中,通过验证数据集调整模型参数的具体方法为:
[0071]
第一步对max_depth和min_child_weight调优,先大范围粗调,再小范围细调,接着使用高负荷的栅格搜索确定最佳max_depth和最佳min_child_weight;
[0072]
第二步对gamma参数调优,在栅格搜索之后再进行精细调节确定最佳值;
[0073]
第三步对lambda参数调优;
[0074]
最后对学习率eta进行调优;
[0075]
参数调优的评价准则为是否使得验证数据集的预测准确度提高。
[0076]
上述技术方案中,步骤六中,xgboost模型准确性的具体验证方法为:用步骤五所得模型参数调优后的训练模型对验证集的样本数据进行预测,得到其预测分值,转化为寿命类别之后与其实际的寿命类别进行对比,得到相对的准确度,若准确度小于97%,就从步骤一重新开始。
[0077]
与现有技术相比,本发明的有益效果是:
[0078]
1、本发明将ai机械学习应用在伴热带寿命预测方面,通过已有数据样本发现关联规律,通过高效的训练方法强化学习过程,建立分类、聚类和回归算法/模型,根据对象数据实现对伴热带的寿命预测。
[0079]
2、xgboost利用“贪心策略”解决分叉特征选择的问题,通过对目标函数求最值解决如何求取预测分值的问题,以迭代的方式在每轮迭代增加一颗新的cart树,最终实现预测残差的逐步拟合,完成寿命预测。
附图说明
[0080]
图1为本发明中xgboost算法的伴热带装置寿命状态预测方法的流程图;
具体实施方式
[0081]
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0082]
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0083]
参阅图1,本发明提供了一种基于xgboost算法的伴热带装置寿命状态预测方法,包括以下步骤。
[0084]
基于xgboost算法的伴热带装置寿命状态预测方法,包括以下步骤:
[0085]
步骤一、将伴热带装置的的历史数据信息加入数据集;
[0086]
其中,数据集中的每组数据包括伴热带工作电流、端电压和温度三个特征值以及一个真实标签值,真实标签值为[1,0,0]、[0,1,0]或[0,0,1],且标签值[1,0,0]、[0,1,0]和[0,0,1]分别对应工作正常(大于500小时)、寿命预警(小于500小时,大于100小时)和寿命不足(小于100小时)三种不同的寿命状态;
[0087]
步骤二、将步骤一的数据集以7:2:1的比例进行划分,其中70%数据作为训练数据集用于训练模型、20%数据作为验证集用来对模型参数进行调整、以及10%数据作为测试集验证模型的准确度;
[0088]
步骤三、在开始训练xgboost模型之前对xgboost模型参数进行初始化处理,xgboost模型参数包含通用参数、booster参数和学习目标参数;
[0089]
其中,通用参数中将booster设置为gbtree(gbtree指基于树的模型),通用参数中其他参数保持默认值;booster参数中将学习率eta设置为0.1(通过减小每一步的权重,可以提高模型的鲁棒性,典型值为0.01-0.2)、gamma设置为0.1(在节点分裂时,只有分裂后损失函数的值下降了,才会分裂这个节点,gamma指定了节点分裂所需的最小损失函数下降值)、max_depth设置为5(指树的最大深度)、min_child_weight设置为2(决定最小叶子节点样本权重和)、lambda设置为2(lambda指权重的l2正则化项),其他参数保持默认值;学习目标参数中将objective设置为multi:softmax(使用softmax的多分类器,objective为返回预测的类别)、num_class设置为3(num_class为类别数目),学习目标参数中其他参数保持默认值;
[0090]
步骤四、设定迭代次数num_round为t(t默认为10,也可进行设定),用步骤二中的训练数据集训练步骤三的xgboost初始化模型,得到训练后的xgboost模型,即第一棵树到第3t棵树的构建,训练模型的具体步骤如下:
[0091]
1)在模型训练过程中,针对每一类别的t棵树中样本xi预测分值的变化如下式(1)所示,
[0092][0093]
其中,且样本xi包含在叶子节点j里面。
[0094]
式(1)中,f
kt
(xi)指某一类别的第t棵树中样本xi对应的叶子节点权值;k表示类别,k取值1、2或3;表示第k类别中,在前t-1棵树中样本xi对应的叶子节点权值和第t棵树中样本xi对应的叶子节点权值之和;
[0095]
为某一类的第t棵树中叶子节点j对应的权值,为某一类的第t棵树中叶子节点j包含样本的一阶偏导数之和,为某一类的第t棵树中叶子节点j包含样本的二阶偏导数之和,λ表示步骤三中的参数lambda。
[0096]
例如,针对第一类,第1棵树到第t棵树中样本xi预测分值的变化如下式所示,
[0097][0098]
其中,f
1t
(xi)指第一类的第t棵树中样本xi对应的叶子节点权值,表示第一类中,在前t-1棵树中样本xi对应的叶子节点权值之和和第t棵树中样本xi对应的叶子节点权值之和;
[0099]
2)样本xi的叶子节点权值之和和预测概率之间的转换关系式为:
[0100][0101]
式(2)中,p
1i
表示样本xi为第一类的预测概率;p
2i
表示样本xi为第二类的预测概率,p
3i
表示样本xi为第三类的预测概率。
[0102]
将公式(1)中针对第一类以及针对第二类的以及针对第三类的带入式(2)可以得到某一类别的下一颗树中样本xi对应该类别的预测分值p
1i
、p
2i
、p
3i

[0103]
3)在开始下一轮迭代之前,根据前一轮的预测概率和样本真实标签值得到训练集样本的一阶偏导数值和二阶偏导数值,如下式所示:
[0104][0105][0106][0107][0108]
其中,gi为样本xi损失函数的一阶导,hi为xi损失函数的二阶导,yi表示样本xi的真实标签值,表示样本xi的预测分值或样本xi所对应的叶子节点权值之和;p
ki
表示前一轮迭代中样本xi对应第k类的预测概率,在前三棵树建立过程中,p
ki
=p0=0.333;
[0109]
xgboost模型的具体构建过程为:
[0110]
4.1根据初始预测概率和样本真实标签值构建前三棵树;前三棵树为三种类别分别对应的第1棵树,当构建某一类别的第1树时,训练数据集样本中,属于该类别的真实标签值为1,不属于该类别的真实标签值为0,验证数据集和测试数据集同理,不再赘述;
[0111]
设定初始预测概率p0=0.333;
[0112]
具体构建过程为:
[0113]
4.1.1针对第一类进行构建第1棵树,根据初始预测概率对训练样本进行节点划分;节点划分具体方法为:
[0114]
4.1.1.1根据初始预测概率p0和样本真实标签值可以得到训练集样本损失函数的一阶偏导数值和二阶偏导数值,并根据一阶偏导数值和二阶偏导数值得到分裂前后的目标函数;
[0115]
训练集样本损失函数的一阶偏导数值和二阶偏导数值如下式所示:
[0116][0117][0118]
其中,gi为样本xi损失函数的一阶导,hi为xi损失函数的二阶导,yi表示样本xi的真实标签值,表示样本xi的预测分值或样本xi所对应的叶子节点权值之和;在前三棵树的建立过程中,每个样本的初始预测概率p0=0.333;
[0119]
分裂前、后的目标函数分别为:
[0120][0121][0122]
其中,左子树一阶偏导数值计算
[0123]
左子树二阶偏导数值计算
[0124]
右子树一阶偏导数值计算
[0125]
右子树二阶偏导数值计算
[0126]
其中,h
l
表示左子树包含样本的二阶偏导数之和,hr表示右子树包含样本的二阶偏导数之和,g
l
表示左子树包含样本的一阶偏导数之和,gr表示右子树包含样本的一阶偏导数之和,i
left
为左子树样本集合,i
right
为右子树样本集合,i表示样本xi,λ表示步骤三中的参数lambda,γ表示步骤三中的参数gamma;
[0127]
4.1.1.2根据分裂前后的目标函数计算分裂收益,即分裂后的分裂收益=分裂前目标函数obj
1-分裂后目标函数obj2,分裂后的分裂收益gain为如下式所示:
[0128][0129]
4.1.1.3根据步骤4.1.1.1至4.1.1.2计算训练数据集样本的每个特征值所对应的分裂收益,并以最大分裂收益所对应的特征值作为分裂点,进行节点划分;
[0130]
4.1.2在步骤4.1.1进行节点划分的过程中,当该棵树叶子节点的权值之和达到最小叶子节点样本权重和(min_child_weight)或者该棵树中树的深度达到设定的树的最大深度(max_depth)或者分裂收益达到阈值(阈值设定为0)即停止分裂,此时得到第一类的第1棵树,该棵树叶子节点的权值之和为:
[0131]
4.1.3采用同样的方法进行第二类和第三类对应的第1棵树的构建,即训练模型的第2棵树和第3棵树的构建;
[0132]
4.2根据前三棵树中每个样本的预测概率p
ki
和样本真实标签值进行第二次迭代;
[0133]
步骤4.2第二次迭代的过程与步骤4.1构建前三棵树的过程类似,除了步骤4.2在开始构建三种类别的第2棵树(即第4棵树、第5棵树和第6棵树)之前,根据三种类别的第1棵树的预测概率(即p
1i
、p
2i
和p
3i
)和样本真实标签值得到训练集样本损失函数的一阶偏导数值和二阶偏导数值;而步骤4.1在构建前三棵树之前,根据初始预测概率和样本真实标签值得到训练集样本损失函数的一阶偏导数值和二阶偏导数值;第二次迭代的构建过程具体如下:
[0134]
1)在开始第二次迭代之前,根据前三棵树的预测概率和样本真实标签值得到训练集样本损失函数的一阶偏导数值和二阶偏导数值;并根据一阶偏导数值和二阶偏导数值分别对应得到第4棵树、第5棵树和第6棵树分裂前后的目标函数;
[0135][0136][0137][0138][0139]
其中,gi为样本xi损失函数的一阶导,hi为xi损失函数的二阶导,yi表示样本xi的真
实标签值,表示样本xi的预测分值或样本xi所对应的叶子节点权值之和;p
ki
表示样本xi对应第k类的预测概率;
[0140]
分裂前、后的目标函数分别为:
[0141][0142][0143]
其中,左子树一阶偏导数值计算
[0144]
左子树二阶偏导数值计算
[0145]
右子树一阶偏导数值计算
[0146]
右子树二阶偏导数值计算
[0147]ileft
为左子树样本集合,i
right
为右子树样本集合,i表示样本xi,λ表示步骤三中的参数lambda,γ表示步骤三中的参数gamma;
[0148]
2)根据分裂前后的目标函数计算分裂收益;
[0149]
3)根据步骤1)至2)计算样本特征的每个特征值所对应的分裂收益,并以最大分裂收益所对应的特征值作为分裂点,进行节点划分;
[0150]
4)在步骤1)至3)进行节点划分的过程中,当该棵树叶子节点的权值之和达到阈值(min_child_weight)或者该棵树中树的深度达到设定的最大深度(max_depth)或者分裂收益达到阈值(设定为0,如果大于0表明目标函数值还在下降)即停止分裂;
[0151]
4.3在开始构建下三棵树之前即下一轮迭代前,根据上三棵树的预测概率和样本真实标签值得到训练集样本的一阶偏导数值和二阶偏导数值,重复步骤4.2的迭代学习,直到达到设定的迭代次数,xgboost模型构建完成。
[0152]
步骤五、利用步骤二中的验证数据集调整步骤四所得训练后模型的模型参数,具体为通过不断的调整模型参数查看验证数据集的分类结果,最终选出最优的模型参数,得到参数调优的xgboost模型;
[0153]
步骤五中,通过验证数据集调整模型参数的具体方法为:
[0154]
先用xgboost中的cv函数来确定最佳的决策树数量3t,在学习速率为0.1、给定迭代次数t为1000时,cv函数中的early_stopping_rounds设置为50,表示如果迭代50次后损失函数没有下降就停止训练,得出的理想的决策树数量3t为114棵,训练集的准确度为94.44%;
[0155]
其中,cv函数中的early_stopping_rounds设置为50,表示如果迭代50次后损失函数没有下降就停止训练。
[0156]
第一步对max_depth和min_child_weight调优,先大范围粗调,再小范围细调,接着使用高负荷的栅格搜索确定最佳max_depth和最佳min_child_weight,具体步骤为:先给定max_depth范围为3-10,步长为1,给定min_child_weight范围为1-6,步长为1,利用gridsearchcv.fit进行栅格搜索,可以得到最佳max_depth为3,最佳min_child_weight为
5;然后给定max_depth为2/3/4,给定min_child_weight为4/5/6,利用gridsearchcv.fit进行栅格搜索,可以得到最佳max_depth为2,最佳min_child_weight为4;
[0157]
第二步对gamma参数调优,在栅格搜索之后可以再进行精细调节确定最佳值,具体步骤为:先给定gamma范围为0-5,步长为0.1,利用gridsearchcv.fit进行栅格搜索,可以得到最佳gamma为0,然后给定gamma范围为0-1,步长为0.02,利用gridsearchcv.fit进行栅格搜索,可以得到最佳gamma为0;
[0158]
第三步对lambda参数调优,具体步骤为:先给定lambda范围为0-5,步长为1,利用gridsearchcv.fit进行栅格搜索,可以得到最佳lambda为0,然后给定lambda范围为0-1,步长为0.01,利用gridsearchcv.fit进行栅格搜索,可以得到最佳lambda为0;
[0159]
最后对学习率eta进行调优,具体步骤为:先给定eta范围为0-1,步长为0.01,利用gridsearchcv.fit进行栅格搜索,可以得到最佳eta为0.1,然后给定eta范围为0.09/0.1/0.11,利用gridsearchcv.fit进行栅格搜索,可以得到最佳eta为0.1;
[0160]
参数调优的评价准则为是否使得验证数据集的预测准确度提高。
[0161]
步骤六、通过步骤二中的测试数据集验证步骤五所得xgboost模型准确性;
[0162]
xgboost模型准确性的具体验证方法为:用步骤五所得模型参数调优后的xgboost模型对验证集的样本数据进行预测,得到其预测分值,转化为寿命类别之后与其实际的类别进行对比,就可以得到相对的准确度,如果不满足要求,即准确度小于97%,就从步骤一重新开始。
[0163]
步骤七、当步骤六中验证xgboost模型准确度不满足要求时,重复步骤一至步骤六,直到准确为止;若步骤六中验证xgboost模型准确度满足要求时,得到验证好的xgboost模型,用验证好的xgboost模型对伴热带装置实时工作数据进行预测,得到其预测分值,预测分值转化为对应的寿命类别即为当前伴热带装置寿命状态。
[0164]
本发明中,每个训练样本的预测分值有三个,分别等于对应类别的t棵树中该样本对应的节点权值之和,经过转换得到对应三种类别的预测概率,三个概率相加为1,选取概率值最大的为样本寿命标签类别。
[0165]
本发明中,在模型训练过程中,每一轮迭代学习都以损失函数最小化为目标遍历每个样本所有特征,求出每个样本对应的叶子节点权值之和,从而得到每个样本的预测分值,最终根据概率完成对伴热带寿命状态的标签分类(其中,每一个数据样本会对应三个预测分值,即分别对应三种类别),三个概率相加为1,选取概率值最大的为样本类别);其中,所有特征就指训练数据中的电流、端电压、温度信息这三个特征,
[0166]
对于三分类问题,如果设定迭代次数为t,迭代完成会得到3t棵树,每一轮迭代都针对每个类别分别生成一棵树,每个样本对应的三个预测概率之和为1,最大的预测概率对应的类别即为该样本对应的预测类别。
[0167]
本发明中,xgboost采用了集成学习方法,即构建多个分类器(弱分类器)对数据集进行预测,然后将多个分类器预测的结果集成起来,作为最终预测结果。xgboost源于gbdt,原理就是所有弱分类器的结果相加等于预测值,然后下一个弱分类器去拟合误差函数对预测值的梯度/残差(这个梯度/残差就是指预测值与真实值之间的误差),弱分类器的表现形式就是各棵树。对于迭代次数num_round=t,表示弱分类器的个数,该值越大,模型的学习能力就越强,模型也越容易过拟合,默认值为t=10,可以用xgboost中的cv函数来确定最佳
的决策树数量,即最佳迭代次数,确保迭代过程中每次加入的新树使得模型表达效果有所提升。
[0168]
本发明中,xgboost采用前向分布算法,即我们把学习的过程分解为先学习前三棵树,然后基于学习好的前三棵树再去进行第二次迭代,以此类推,目的在于使得目标函数尽可能小,目标函数如下:
[0169][0170]
目标函数推导过程如下:
[0171]
损失函数l可由预测值与真实值yi进行表示:
[0172][0173]
表达式如下:
[0174][0175]
xgboost模型的预测精度由模型的偏差和方差共同决定,损失函数代表了模型的偏差,想要方差小则需要在目标函数中添加正则项,用于防止过拟合。所以目标函数由损失函数l和抑制模型复杂度的正则项ω组成,定义为:
[0176][0177]
其中是将全部t棵树的复杂度进行求和(针对某一个类别所构建的t棵树),由于xgboodt是boosting族中的算法,所以遵从前向分步加法,以第t步的模型为例,样本xi的预测分值之和为:其中是由第t-1步的模型给出的预测值,是已知常数,f
t
(xi)是这次需要加入的新模型的预测值。目标函数就可以写成:
[0178][0179][0180]
上式中只有一个变量,就是第t棵树f
t
(xi),其余都是已知量或可通过已知量计算出来。上式中有一点需要注意,由于前t-1棵树的结构已经确定,因此前t-1棵树的复杂度可以用一个常量表示,正则化项
[0181]
根据泰勒公式,把函数f(x δx)在点x处进行泰勒的二阶展开,可得如下等式:
[0182][0183]
将该方法用在目标函数上,f(x)对应损失函数x对应前t-1棵树的预测分值δx对应我们正在训练的第t棵树f
t
(xi),则可以将损失函数写为:
[0184][0185]gi
为损失函数的一阶导,hi为损失函数的二阶导。
[0186]
将上式带入到xgboost的目标函数中,可以得到目标函数的近似值:
[0187][0188]
由于在第t步时是一个已知的值,所以是一个常数,去掉全部的常数项,得到目标函数为:
[0189][0190]
决策树的复杂度ω可由叶子树t组成,叶子节点越少模型越简单,所以目标函数的正则项由生成的所有决策树的叶子节点数量和所有节点权重所组成的向量的范式共同决定。
[0191][0192]
我们将属于第j个叶子节点的所有样本xi划入到一个叶子节点的样本集合中,数学表示为ij={i|q(xi)=j},那么xgboost的目标函数可以写成:
[0193][0194][0195][0196]
即得到:
[0197][0198]
注意gj和hj是前t-1步得到的结果,其值可以视为常数,只有最后一棵树的叶子节点ωj不确定。
[0199]
因为各个叶子节点的目标子式是相互独立的,也就是说,当每个叶子节点的子式达到最值点时,整个目标函数才达到最值点。套用一元二次函数的最值公式,将目标函数对ωj求一阶导数,并令其等于零,得到叶子节点j对应的权值:
[0200][0201]
即可以得到最终的简化之后的目标函数为:
[0202][0203]
对于单个叶子节点,上式与式(3)等价,目标函数推导完毕。
[0204]gj
表示叶子节点j包含样本的一阶偏导数之和,hj表示叶子节点j包含样本的二阶偏导数之和,ωj表示叶子节点的权值,λ即步骤三中的参数lambda,γ即步骤三中的参数gamma,t表示叶子节点总数;t表示迭代次数或第t棵树。
[0205]
样本xi叶子节点权值之和和xi预测概率之间的转换关系式为:
[0206][0207]
其中,表示样本xi对应第一类的叶子节点权值之和,表示样本xi对应第二类的叶子节点权值之和,表示样本xi对应第三类的叶子节点权值之和,p
1i
表示样本xi为第一类的预测概率,p
2i
表示样本xi为第二类的预测概率,p
3i
表示样本xi为第三类的预测概率;建立第一棵树时,给定所有样本预测概率为0.333,当迭代次数足够大时,初始预测概率的影响可以忽略不计。
[0208]
本发明中,步骤四中,对训练集的样本进行节点划分,具体的过程为:
[0209]
根据初始预测概率和样本真实标签值可以得到训练集样本的一阶偏导数值和二阶偏导数值,分裂前后的目标函数分别为:
[0210][0211][0212]
其中,左子树一阶偏导数值计算
[0213]
左子树二阶偏导数值计算左子树集合为i
left
[0214]
右子树一阶偏导数值计算
[0215]
右子树二阶偏导数值计算右子树集合为i
right
[0216][0217][0218][0219][0220]
根据分裂前后的目标函数计算分裂收益,即分裂后的分裂收益=分裂前目标函数-分裂后目标函数,分裂后的分裂收益为如下式所示:
[0221][0222]
训练集的样本进行节点分类时,我们需要在样本特征电流、端电压、温度中寻找最佳分裂点,所有的训练集样本分别按电流值大小、端电压值大小、温度值大小排序,计算样本特征电流中每个特征值的分裂收益、端电压中每个特征值的分裂收益、温度中每个特征值的分裂收益,分别得到分裂收益的收益最大值的电流特征值、收益最大的端电压特征值和收益最大温度特征值,并将所得三个收益最大值中最大值所对应的特征值(电流、断电压或温度特征值)作为分裂点;
[0223]
以电流为例,对于所有的训练集样本,先将样本根据电流值从小到大进行排序,以每一个电流值作为划分点求解左子树的g
l
和h
l
以及右子树的gr和hr,分别计算每个电流特征值的分裂收益gain(某一特征的节点),得到分裂收益的收益最大对应的电流特征值,再将所有训练集样本根据电压值从小到大进行排序,重复上述计算,得到收益最大的端电压特征值和温度特征值,比较所得三个收益最大值(电流特征值、端电压特征值和温度特征值所对应的收益最大值),最后选取这三个收益最大值中最大值所对应的特征值作为分裂点;将所有的训练集样本以该分裂点进行分裂,得到当前分裂的节点;当前所得每个节点的样本重新进行在特征电流、端电压、温度中寻找最佳分裂点的过程,并将当前所得每个节点的样本进行分裂,得到二次分裂的节点;重复上述过程,并在此过程中,遵循当所有节点的权值之和达到阈值(阈值为min_child_weight,min_child_weight又称最小叶子节点样本权重和;min_child_weight设置为2,当小于阈值2时,停止分裂)或者树的深度达到设定的最大深度(max_depth设置为5,当大于树的最大深度5时,停止分裂)或者分裂收益达到阈值即停止分裂原则进行分裂,最后得到前三棵树。
[0224]
本发明中,每一个叶子节点对应一个权值ω(叶子节点就是树中最底段的节点),在这些权值的基础上进行下一次迭代,具体如下:
[0225]
对应某一类别t棵树中xi样本对应的叶子节点权值之和等于前t-1棵树中xi样本对应的叶子节点权值之和和第t棵树中xi样本对应的叶子节点权值f
t
(xi)之和,如下式所示:
[0226][0227]
以第一棵树为例,样本x1对应第一个类别的预测分值就等于(1)式中的f1(x1),也就是样本x1所在叶子节点的权值ω1,就可以得到(1)式中的继而可以得到x1样本的一阶偏导数g1和h1,以此类推可以得到其他样本对应的一阶偏导数和二阶偏导数值,以此类推得到样本x1对应第二个类别和第三个类别的预测分值后,就可以进行第二次迭代。
[0228]
以第t棵树为例(对应某一类别),若样本xi分裂到叶子节点j,样本xi对应的预测分值就等于(1)式中的f
t
(xi),也就是样本xi所在叶子节点j的权值ωj,
[0229][0230]
就可以得到(1)式中的继而可以得到x1样本的一阶偏导数gi和hi,以此类推可以得到其他样本对应的一阶偏导数和二阶偏导数值,就可以进行下一轮迭代。
[0231]
以上所述实施例仅表达了本发明的具体实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献