一种特殊初值的XGBoost类方法及相关设备与流程

文档序号:32784334发布日期:2023-01-03 17:08阅读:35来源:国知局
一种特殊初值的XGBoost类方法及相关设备与流程
一种特殊初值的xgboost类方法及相关设备
技术领域
1.本发明涉及机器学习技术,具体涉及大数据分析方法。


背景技术:

2.1.xgboost方法。
3.xgboost方法是一种极限梯度提升树方法,其预测性能优异,在很多领域都取得了非常好的成绩。
4.该方法的主要过程描述如下:
5.一个样本集
6.d={(xi,yi)}(|d|=n,xi∈rm,yi∈r),
7.有m个特征,n个样本。
8.一个集成树模型,用k颗树函数相加得到预测结果。
[0009][0010]
其中f={f(x)=ω
q(x)
}(q:rm→
t,ω∈r
t
)是回归树空间。q表示每棵树的结构,把一个样本映射到对应的叶子结点。t是一颗树的叶子结点的个数。每个fk对应一个独立的树结构q及其叶子权重ω。每一颗回归树的每一个叶子结点都有一个连续值得分,用ωi表示第i个叶子结点的得分。为了学习模型中的这些树函数,最小化下面的正则化目标:
[0011][0012]
其中,
[0013]
l是可导凸函数,表示损失函数。ω(fk)是正则项。
[0014]
xgboost算法用提升树算法去最小化目标函数,假设是第i个样本的第t次迭
[0015]
代的预测值,将其加上一个f
t
,最小化如下目标函数:
[0016][0017]
在一般情况下,为了快速优化目标函数。用二阶泰勒展开对其做近似:
[0018][0019]
其中,将常数项移除,得到第t次迭代的目标函数:
[0020][0021]
定义ij={i|q(xi)=j}是划分到叶子结点j的样本点的集合,重写得到
[0022][0023]
对一个固定的树结构q(x),求对每一个ωj的偏导数等于0的ωj值,得到叶子结点j的最优权重得分:
[0024][0025]
最优目标函数值为:
[0026][0027]
树结构q采用贪婪算法求得,迭代的从一个单一的叶子结点开始添加分枝。
[0028]
假设i
l
和ir表示分裂后的左右结点的样本集,i=i
l
∪ir。
[0029]
分裂后的目标函数的减少值由下式给出:
[0030][0031]
此公式用来计算候选划分点。
[0032]
绝大部分地,即的初始迭代值设定为0。
[0033]
类似于学习率,收缩尺度技术在每一步提升树后用一个因子η,也用来防止过拟合。此外还有列采样技术防止过拟合。
[0034]
2.极大似然估计法。
[0035]
极大似然估计值是使得样本出现的联合概率最大的参数估计值,以这个值作为待估参数的估计值。


技术实现要素:

[0036]
由于现有的xgboost类方法中一般以0作为待估变量或待估参数的初始估计值。当待估变量或待估参数的最终预测值离0较远时,需要较多的训练轮数才能达到理想的预测精度。特别是当单个样本损失函数在0点或0点附近的导数的绝对值较大时,需要一个较小的收缩尺度因子η才能保证算法的收敛,而较小的收缩尺度因子η又会大大增加训练轮数。训练轮数多意味着训练时间开销大。还有一种不常用的方法,以上次训练的预测值作为当前训练模型的初始值,但该方法总体上需要至少2次训练模型,同时过拟合的可能大大增加。
[0037]
针对xgboost类方法所存在的问题,需要一种新的数据分析处理方案。
[0038]
为此,本发明的目的在于提供一种特殊的xgboost类方法,由此来有效提高xgboost类方法的计算速度;在训练轮数较少的情况下,有效防止过拟合,同时达到一定的预测精度。
[0039]
为了达到上述目的,本发明提供特殊的xgboost类方法,采用待估变量或待估参数
的极大似然估计作为初始迭代值。相比0点,单个样本损失函数对待估变量或待估参数的导数的绝对值在极大似然估计值附近一般会更小,从而可以使用相对较大的收缩尺度因子η,使得达到相同预测精度的训练轮数更少。另一方面,极大似然估计值离真实值(或理想的最终预测值)相对较近,可以使得达到相同预测精度的训练轮数更少。如此则达到提高xgboost类方法的计算速度,节约计算时间的技术效果。
[0040]
当训练轮数较少的情况下,能有效防止过拟合。而由于极大似然估计值离模型的真实值较近,在训练轮数较少的情况下,也能达到一定的预测精度。所以本方案能达到在训练轮数较少的情况下,有效防止过拟合,同时达到一定的预测精度的技术效果。
[0041]
采用待估变量或待估参数的极大似然估计值作为xgboost类方法初始迭代值和一个较小的收缩尺度因子η能使得xgboost类方法对有特殊取值范围限定时,在迭代过程中保持实际意义。
[0042]
在上述方案的基础上,本发明进一步提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现上述方法。
[0043]
在上述方案的基础上,本发明进一步提供了一种处理器,所述处理器用于运行程序,所述程序运行时实现上述方法。
[0044]
在上述方案的基础上,本发明进一步提供了一种终端设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,所述程序代码由所述处理器加载并执行以实现上述方法。
[0045]
在上述方案的基础上,本发明进一步提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行上述方法。
具体实施方式
[0046]
针对xgboost类方法迭代初值选取不当的缺陷,本方案对一般的xgboost类方法进行改进,采用待估变量或待估参数的极大似然估计值作为初始迭代值,得到特殊的xgboost类方法。其余的技术手段同相应的xgboost类方法。
[0047]
实例1
[0048]
采用待估变量或待估参数的极大似然估计值作为特殊的xgboost类方法初始迭代值。
[0049]
获得极大似然估计值的各种方法是公知技术。
[0050]
例1
[0051]
当损失函数不是待估变量的概率分布的负似然函数或负对数似然函数或其变型时,可将极大似然估计法做扩展。
[0052]
定义:对于全体样本的损失函数,如果对所有的样本i,有一个相同的的估计值,使得全体样本的损失函数取值最小,则称该为估计值为极大似然估计值。
[0053]
求得该取值的各种方法是公知技术。
[0054]
实际上,每一种损失函数都对应了一种概率分布,例如均方误差损失函数对应了正态分布,平均绝对误差损失函数对应了拉普拉斯分布等等。用以上定义得到的极大似然估计值和用相应的概率分布的似然函数或对数似然函数得到的极大似然估计值是一致的。
所以当损失函数不是待估变量的概率分布的负似然函数或负对数似然函数或其变型时,可以对极大似然估计值的定义做如此扩展。
[0055]
举个例子:
[0056]
当损失函数是均方误差损失函数时,极大似然估计值是样本观测值的算术平均值。
[0057]
以该极大似然估计值作为特殊的xgboost类方法中的初值迭代值可以达到提高xgboost类方法的计算速度;在训练轮数较少的情况下,有效防止过拟合,同时达到一定的预测精度的技术效果。
[0058]
例2
[0059]
当损失函数是待估变量的概率分布的负似然函数或负对数似然函数或其变型时,非常明显地,极大似然估计法等同于求使全体样本的损失函数最小的待估参数取值(对所有样本,该取值都一样)的方法。
[0060]
举个例子:
[0061]
当xgboost类方法运用于二分类问题时,会假设预测变量服从二点分布。
[0062]
全体样本的联合概率分布为:
[0063][0064]
其中,是待估参数,对上式取负对数得到
[0065]
全体样本的损失函数:
[0066][0067]
该式是两点分布的负对数似然函数的变型,是该两点分布变型的待估参数预测变量yi为阳性的预测概率为
[0068]
用极大似然估计法求得待估参数的极大似然估计值(对所有的i,的估计值都一样),使得全体样本的损失函数最小。
[0069]
以该极大似然估计值作为特殊的xgboost类方法中的初值迭代值可以达到提高xgboost类方法的计算速度;在训练轮数较少的情况下,有效防止过拟合,同时达到一定的预测精度的技术效果。
[0070]
实例2
[0071]
采用待估变量或待估参数的极大似然估计值作为特殊的xgboost类方法初始迭代值和一个较小的收缩尺度因子η,能使得xgboost类方法对有特殊取值范围限定时,在迭代过程中保持实际意义。
[0072]
举例如下,用xgboost方法预测a股市场上某股票后一个交易日的收盘价格。
[0073]
假设采用均方误差损失函数,直接将后一个交易日的收盘价作为预测变量。
[0074]
首先设定一个较小的收缩尺度因子η。
[0075]
当选择0初值或一个较小的不恰当的初值时,则前几次迭代后的预测值很低,低于后一个交易日的跌停价,没有实际意义。如果此时停止训练,导致xgboost方法没有给出有实际意义的预测结果。
[0076]
对初始迭代值选取过高,则可能导致预测值超过涨停价,没有实际意义。
[0077]
又或者,预测孩子长大后的身高,直接用长大后的身高做预测变量。
[0078]
过低或过高的初值导致前几次迭代后的预测值没有实际意义。
[0079]
如此,选择一个离取值范围上下限适中的初始迭代值和一个较小的收缩尺度因子η能最大程度地避免此种情况发生。适中的初始迭代值的一个合理选择就是极大似然估计值,因为极大似然估计值取值不极端。
[0080]
如果采用待估变量或待估参数的极大似然估计值作为始迭代值和一个较小的收缩尺度因子η,则能最大程度地避免预测变量超过实际取值范围。
[0081]
由于lightgbm方法,catboost方法等方法与xgboost方法非常相似,对于本发明涉及的部分没有区别,本方案同样适用于这些xgboost类方法。
[0082]
本发明实施例还提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现上述实例1-实例2的方案。
[0083]
本发明实施例还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述实例1-实例2的方案。
[0084]
本发明实施例还提供了一种终端设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,所述程序代码由所述处理器加载并执行以实现上述实例1-实例2的方案。
[0085]
本发明还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行上述实例1-实例2的方案。
[0086]
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0087]
本发明是参照本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0088]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0089]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计
算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0090]
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
[0091]
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。存储器是计算机可读介质的示例。
[0092]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
[0093]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0094]
本领域技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1