一种基于XGBoost+NGBoost+LR的层次融合模型XNLBoost制造技术

技术编号:28225681 阅读:18 留言:0更新日期:2021-04-28 09:59
本发明专利技术公开一种基于XGBoost+NGBoost+LR的层次融合模型XNLBoost,属于机器学习预测领域。XNLBoost将重要的决策生成树模型XGBoost、NGBoost以及逻辑回归LR模型各自的优点进行有机地融合,形成了一种新的预测效果更好的层次模型。新模型分别对XGBoost和NGBoost使用不同特征进行多折交叉训练,然后LR模型基于XGBoost和NGBoost的输出值进行预测。使用测试集对模型进行验证,实验表明与其他树模型结合对比,本发明专利技术能更好地缓解甚至防止树模型预测过拟合现象,预测结果的准确率提高,层次融合模型XNLBoost更加稳健。模型XNLBoost更加稳健。

【技术实现步骤摘要】
一种基于XGBoost+NGBoost+LR的层次融合模型XNLBoost


[0001]本专利技术属于机器学习预测领域,对XGBoost,NGBoost和Logistic Regression(LR)进行有层次的融合,形成了一种新的预测模型XNLBoost。

技术介绍

[0002]机器学习主要关注如何在大量已知数据中通过某些途径学习规律,常用于数据预测。机器学习预测过程包含数据预处理、创建分类模型、训练模型、进行预测。传统的梯度提升决策树GBDT(Gradient Boosting Decision Tree)系列决策树模型只利用一阶导数信息,在机器学习中有重要的作用。多模型融合是机器学习领域的重要研究手段。
[0003]华盛顿大学陈天奇在2011年提出的XGBoost模型对损失函数进行二阶泰勒展开,具有自动选取变量等优势,使得能得到问题的更好近似解,已广泛应用于人工智能领域,并在机器学习和数据挖掘领域的Kaggle著名竞赛中大放异彩。然而XGBoost模型具有参数过多、难以正确调整,易出现过拟合的不足。
[0004]斯坦福大学吴恩达团队在2019年提出了NGBoost,以解决现有梯度提升方法难以处理的通用概率预测中的技术难题。NGBoost在不确定性估计和传统指标上的预测表现都很好。
[0005]2020年Hakan等提出了将NGBoost和XGBoost模型融合的NGBoost

XGBoost Framework,其将NGBoost模块化设计与XGBoost基础学习器混合,提高了该模型的预测能力。
[0006]逻辑回归LR(Logistic Regression)是机器学习中的一种分类模型,主要关注逻辑回归算法的数学模型和参数求解方法,其简单高效、应用广泛。然而LR模型预测效果高度依赖于已知数据的正确性,以及对非线性数据的预测性能不佳。
[0007]总体而言,我们需要将集成方法迁移到简单的分类器上。结合不同分类器,用较少的调参和特征选择提升机器学习效果。

技术实现思路

[0008]针对现有问题的需求改进,本专利技术将XGBoost模型、NGBoost模型以及逻辑回归LR模型各自的优点进行有机地融合,形成了一种新的预测效果更好的层次模型XNLBoost。新模型分别对XGBoost和NGBoost使用不同特征进行多折交叉训练,接着LR模型基于XGBoost和NGBoost的输出值进行预测,LR模型的预测值,作为XNLBoost模型的输出值。其包括如下步骤:
[0009](1)加载获取样本数据集BASE,数据集包含特征序列X和预测目标序列Y;
[0010](2)对数据集进行预处理,将数据集按0.8和0.2的比例,并使用train_test_split()方法划分为训练集SetA和测试集SetB;
[0011](3)接着使用make_pipeline()方法对特征分量集X进行划分,形成特征分量子集T1和T2(X=T1∪T2),基于T1和T2,由SetA能产生了数据集SetA_T1和SetA_T2;
[0012](4)定义和初始化基层模型XGBoost和NGBoost,使用k折交叉训练法,并分别基于SetA_T1和SetA_T2进行训练;
[0013](5)XGBoost和NGBoost进行训练结束,将每一轮交叉验证产生的预测值分别构成集合Set_XG_C和Set_NG_C;
[0014](6)定义和初始化第二层分类器模型LR,接着分别以Set_XG_C和Set_NG_C作为LR输入数据集进行训练,分别产生输出值u_XG和u_NG,并以u_XG+w*u_NG为输出值(即XNLBoost的预测值),其中w为选定的权重值;
[0015](7)使用SetB作为模型XNLBoost的测试集,并计算平均准确率accuracy、均方误差MSE(mean

square error)和标准偏差SD(Standard Deviation)。
[0016]其中,步骤(7)中使用均方误差MSE和标准偏差SD计算平均的测试准确率,具体计算如下:
[0017][0018]其中y
i
是需要预测的真实值,是模型预测值,
[0019][0020]其中x
i
是特征向量,代表样本x1,x2,...,x
n
的均值,
[0021]在整个数据集预测计算中,当MSE和SD越小时,层次融合模型XNLBoost预测准确率越高,模型更加稳健;
[0022]使用accuracy正确率是层次融合模型XNLBoost评价指标,具体计算如下:
[0023][0024]True positives(TP)是正确地划分为True的个数,True negatives(TN)是正确地划分为False的个数,P是实际True的总和,N是实际False的总和。被分对的样本数除以所有的样本数,正确率越高,模型越好。
[0025]总体而言,本专利技术所提出新的层次融合模型XNLBoost,经实验和数学原理分析具有如下优点:
[0026](1)本专利技术对特征分量X集划分成子集T1和T2,可使两基层模型XGBoost和NGBoost的输入样本有不同结构,再对选取数据集进行k折交叉验证能更好地缓解甚至防止树模型预测过拟合现象;
[0027](2)本专利技术提出的模型XNLBoost由于有机地组合了XGBoost模型和NGBoost模型,使得同时保留了两个基层模型的优点,支持列抽样、克服参数收敛性的影响。
附图说明
[0028]图1为本专利技术实施例提供的一种基于XGBoost+NGBoost+LR的层次融合模型XNLBoost流程图;
[0029]图2为本专利技术实施例提供的一种基于XGBoost+NGBoost+LR的层次融合模型XNLBoost的训练示意图。
具体实施方式
[0030]为了使本专利技术的目的、技术方案及优点更加清楚,以下结合附图及实施例,对本专利技术进一步详细说明。应当强调,此处所具体实施例仅用于解释本专利技术,并不用于限定本专利技术。此外,下面所描述的本专利技术各个实施方式中所涉及到的模型融合,只要彼此之间未构成冲突就可以相互组合。
[0031]图1为本专利技术实施例提供的一种基于XGBoost+NGBoost+LR的层次融合模型XNLBoost流程图;如图1所示,一种基于XGBoost+NGBoost+LR的层次融合模型的具体步骤如下所示:
[0032](1)加载获取样本数据集BASE,数据集包含特征序列X和预测目标序列Y。特征序列X={X1,X2,...,X
n
},预测目标序列Y={Y1,Y2,...,Y
k
};
[0033](2)对数据集进行预处理,将数据集按0.8和0.2的比例,并使用train_test_split()方法划分为训练集SetA和测试集SetB。其中train_te本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于XGBoost+NGBoost+LR的层次融合模型XNLBoost,其包含如下步骤:(1)加载获取样本数据集BASE,数据集包含特征序列X和预测目标序列Y;(2)对数据集进行预处理,将数据集按0.8和0.2的比例,并使用train_test_split()方法划分为训练集SetA和测试集SetB;(3)接着使用make_pipeline()方法对特征分量集X进行划分,形成特征分量子集T1和T2,基于T1和T2,由SetA能产生了数据集SetA_T1和SetA_T2;(4)定义和初始化基层模型XGBoost和NGBoost,使用k折交叉训练法,并分别基于SetA_T1和SetA_T2进行训练;(5)XGBoost和NGBoost进行训练结束,将每一轮交叉验证产生的预测值分别构成集合Set_XG_C和Set_NG_C;(6)定义和初始化第二层分类器模型LR,接着分别以Set_XG_C和Set_NG_C作为LR输入数据集进行训练,分别产生输出值u_XG和u_NG,并以u_XG+w*u_NG为输出值(即XNLBoost的预测...

【专利技术属性】
技术研发人员:唐子薇徐蔚鸿陈沅涛
申请(专利权)人:长沙理工大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1