本发明属于模型参数优化与机器学习预测
技术领域:
,特别是提供了一种具有智能参数优化模块的xgboost(extremegradientboosting,简称为xgboost)预测方法,适用于解决机器学习里大样本、多特征以及可能存在特征缺失的分类和回归预测问题,可应用于数据分析与预测、故障诊断以及金融数据预测等领域。
背景技术:
:近年来,人工智能得到了空前的发展,各类智能方法如机器学习、深度学习、神经网络等被应用到了许多行业中,提升了企业效率,方便了人们的生活。然而,随着数据量的增多和用户对数据预测精度的要求不断提高,现存预测方法精度已无法满足上述要求,因为多数机器学习算法均有多种参数配置问题,迫切需要参数优化方法或模块的研究与开发。现如今,人工智能中应用广泛的智能方法主要有机器学习、深度学习、神经网络等,他们主要通过数据训练模型,得到模型后,对测试数据进行操作。而这些智能方法对模型的训练通常分为监督学习和无监督学习,监督学习是指输入数据有标签,无监督学习则是指输入数据没有标签。xgboost属于监督学习方法,它是一种灵活且可移植的最佳分布式决策梯度提升方法。它的原理是首先使用训练集和样本真值(即标准答案)训练一棵cart树,然后使用这棵树预测训练集,得到每个样本的预测值,由于预测值与真值存在偏差,所以二者相减可以得到残差;接下来训练第二棵树,此时不再使用真值,而是使用残差作为标准答案;两棵树训练完成后,可以再次得到每个样本的残差,然后进一步训练第三棵树,以此类推。cart树的总棵数可以人为指定,也可以通过监控某些指标(例如验证集上的误差)停止训练。在预测新样本时,每棵树都会有一个输出值,将这些输出值相加,即得到样本最终的预测值。然而,在确定xgboost预测模型的时候,有些参数需要由设计者调整或优化,否则无法保证其预测精度。通常现有的设置及调整优化xgboost模型参数组的方法为设计者通过既往实际经验设置,并通过预测结果来进行人为调整。这种方法虽然可以比较有效地设置xgboost模型的参数组,使其达到一定的预测精度,但比较依赖设计者的经验,并且在遇到非典型的数据集时,可能会耗费大量的时间去设置调整参数组,且预测效果可能会大打折扣。遗传方法是一种基于达尔文生物进化论的自然选择和遗传学中群体遗传机理来搜索最优解的搜索算法,其核心思想是能在搜索过程中自动获取和积累有关搜索空间的知识,并自适应地控制搜索过程以求得最佳解,从而实现高效、并行与全局搜索。当利用遗传方法解决问题时,问题的每一个可能解被编码,成为染色体,而若干个染色体构成了群体,也就是说群体是所有可能解的集合。遗传方法的核心原理就是依据“适者生存”的思想,开始时,先随机的产生一些个体(即初始解),根据预定的目标函数对每一个个体进行评估,给出一个适应度值,基于此适应度值,选择一些个体进行交叉和变异组合成新的一代,同时淘汰掉不好的个体。新一代个体继承了上一代的优良性状,性能也优于上一代,也就是在逐步向最优解靠近。因此,本文提出了一种具有遗传参数优化功能模块的xgboost方法,解决了机器学习里大样本、多特征以及可能存在特征缺失的分类和回归预测问题。技术实现要素:本发明的目的在于提供一种基于遗传算法的xgboost参数优化模块,给现有的xgboost预测模型增加了一种可调节参数的智能模块,能够极大提升xgboost的预测精度,解决了具有大样本、多属性且存在个别属性缺失问题的数据集的预测模型无法找到合适的参数组而引发的预测精度低的难题,提供了一种使用场景更明确、预测性能更好的智能预测方法。本发明的方案思路是:①分析xgboost模型需要使用到的参数组的特点,选择合适的待优化参数及其取值范围;②分析遗传方法的特点与原理,并将其应用于xgboost模型参数组的优化问题,提出了具有遗传优化参数功能模块的xgboost预测方法;③选择一个特征数为6个的数据样本集,并将此数据样本集中90%的样本作为训练集,10%的样本作为测试集;④采用上述样本集,对所提出的具有遗传优化参数功能模块的xgboost模型进行学习、训练和验证;⑤采用手动配置参数法对xgboost模型的参数组进行优化,并对上述数据样本集进行训练和测试,并将所得结果与基于遗传模块的xgboost预测方法进行比较,说明所提出方法的有效性。具体步骤如下:步骤1、选择xgboost模型使用的参数组。参数组的引入使得xgboost模型可以改变自己的预测标准,不同的参数组可以很好的解决不同场景和不同数据集下的预测问题。xgboost参数组通常包括有对模型性能影响比较大的七个参数,分别是learningrate、nestimators、maxdepth、minchildweight、gammavalue、subsample、colsamplebytree。步骤2、构建基于遗传方法的xgboost模型参数组优化模块,具体方案为:针对xgboost模型的参数组中的7个超参数,分别建立表现型和基因型的映射关系,然后随机初始化一个种群,再根据适应度函数对每一个基因个体做一次适应度评估,通过选择函数进行选择,再让个体变异,产生子代,直至找到所需参数的最优解。步骤3、选择数据样本集,并将此数据样本集中90%的样本作为训练集,10%的样本作为测试集。步骤4、采用上述样本集,学习、训练和验证所提出的具有遗传优化参数模块的xgboost预测模型。对于二分类问题,采用如下模型的评估方法,验证模型的准确性。准确率:精确率:召回率:f1值:其中,真正例(tp):真实类别为正例,预测类别为正例,假正例(fp):真实类别为负例,预测类别为正例,假负例(fn):真实类别为正例,预测类别为负例,真负例(tn):真实类别为负例,预测类别为负例。步骤5、结果对比。采用上述数据集,学习、训练和验证人为配置参数的xgboost模型,得到预测结果,并将其与具有遗传优化参数模块的xgboost模型所预测的结果进行比较,得到后者的分类准确率最高的结论。本发明的优点在于:①提供了一种基于遗传算法的xgboost模型参数组优化模块,能够智能优化xgboost模型的参数,极大改善其预测准确度。②解决了机器学习里大样本、多特征以及可能存在特征缺失的分类和回归预测问题,提供了一种使用场景更明确、预测性能更好的智能预测方法。针对肝脏疾病数据集的分类预测结果表明了本方法的有效性。附图说明图1遗传参数优化模块与人为设置参数的准确率随数据量变化对比图具体实施方式步骤1、将本发明应用于特征数为6的300条肝脏疾病二分类数据集中,该类数据的特征之间独立同分布,符合本发明算法的大前提条件。步骤2、由于希望xgboost模型的分类可以尽量平滑、清晰、误差小,因此参数组选择学习率learningrate、基分类器个数nestimators、最大深度maxdepth、叶结点最小权重minchildweight、结点分裂系数gammavalue、随机采样比例subsample、随机采样列数占比colsamplebytree这七个参数,利用遗传方法对这七个参数进行优化调整。步骤3、采用遗传方法,构建优化xgboost模型参数组优化模块,优化xgboost模型的参数,提升xgboost模型的分类预测精度。具体为:将xgboost模型参数组中包含的七个超参数通过编码、选择、交叉、变异、解码一系列操作后,在特征数为6的肝脏疾病二分类数据集的训练下,得到了在分类效果最好的情况下的xgboost模型参数组,7个超参数的最优取值分别为:学习率learningrate=0.17、基分类器个数nestimators=160、最大深度maxdepth=4、叶结点最小权重minchildweight=8.98、结点分裂系数gammavalue=2.41、随机采样比例subsample=0.57、随机采样列数占比colsamplebytree=0.98。xgboost模型参数组的取值范围以及人为设置取值与遗传方法优化后的取值如表1、表2所示。步骤4、基于遗传方法优化参数模型的评估。本发明针对特征数为6的300条肝脏疾病二分类数据集,采用遗传优化参数模块对xgboost模型的参数进行了优化,得到最好分类效果时的参数值及准确率,并另外对比了与人为设置参数的xgboost模型随数据量变化的分类效果,具体模型的评估与对比如表3。表1:xgboost模型参数组中各参数的取值范围及人为设定值参数名称取值范围人为设定值学习率learningrate[0,1]0.3基分类器个数nestimators--500最大深度maxdepth[0,∞]6叶结点最小权重minchildweight[0,∞]1结点分裂系数gammavalue[0,∞]0随机采样比例subsample(0,1]1随机采样列数占比colsamplebytree(0,1]1表2:遗传方法优化后的各参数取值参数名称优化后的取值学习率learningrate0.17基分类器个数nestimators160最大深度maxdepth4叶结点最小权重minchildweight8.98结点分裂系数gammavalue2.41随机采样比例subsample0.57随机采样列数占比colsamplebytree0.98表3:遗传方法参数优化前后xgboost模型性能对比准确率精确率召回率f1值优化前0.82860.90910.83330.8696优化后0.91430.88891.00000.9412步骤5、根据上述表格可以看出具有遗传优化参数模块的xgboost模型准确率更高。综上所述,相比人为设置参数的xgboost模型,具有遗传优化参数优化模块的xgboost模型的分类性能更好,是更好的分类选择。本发明提出了一种具有遗传优化参数模块的xgboost预测方法,解决了机器学习里大样本、多特征以及可能存在特征缺失的分类和回归预测问题,为此类数据的分析与预测提供了新思路和方法。当前第1页1 2 3 
技术特征:1.一种智能参数优化模块的xgboost预测方法,其特征在于,具体步骤如下:
步骤1、选择xgboost模型使用的参数组,参数组的引入使得xgboost模型可以改变自己的预测标准,不同的参数组可以很好的解决不同场景和不同数据集下的预测问题,xgboost参数组通常包括有对模型性能影响比较大的七个参数,分别是learningrate、nestimators、maxdepth、minchildweight、gammavalue、subsample、colsamplebytree;
步骤2、构建基于遗传方法的xgboost模型参数组优化模块:针对xgboost模型的参数组中的7个超参数,分别建立表现型和基因型的映射关系,然后随机初始化一个种群,再根据适应度函数对每一个基因个体做一次适应度评估,通过选择函数进行选择,再让个体变异,产生子代,直至找到所需参数的最优解;
步骤3、选择数据样本集,并将此数据样本集中90%的样本作为训练集,10%的样本作为测试集;
步骤4、采用上述样本集,学习、训练和验证所提出的具有遗传优化参数模块的xgboost预测模型;对于二分类问题,采用如下模型的评估,验证模型的准确性。
准确率:
精确率:
召回率:
f1值:
其中,真正例tp:真实类别为正例,预测类别为正例,
假正例fp:真实类别为负例,预测类别为正例,
假负例fn:真实类别为正例,预测类别为负例,
真负例tn:真实类别为负例,预测类别为负例,
步骤5、结果对比。采用上述数据集,学习、训练和验证人为配置参数的xgboost模型,得到预测结果,并将其与具有遗传优化参数模块的xgboost模型所预测的结果进行比较,得到后者的分类准确率最高的结论。
技术总结一种智能参数优化模块的XGBoost预测方法,属于模型参数优化与机器学习预测技术领域。选择XGBoost模型使用的参数组,构建基于遗传方法的XGBoost模型参数组优化模块,选择数据样本集,并将此数据样本集中90%的样本作为训练集,采用上述样本集,学习、训练和验证所提出的具有遗传优化参数模块的XGBoost预测模型,结果对比。优点在于,解决了大样本的数据集的预测模型无法找到合适的参数组的难题,较之基于经验调整参数的XGBoost模型,能够获得更好的预测结果。针对肝脏疾病数据集的分类预测结果表明了本方法的有效性。
技术研发人员:陈金香;赵峰;尹一岚
受保护的技术使用者:冶金自动化研究设计院
技术研发日:2019.12.27
技术公布日:2020.06.05