基于特征选择和XGBoost优化的术中低体温预测

2022-02-18 06:44曹立源范勤勤黄敬英
数据采集与处理 2022年1期
关键词:特征选择决策树体温

曹立源,范勤勤,黄敬英

(1.上海海事大学物流研究中心,上海 201306;2.浙江大学医学院附属邵逸夫医院麻醉恢复室,杭州 310020)

引 言

术中低体温是指体温在手术中任何时点均小于36℃,是手术患者常见并发症[1]。国内外研究显示,术中有50%~70%的病人会出现低体温[2],低体温会严重影响手术质量和患者术后康复[3⁃4]。全麻手术患者由于麻醉剂对机体温度调节等影响,常发生术中低体温问题[5]。

目前,许多学者对全麻手术患者术中低体温问题进行了深入研究,主要集中在3个方面:(1)术中低体温影响因素的研究。文献[6]采用回顾性研究方法,研究结果显示麻醉时间、手术时间、术中输液量等15个因素影响明显。文献[7]采用一元线性回归,实证了术前主动加温对术中低体温影响具有统计学意义。(2)术中低体温影响因素评价指标的研究。文献[8]采用专家咨询与层次分析相结合的方法,构建了一个由2个一级指标和21个二级指标组成的术中低体温影响因素评价指标体系。文献[9]采用多元线性回归,建立术中低体温预测因子评分方程,发现手术等级因子权重最大。(3)术中低体温预测模型的研究。文献[10]采用Logistic回归,构建腹腔术中低体温预测模型,结果显示模型拟合度中等偏上。文献[11]采用单因素分析、多因素Logistic回归,建立术中低体温预测模型,研究发现模型预测精度好于多元线性模型。近年来,机器学习在医疗诊断相关领域的研究增多。杨晶东等[12]提出一种集成学习机制下的鼻炎辅助诊断模型,研究表明该模型对多数类和少数类的分类精度较高。Chung等[13]建立一个基于支持向量机的糖尿病诊断模型,给出了糖尿病特征变量筛选及诊断模型。张春富等[14]提出一个基于GA_XGboost的糖尿病风险预测模型,结果显示预测精度优于支持向量机算法。岳鹏等[15]使用Stacking方法集成多种异质分类器,结果表明识别准确率高于单一分类器模型。Zhong等[16]采用GA⁃CG⁃SVM方法,解决乳腺癌多元回归预测模型过拟合问题。雷雪梅等[17]建立一个改进的XGBoost模型,对高血压菜谱进行识别,结果显示用遗传算法优化模型参数的效果好于网格搜索法。以上研究取得了很好进展,但仍存在一定不足:回顾性分析法不能估算术中低体温发生率;一元线性回归对术中低体温的解释力不足;多元线性回归易忽略交互效应;Logistic回归易产生过拟合;机器学习应用于术中低体温方面的研究较少,其应用性能有待进一步提高。

为此,本文提出一种基于特征选择和XGBoost优化的术中低体温预测模型。首先利用随机森林(Random forest,RF)的袋外估计法进行特征选择,然后利用基于精英保留策略的遗传算法,即EGA算法优化XGBoost超参数,最后根据最优参数训练预测模型并用于术中低体温预测。本文的主要贡献在于利用随机森林、遗传算法和极端梯度提升算法进行组合,结合3种算法优点,尝试机器学习在医疗诊断领域的新拓展;探索基于Bagging的集成学习算法RF和属于Boosting的集成学习算法XGBoost这两种不同集成学习算法的组合方法,提升算法模型的预测性能;所提模型对患者术中低体温的辅助诊疗具有较强适应性和效用性。实验中,采用RF袋外估计法获取特征重要性排序,得到低体温强相关特征,有效提高低体温的特征选择客观性和准确性;利用EGA对XGBoost参数进行调优,获得全局最优参数组合,模型性能提升,且EGA对XGBoost参数调优效果优于对GBDT和SVM参数调优效果,EGA参数调优适用性有效性明显;EGA作为参数调优方法,对XGBoost参数调优效果也优于网格搜索和随机搜索对XGBoost参数调优效果。这3项举措提升了模型预测精度,增强了模型应用于术中低体温预测的泛化性和有效性。

1 术中低体温预测模型

本文提出基于特征选择和XGBoost优化的术中低体温预测模型,其框架流程主要包括数据预处理、特征选择、超参数优化和模型评估4个步骤,如图1所示。

图1 术中低体温预测模型框架Fig.1 A prediction model frame of intraoperative hypothermia

1.1 数据预处理

对全麻手术患者术中低体温原始数据进行数据清洗和数据转换预处理,包括:剔除记录不实数据,如腹部手术、食管手术的出血量为0 mL;剔除有缺失数据的病人数据,如手术麻醉信息系统中无体液出入量、BMI(体质指数)等记录;剔除逻辑核查有误数据等。同时,对数据进行归一化转换,去除数据的单位限制,将其转化为无量纲的纯数值,使数值化后的每个数值归一化到[0,1]区间,具体转化公式为

式中:xi、分别表示数据归一化前后的值,xmin、xmax分别表示样本数据中的最小值和最大值。

1.2 基于随机森林的特征选择

Breiman[18]在Bagging基础上提出了RF学习方法,RF是一种基于集成学习思想,采用Bootstrap重抽样法从原始数据样本中抽取多个样本,利用节点随机分裂技术对每个样本进行决策树建模[19],构建多棵决策树,并用投票法将多棵决策树的预测结果归总输出。

给定数据样本X和预测集Y,在服从随机变量Y、X的分布的样本集中随机抽取n个样本作为训练集,从已训练过的样本集中随机抽取i个样本,每次随机抽样的结果为一棵决策树模型Tk(X,Y),k=1,2,3,…,K。其中,X为自变量,Y为因变量,则由k棵决策树组合形成的回归估计为

式中:Dn为数据集;X(X1,X2,X3,…,Xi)为Dn中被抽取的自变量随机参数;EY为与X有关的期望函数;I[•]为示性函数,当下标条件满足时I[•]=1,否则I[•]=0;yi为在学习样本中与Xi相对应的因变量;[Xi∈An(X,Y)]为包含一个X的随机单元分区;I[EN](X,Y)为判定条件,I[EN](X,Y)=

联立式(2)和式(3)可得到RF对因变量Y的回归估计为

式(4)表明,增加重抽样次数、决策树数量,改善期望EY,模型的预测精度提升,同时不产生过拟合,这是因为RF在算法原理的随机抽样和集成学习上有优势。

假设给定一组决策树模型{T1(M),T2(M),T3(M),…,TK(M)},用上述方法可得训练数据集,由此进一步得到边缘函数

式中:X为自变量;Y为因变量;av为平均值;k为决策树个数;j为Y包含的不同类别。边缘函数代表正确与错误分类相差的幅度,与分类准确率呈正相关。进一步,泛化误差PE*可表示为

式中PX,Y为概率分布。当决策树分类器数量k不断增加时,PE*收敛于

式中:Pθ为每棵决策树概率分布,T(X,θk)满足大数定律,θk为独立抽样且具有同分布的随机变量。由此可以说明在利用随机森林算法进行分类预测时,不会因为决策树个数k的增加而产生过拟合问题。

RF的优势还体现在可以利用RF袋外估计法进行特征选择。RF是有放回抽样,在每一个初始训练集中,约有1/3的数据未被抽取,这些未被抽取数据被称为袋外数据(Out⁃of⁃bag,OOB)。基于RF袋外估计法可通过比较每个变量在加入噪声前后的模型OOB拟合误差来判定该变量的重要性及其对模型的影响程度,不存在偏向问题[20],进而计算每个变量影响模型精度的下降率作为特征重要性度量指标,这就避免了简单地将特征用作分割属性的频率作为特征重要性度量指标所引致的无法准确反映特征间重要性的差异问题[21]。同时,对特征重要性由大到小排序,筛选出最优特征。基本过程是采用Bootstrap抽样法从原样本数据集中(大小为N)有放回地随机抽样N次,构造一个大小同为N的训练集,未出现在训练集里的样本数据为袋外数据;计算每一个特征重要性,并用袋外数据作为测试集,测试错误率记为袋外误差(error);计算所有基学习器的测试平均误差,以精度平均下降率(Mean descent altitude,MDA)作为特征重要性评价指标,按式(8)计算各个特征的MDA值[22]。

式中:n为基学习器的总数;errort为基学习器t未加入噪声后的袋外误差,errort′为基学习器t加入噪声后的袋外误差。MDA指标下降越大,其所对应特征对预测结果影响越大,重要性越高,即可进行特征重要性排序,选择最优特征。

本文利用RF重抽样技术、泛化性和收敛性等优点,采用RF袋外估计法对高维度的术中低体温特征变量进行重要性排序和特征选择,并对特征选择的不同方案进行比较,进而以OOB数据的验证集上分类结果加予检验,筛选出最优特征集。

1.3 XGBoost超参数优化

XGBoost的基本思想是在梯度提升决策树(Gradient boosting decision tree,GBDT)基础上发展起来的,主要对GBDT目标函数进行正则化及二阶泰勒展开,在目标函数中加入正则项,使模型更为简单,防止过拟合,提升模型泛化性能[23];同时利用一阶与二阶导数逼近目标函数,获取更多信息训练树模型[24],提高算法的收敛速度和准确性。

假设一个具有n个样本、m个特征的数据集D={(Xi,yi)}(|D|)=n,Xi∈Rm,yi∈R),其中:|D|表示集合D的维度,即包含的样本数量;Xi为第i个样本的特征向量;yi为第i个样本的标签即真实值,则由K棵树集成的模型预测输出为

为了学习K棵树的函数集合,最小化下列正则化目标函数

式中:φ为K棵树的函数集合为损失函数项为正则项,用于对模型的复杂度进行惩罚,其中γ和λ为正则化参数,γ控制叶子节点个数T,λ控制叶子节点权重ω,防止过拟合。式(10)用于衡量预测值与标签值的差距。

为了快速优化目标,要用二阶泰勒展开,以更快更准地逼近优化目标函数。由于上述目标函数以函数作为参数,因此采用加法学习方式[25],即在现有t-1棵树的基础上添加1棵最优化的CART即ft,使目标函数变为式(11)来优化目标。

将式(11)进行二阶泰勒展开得到

式中:gi、hi分别为一阶偏导和二阶偏导。因前面t-1棵树已训练完成,故l(yi,)为常数项,移除该项得到第t次的简化目标函数为

定义Ij={i|g(Xi)}=j为叶子节点j中的样本编号集合,其中q(Xi)为Xi对应的叶子标签值。通过展开正则项Ω,可将式(15)写为

式(16)是直接统计各个样本的值;如式(16)变换成式(17),就可把对样本的遍历转换为对树的叶子节点的遍历,统计落在每个叶子节点中所有样本的一阶导数gi和该叶子节点权重ω的乘积,以及二阶导数hi和该叶子节点权重ω的乘积,使算法的收敛速度和准确性提升。

式中ωj为叶子结点j的权重。

对于一个固定的树结构q(X),基于凸优化原则,对ωj求导并令导函数等于0,得到叶子节点j的最优权重如式(18)所示,相应的最优目标函数值如式(19)所示。

式(19)用于评价一棵树模型的好坏,得分越小树模型越好。因此,如何优化模型超参数就成了关键。迭代次数过少,容易产生欠拟合;迭代次数过多,容易产生过拟合;学习率过小,梯度下降很慢;学习率过大,可能造成跨过最优值;模型中其他超参数,如树的深度、树的数量、最小叶子节点权值、L2正则化系数、叶子节点分裂时所需要的最小损失减少量等都会对模型性能产生影响,因此本文将对XG⁃Boost的学习率、树的深度、树的数量、最小叶子节点权值等6个超参数进行优化,以提高预测模型性能。

本文采用具有精英保留策略的遗传算法(EGA)优化XGBoost超参数。EGA的基本思想是把群体在进化中迄今出现的最好个体不进行遗传选择、交叉和变异操作而直接“复制”到下一代中,避免迄今出现的最好个体在遗传选择算子、交叉算子和变异算子操作中被破坏,从而使EGA朝着全局最优进化快速搜索到最优解。本文以实数和整数混合编码的方式来表示个体的染色体,每条染色体代表XG⁃Boost待优化的一组超参数;把适应度函数设置为5折交叉验证的精度,用于衡量每条染色体的适应度;在编码和搜索空间规定的范围内随机产生数量为q个的超参数组合,作为初始种群启动遗传进化程序;通过评价种群,选出当前种群中适应度最好个体,若当前种群中最好个体的适应度比迄今出现的最好个体的适应度值高,则以当前种群中最好个体作为新的迄今出现的最好个体,直接“复制”进入下一代的繁衍中;利用算法产生新一代种群,对父代个体进行选择、交叉、变异,计算子代种群中的各个个体适应度值;用迄今出现的最好个体替换子代中最差个体,进化寻优。当遗传进化迭代次数达到最大或者终止条件时,输出最优染色体个体,即为XGBoost的最优超参数组合。本文将EGA优化XGboost超参数与优化GBDT和SVM超参数的效果进行比较;还将EGA优化XGboost超参数与网格搜索和随机搜索优化XGboost超参数的效果进行对比,验证本文采用EGA优化XGBoost超参数的合理性、有效性。

1.4 模型评估

本文把混淆矩阵作为术中低体温模型性能评价指标,如表1所示。表1中:TP(True positive)表示实际有低体温,预测也有低体温;FN(False negative)表示实际有低体温,但预测没有低体温;FP(False positive)表示实际没有低体温,但预测有低体温;TN(True negative)表示实际没有低体温,预测也没有低体温。基于混淆矩阵,结合医学中的评价指标[26],选用分类模型中常用的4个指标作为模型评估依据,即:准确率(Accuracy)、精确度(Precision)、召回率(Recall)和F1分数(F1⁃score)作为预测模型性能评估依据。计算公式分别为

表1 混淆矩阵Table 1 Confusion matrix

式中:Accuracy是所有预测正确的样本数与总样本数的比值;Precision是所有预测为正样本的样本中,真实为正样本的比例;Recall是预测为正样本的数量占所有正样本总数的比例;F1⁃score是精确度和召回率的调和平均数。

同时,把ROC曲线下的面积AUC作为测量评价模型性能优劣的一个指标,用以上5个指标作为本文所提的术中低体温预测模型性能评估依据。

2 实验结果分析

2.1 数据集

本文以某市三甲医院2020年1月至2021年2月的全麻手术患者术中低体温病例数据为数据源,经过对数据进行预处理,删去较多缺失异常值的样本,最终入组294例。其中,纳入的病人中术中发生低体温的病人198例,未发生低体温的病人96例,低体温发生率为67%。

2.2 特征选择

通过数据预处理筛选出的全麻手术患者术中低体温样本数据294个,样本特征变量分别为全麻手术患者的年龄、性别、身体质量指数(BMI)、术前基础体温、麻醉时间、术中输液量、术中出血量、是否冲洗、ASA评级(ASA为美国麻醉医师协会分级)等15个特征为自变量特征,如表2所示。

随机森林生成,其主要步骤如下:

(1)在原始294个样本数据集中,有放回地随机抽样294次(每次抽1个,然后放回继续)组成训练子集,训练一棵决策树。未被抽到的样本则组成一个相应的OOB。

(2)决策树的每个节点处从15个特征中随机挑选m(m<15)个特征,按照节点不纯度最小原则进行分裂。

(3)每棵决策树尽最大程度生长,在生长过程中每个节点都按步骤2来分裂,一直到每个节点无法继续分裂为止。在决策树形成过程中不需要剪枝过程。

(4)按上述第1步到第3步构建随机森林,一共进行80次采样,组成80个训练子集,生成80棵决策树。而每一次未被抽到的样本则组成了相应的80个OOB。

在随机森林的构建过程中,利用OOB数据输入到相应的每个决策树分类器,根据多数投票法,得到随机森林模型分类结果的精度评价。当进行50次采样、生成50棵决策树时,模型分类效果最优,分类精确率为0.800 6,如图2所示,故将决策树数量设为50。

图2 模型分类精度随决策树数量变化Fig.2 Model classification accuracy varies with deci⁃sion trees

特征重要性度量及特征选择方案。利用生成的随机森林、OOB误差估计法,计算15个特征变量进行重要性度量,重复进行10次计算,取每个特征重要性的10次计算平均值,得到各个特征变量对模型的重要性大小排序,如表2所示;按特征重要性由大到小排序,删除重要性最小的特征,对剩下的特征子集进行随机森林分类,重复上述步骤,得到OOB得分(分类精度)随特征个数m∈[1,15]变化曲线,如图3所示。由图3可知,当m为7时,OOB得分最高。

图3 前m个特征的OOB得分结果Fig.3 The first m features for OOB score

表2 自变量特征赋值及特征重要性Table 2 Independent variable feature as⁃signment and feature importance

把这7个特征的选择方案与大于7个特征、小于7个特征的方案进行比较,当m为4、7和10时,OOB得分分别为0.695 3、0.802 4和0.790 5。从4个特征到7个特征时OOB得分迅速上升,说明增选这3个特征对模型重要性影响较大,之后再增选特征时OOB得分趋于缓慢下降,即m为7个特征时是最优特征选择,这也印证了RF算法及袋外估计法的收敛性和泛化性优点。

特征最优选择及分类效果。为验证最优分类精度时的特征个数,基于特征重要性排序和特征选择方案比较结果,利用OOB数据集建立混淆矩阵,检测评价分类结果。表3展示了特征个数分别为4、7、12时采用随机森林算法进行分类检测时的效果比较。

由表3可知,当特征个数为7时分类效果最优,因此选取特征重要性排名前7个特征,即:术前体温、体质指数、麻醉时间、年龄、术中输液量、术中出血量和是否冲洗作为术中低体温预测模型的输入变量较为合理有效。

表3 不同特征数量采用RF算法分类效果比较Table 3 RF classification effects of different feature numbers

2.3 超参数优化

将特征选择后的数据集,按7∶3比例随机划分为训练集和测试集,以筛选出的7个最优特征变量作为XGBoost模型输入变量,选用5折交叉验证,基于EGA优化XGBoost超参数。主要流程如下:

(1)设置XGBoost超参数范围;

(2)将遗传算法的适应度函数设为XGBoost在训练集上5折交叉验证的精度;

(3)利用EGA优化XGBoost超参数,找出一个超参数组合使目标函数达到最优值;

(4)将最优超参数组合输入XGBoost算法进行训练,计算XGBoost预测精度;

(5)若达到最大迭代次数,则输出XGBoost超参数最优值,否则返回步骤3。

本文设定的XGBoost超参数取值范围为(其他超参数保持默认设定值):树的深度(max_depth),(3,7);树的数量(n_estimators),(0,300);学习率(learning_rate),(0.01,0.3);最 小叶子节点权 值(min_child_weight),(0,3);L2正则化系数(reg_lambda),(0,2);叶子节点分裂时所需要的最小损失减少量(gamma),(0,4)。

根据遗传算法的特点,结合XGboost超参数范围,GA参数设置为:种群规模100,进化的最大代数100,进化停滞判断阈值1×10-4、允许进化停滞代数20。经过24次迭代,遗传算法收敛并搜索到最优适应度函数值为0.829 2,如图4所示。此时输出XGBoost模型的最优超参数,如表4所示。

图4 EGA-XGBoost优化过程图Fig.4 Optimization process of EGA-XGBoost model

在上述GA参数设置下,用EGA优化主流分类器GBDT和SVM超参数,优化过程如图5、6所示。将优化后的3大分类器在验证集上交叉验证结果进行比较,如表4所示(表中括号内的数字为各分类器默认参数下结果)。可以看出,优化后的各个分类器的模型性能总体均有明显提升,如准确率指标,EGA⁃XG⁃Boost提升了7.31%,EGA⁃GBDT和EGA⁃SVM也分别提升了4.87%和2.92%;但在具体指标上也有差异,EGA⁃GBDT和EGA⁃SVM各有4个指标提升、1个指标略有下降,说明EGA优化主流分类器超参数具有明显的适用性和有效性。EGA⁃XGBoost的5个指标均有明显提升,说明本文采用EGA优化XGBoost超参数的效果更佳。

表4 EGA优化主流分类器超参数及交叉验证结果Table 4 Optimization of hyperparameters and results

图5 EGA-GBDT优化过程图Fig.5 Optimization process of EGA-GBDT model

图6 EGA-SVM优化过程图Fig.6 Optimization process of EGA-SVM model

2.4 模型性能分析

经EGA优化XGBoost超参数后,使用训练集训练EGA⁃XGBoost,模型在训练集上的准确率为91.71%。将训练后的模型用于测试集进行术中低体温预测,测试集中,实际发生术中低体温63例,发生率为70.79%,模型判断发生60例,误判3例,召回率为0.952 4;实际未发生术中低体温26例,模型判断未发生17例,误判9例,精确度为0.869 6;准确率为0.865 2;ROC曲线下面积为0.894 7,如图7、8所示,模型各项性能指标表现良好。

图7 EGA-XGBoost测试集混淆矩阵Fig.7 Confusion matrix of test set EGA-XGBoost

图8 模型在测试集的ROC曲线下面积Fig.8 Area under the ROC curve of the model

与其他主流分类器模型性能对比。使用SVM、LR、RF、GBDT、XGBoost、LightGBM和CatBoost这7种主流分类器(不进行上述超参数优化),通过与EGA⁃XGBoost相同的训练集训练、测试集测试,测试结果如表5所示。由表5可知,EGA⁃XGBoost的准确率、精确度、召回率、F1和AUC值均处于领先,本文所提的EGA⁃XGBoost模型性能明显占优。

表5 模型在测试集上的测试结果对比Table 5 Comparison of test results of model on the test

与超参数优化的其他方法对比。网格搜索也是超参数调优的常用方法,其思想是穷举搜索,寻找待选参数最佳值,其缺点是耗时长。随机搜索调优方法是一种全局优化算法,只要随机的次数够多,就能找到最优或近优参数,其缺点是随机结果可能不一致。EGA、网格搜索和随机搜索对XGBoost超参数调优及预测结果如表6所示。

表6 XGBoost超参数调优方法及结果对比Table 6 Comparison of XGBoost hyperparameter tuning optimization

表6中超参数列表的顺序为:树的深度、树的数量、学习率、最小叶子节点权值、L2正则化系数和叶子节点分裂时所需要的最小损失减少量。从表6可知,这3大常用的超参数调优方法,都使模型精度提升,印证了XGBoost目标函数最优化的算法原理,不论选用哪个调参方法,若超参数优化,则模型性能提升,目标函数最优化。比较而言,EGA调优效果总体较好;网格搜索的准确率高于随机搜索,但很耗时,接近随机搜索的10倍;随机搜索耗时最少但精度略低,说明本文选用EGA优化XGBoost超参数较为合理有效。

与现有的其他预测模型对比,文献[9]基于多元线性回归建立术中低体温预测模型,AUC为0.771,泛化性不够好;文献[11]基于Logistic回归建立术中低体温预测模型,预测准确率为81%,灵敏度为0.639,AUC为0.814,模型性能不高。因此本文所提模型性能占优。

3 结束语

本文提出了一种基于特征选择和XGBoost优化的全麻手术患者术中低体温预测模型。针对术中低体温特征属性及数据维度高的问题,本文模型通过RF袋外估计法选择最优特征,采用EGA优化XGBoost超参数。实验表明本文模型与LR、SVM等7种预测模型相比具有更高的精度和稳定性;与现有其他预测模型相比具有更高精度,更适用于患者术中低体温的辅助诊疗,给出的7个特征重要性排序更具针对性和效用性,为医护人员对全麻手术患者采取有效性预防措施提供了更好参考。下一步将结合病人术后低体温数据的采集和分析,深入研究术中和术后低体温的内在联系及其关键影响因素,提出更为有效的预防性对策建议。

猜你喜欢
特征选择决策树体温
体温低或许寿命长
正交基低冗余无监督特征选择法
基于决策树和神经网络的高血压病危险因素研究
网络入侵检测场景下的特征选择方法对比研究
体温小问题,引出大学问
体温值为何有时会忽然升高?
决策树和随机森林方法在管理决策中的应用
基于特征聚类集成技术的在线特征选择
Kmeans 应用与特征选择
决策树多元分类模型预测森林植被覆盖