基于最大信息系数和迭代式XGBoost的混合特征选择方法

2023-02-17 01:54熊玲珠邱伟涵罗计根李科定
计算机应用与软件 2023年1期
关键词:特征选择子集中医药

熊玲珠 邱伟涵 罗计根* 李科定

1(江西中医药大学计算机学院 江西 南昌 330004) 2(华南师范大学 广东 广州 510631) 3(厦门仙岳医院 福建 厦门 361012)

0 引 言

目前,由于科技快速发展、信息获取技术及存储能力大幅度的提高,所能够获取的数据规模越来越大,从而可以挖掘和利用的信息也更加丰富。在中医药领域的物质基础研究中,通常采用高效液相(waters Hclass)和质谱联用仪(synapt G2-si)来获取实验数据。此类数据往往包含了成千上万种物质信息,呈现出高维数据的特点,容易造成维数灾难,同时由于实验次数的限制,还呈现出小样本的特性,容易导致过拟合等问题。而常规的统计分析方法,如多元线性回归、主成分回归和岭回归在处理数据时,都是通过回归系数来体现变量之间的相互关系[1-3],对于特征维数较高、样本量少的中医药物质基础数据,并不能够有效地删除无关特征和冗余特征,达到筛选重要性物质的目的。所以针对中医药高维小样本数据含有较多无关信息和冗余信息的问题,亟需寻找一种能够从高维小样本数据中筛选出有效特征的分析模型,并且实现模型精度的提高和运行效率的提升,为科研工作者提供技术支撑。

1 相关工作

特征选择是一种能够解决“维数灾难”,实现特征降维的有效方法,它可以通过分析特征与目标变量以及特征之间的内在联系,保留最有利于回归(或分类)的有效特征[4-5],从而较好地剔除与目标变量无关的特征和冗余特征,达到降低算法的复杂度和提高算法精度的目的。根据与机器学习的结合方式,特征选择方法可以分为过滤式、封装式、嵌入式、集成式[6]。其中:过滤式是独立于特定的机器学习模型,一般采用特征排序和特征空间搜索来获取特征子集,典型的方法有互信息、对称不确定性和最大信息系数等[7-9];封装式是将学习算法融入于特征选择过程中,即把分类算法看作黑盒来评价特征子集性能,其是以达到最大分类准确率为目的;嵌入式是把特征选择过程融入于学习算法作为组成的部分,该方法的出现是为了解决在封装处理不同数据集时,产生较高的重构代价等问题;集成式是通过多个特征选择方法来进行学习分别取得结果,然后再利用某种规则将每个结果进行整合,该过程比使用单个特征选择方法得到的结果更好,适合于解决特征选择方法存在不稳定性的问题。

特征选择方法受到了许多国内外学者的关注。例如,在医学领域中,彭瑶等[10]提出了一种基于超图的多模态特征选择方法可进行多任务特征选择,并且能够选出有效的脑区信息;孙刚等[11]提出了一种基于Lasso的混合特征选择算法,该方法能够选出分类能力较强的信息基因子集;叶明全等[12]提出基于对称不确定性和支持向量机(SVM)递归特征消除的信息基因选择方法,可有效地剔除与类别无关的基因。同时在其他领域中特征选择方法也有较好的应用,Nagaraja等[13]利用偏最小二乘回归和优化实验设计进行特征选择,从而选出与类别强相关性较强的特征;胡敏杰等[14]提出的联合谱聚类与邻域互信息的特征选择算法,其可移除与标记无关的特征。但是上述文献所提到的研究方法,虽然能够删除无关特征或者在一定程度上剔除冗余特征,但是它们存在泛化能力较差且容易过拟合等问题。而XGBoost(Extreme Gradient Boosting)[15]是2015年由Chen等基于GBDT算法提出的一种梯度提升的非线性方法,其不仅能够进行特征重要度的计算,实现特征选择的功能,还可通过对目标函数加入L2正则项来防止过拟合,可较好地满足中医药物质基础实验的研究。

鉴于此,本文提出基于最大信息系数和迭代式XGBoost的混合特征选择方法。该方法首先利用MIC方法度量每维特征与目标变量间的相关性,即计算所有特征的得分并进行排序,再根据得分值选择指定数目的特征子集,以便过滤无关的特征;其次将MIC方法过滤后的候选子集划分成K份,并采用XGBoost方法和迭代式策略对每份子集进行特征选择,从而实现冗余特征的剔除和有效特征子集的获取。该方法不仅可以有效地过滤无关特征和剔除冗余特征,还能够降低模型的时间复杂度和提高模型的解释程度以及防止过拟合,是一种适合于中医药高维小样本数据分析的新模型。

2 方法设计

针对中医药高维小样本数据的问题,本文提出一种新的混合特征选择算法(FSIX)。该算法的模型主要分为两层(框架如图1所示),第一层使用MIC方法度量每维特征与目标变量间的相关性,从而过滤原始数据集中的无关特征;第二层采用迭代式XGBoost方法在第一层的基础上,进行迭代剔除数据集中的冗余特征。假设数据集(X,Y)中的样本数目为n、特征维度为m,则算法的详细步骤如下。

Step1使用MIC方法对m个特征进行得分计算,从中选择得分较高的m′个特征,实现无关特征的过滤。

Step2经过MIC方法得到候选子集后,使用迭代式XGBoost方法从m′个特征中选择m″个特征,实现冗余特征的剔除。

Step3获取有效特征子集,建立回归模型并评价新算法的性能。

图1 FSIX的模型框架

2.1 MIC方法

通常采用高效液相和质谱联用仪获得的数据往往特征维数都比较高,但是并非所有的特征均与因变量有关,即可能存在较多的无关特征,且这些特征对模型还会产生影响。最大信息系数(Maximal Information Coefficient,MIC)是文献[16-17]提出的一种基于信息论的度量标准,它不仅能够较好地反映特征与因变量、特征与特征之间的相关性,还可以弥补互信息等度量标准无法进行归一化以及对离散化较为敏感的缺陷,是一种较好的过滤式特征选择方法。

在本文算法中,首先采用高效的MIC方法从原始数据集中进行特征筛选,选出与因变量相关性较强的特征,从而实现无关特征的过滤。对于每个特征,使用式(1)计算最大信息系数,计算得到的分值越接近于1则相关性越强,反之越接近于0则相关性越弱。

(1)

式中:MI*(D,x,y)是指网格划分下D的最大互信息,D为样本的有序对集合,x是指将特征X的值域分成x段,y是指将因变量Y的值域分成y段;B(n)是网格划分的上限值,一般取值为B(n)=n0.6,n为样本量。

通过对m个特征进行MIC计算并进行降序排列,选择分值高的前m′个特征作为候选子集,但是通过MIC方法选出的特征通常相关性都比较强,会伴随产生冗余特征。若包含的冗余特征数量太多,候选的特征子集规模就会变大,不仅增加了计算负担,还可能降低了模型的解释程度。因此本文采用迭代式XGBoost的方法对候选子集进行处理,从m′个特征中选取m″个最优特征,剔除冗余特征。

2.2 迭代式XGBoost方法

XGBoost是一种通过多个弱分类器(CART)的迭代计算来实现准确效果的集成学习框架,它不仅在目标函数中增加了L2正则项来防止过拟合,而且还能够对特征进行重要度计算[18],实现特征选择的功能。相比传统的GBDT算法而言,XGBoost对代价函数使用了Taylor展开式,在满足可导的条件时支持自定义损失函数;同时它还能够自动实现多线程并行计算,大幅度提高了模型运算效率,是一种适合于高维小样本数据的分析方法。其目标函数为:

(2)

(3)

(4)

若树的结构已固定,通过式(4)即可对wj求偏导,从而可得叶子节点的最优权重和函数的最优目标值:

(5)

(6)

由于经过MIC方法得到的候选子集,一般会出现特征之间相关度较高的问题,如果此类特征之间又相互冗余,直接使用XGBoost方法很有可能将其误认为信息特征。因此为了有效地剔除冗余特征,弥补XGBoost方法的不足,本文提出一种迭代式XGBoost的方法。其主要思想是通过划分候选子集,可以降低每次处理的特征维数,从而达到弱化特征之间相关性的效果,同时结合XGBoost方法和迭代式策略将选择的特征添加到当前已选的特征子集中,从而可得到最优的特征子集。在该方法中,迭代的优势不仅保持了划分之后的子集仍具有关联性,而且由于算法采用的是迭代策略,使得当前没被剔除的冗余特征在后面的迭代过程中将会被有效地处理。改进模型的整体流程如图2所示。

图2 FSIX模型的构建流程

在模型构建中,首先假设最优特征子集Tbest为空,再将经过MIC方法筛选后的候选子集Dlist平均划分为K份子集,且设Dlist(i)是将候选子集划分为K份后的第i(1≤i≤K)份特征子集;然后对第1份特征子集Dlist(1)利用XGBoost方法进行特征重要度计算,选择Top_F(排名靠前的特征)的特征加入到Tbest中,接着再将Tbest与第2份特征子集Dlist(2)合并作为当前的特征子集,重新采用XGBoost方法对其进行特征选择,更新当前的最优特征子集Tbest,依次迭代至第K份特征子集Dlist(K),从而可得到最终的最优特征子集Tbest。FSIX算法如算法1所示。

算法1FSIX算法

输入:数据集D(X,Y),n个样本,m个特征,划分的特征子集个数K。

输出:最优特征子集Tbest,n个样本,m″个特征。

Begin

Fori=1 tom:

//MIC计算

对X和Y进行标准化处理;

对D(X,Y)中的每个特征计算MIC得分值;

End

根据MIC得分值对特征进行降序排列,筛选出排名靠前的m′个特征作为候选子集Dlist;

对候选子集进行划分:

Dlist={Dlist(1),Dlist(2),…,Dlist(K)};

//划分成K份

Tbest=NULL;

//初始化最优特征子集为空

对第1份特征子集使用XGBoost方法进行特征选择,筛选出前Top_F的特征加入到Tbest;

Fori=2 toK:

//迭代式XGBoost

Temp_Dlist=Tbest∪Dlist(i);

//将当前的最优特征子集

//Tbest添加到下一份划分子集中

Tbest=XGBoost(Temp_Dlist);

//使用XGBoost方法更新

//特征列表,最终|Tbest|=m″

End

End

3 实 验

3.1 实验数据说明

本文所使用的四个实验数据集包括现代中药制剂教育部重点实验室的中医药物质基础实验数据(WYHXB)和FIFA足球运动员身价估计的公开数据集(PVFoot),以及两个UCI数据集:Breast Cancer Wisconsin(BreastData)、Residential building dataset(RBuild)。各数据集的信息描述见表1。其中WYHXB数据中有798个特征、1个因变量、54个样本;PVFoot数据中有57个特征、1个因变量、10 441个样本;Breast data数据中有33个特征、1个因变量、198个样本;RBuild数据中有103个特征、1个因变量、372个样本。本文采用公开数据集PVFoot、Breast data和RBuild进行实验,目的是比较新模型在公开数据集上的回归效果,从而验证新模型的可靠性和泛化性。

表1 数据集信息描述(Default Task:Regression)

WYHXB是参附注射液治疗心源性休克的物质基础实验数据,它采用左冠状动脉前降支近心尖端复制中期心源性休克大鼠模型,分别给予休克模型大鼠0.1、0.33、1.0、3.3、10、15和20(单位:ml·kg-1)共7组剂量参附注射液,同时设置模型组和空白组,每组实验大鼠6只。在给药60 min后,再采集血红细胞流速(μm/s)的药效指标。其中参附注射液所含有的物质信息称之为外源性物质,即特征(或自变量),血红细胞流速为因变量。

表2 中医药物质基础实验的部分数据(WYHXB)

3.2 实验过程与结果分析

1) 实验参数选取。由于实验的数据集自身具有的特性各不相同,在模型中对应的参数也均不一致,所以就需要一种择优策略来选取各数据集所对应的参数,从而确保模型结果的可靠性。在模型的分析中,需要考虑的参数分别为:MIC方法中过滤无关特征时的比率p,特征子集划分时的份数K,使用XGBoost方法选取特征时的比率Top_F,以及XGBoost内部所含的关键参数λ(L2正则项的系数)、ε(学习速率)、M(树的数量)。首先对模型的参数进行初始化,分别设置为:p=0.95,K=2,Top_F=0.95,λ=0.1,ε=0.015,M=500;其次采用对比策略进行分析,并根据均方根误差(RMSE)来作为评价指标,选出各个数据集的最佳参数组合。其中参数p、K和Top_F的比较结果如表3-表5所示。

表3 不同的比率P(MIC方法)所对应的RMSE值

表4 不同K值所对应的RMSE值

表5 不同Top_F所对应的RMSE值

根据表3至表5的实验结果,可选出四组数据集前三个参数的最优组合。它们分别为WYHXB数据集取p=0.75、K=4、Top_F=0.75时,其所对应的RMSE值均为最好;PVFoot数据集取p=0.95、K=2、Top_F=0.90时,其所对应的RMSE值均为最好;BreastData数据集取p=0.6、K=3、Top_F=0.75时,其所对应的RMSE值均为最好;RBuild数据集取p=0.7、K=6、Top_F=0.8时,其所对应的RMSE值也均为最好。同时在BreastData数据集中,由于其原始的特征数量较少(特征维数m=33),子集划分时的K值只考虑到7,最终的比率Top_F值则只取至0.5。

在模型中XGBoost内部所含关键参数的确定,则是先根据初始化值保持ε与M不变,λ值逐渐减小和增大;再保持λ与M不变,ε值逐渐减小和增大;接着再保持ε与λ不变,M值逐渐减小和增大。通过该策略的逐步变化,即可选取RMSE值相对较小且开始趋于平缓的转折点作为对应的参数值,如图3至图14所示。可以发现,WYHXB数据集的参数λ在[0.001,0.01]区间内所对应RMSE值均较小,但在λ=0.01之后开始逐渐增大;参数ε在[0.01,0.018]区间内所对应RMSE值从较大值降为较小值,并在ε=0.018之后开始趋于平缓;参数M则是在M=500之后,RMSE值开始趋于平缓并保持较小值。同理其他数据集也可观察出各个参数的变化趋势,并且也能够选出四组数据集相对较好的参数组合。其中,WYHXB数据的参数组合为λ=0.01、ε=0.018、M=500;PVFoot数据的参数组合为λ=1、ε=0.006、M=450;BreastData数据的参数组合为λ=0.6、ε=0.015、M=450;RBuild数据的参数组合为λ=0.1、ε=0.018、M=600。

图3 WYHXB数据λ值选取图4 WYHXB数据ε值选取

图5 WYHXB数据M值选取图6 PVFoot数据λ值选取

图7 PVFoot数据ε值选取 图8 PVFoot数据M值选取

图9 BreastData数据λ值选取 图10 BreastData数据ε值选取

图11 BreastData数据M值选取 图12 RBuild数据λ值选取

图13 RBuild数据ε值选取 图14 RBuild数据M值选取

2) 改进模型与其他方法的比较。通过模型参数的择优选取,即可对四组原始数据集进行无关特征的过滤和冗余特征的剔除,从而得到有效的特征子集。各个数据集在不同阶段的特征变化,实验结果见表6,其中:m为原始数据集的特征数量;m′为MIC方法过滤无关特征后的特征数量;m″为经过迭代式XGBoost剔除冗余特征后的特征数量,即最终有效的特征子集个数为m″。其中:WYHXB数据集的有效的特征子集个数为95;PVFoot数据集的有效的特征子集个数为14;BreastData数据集的有效的特征子集个数为8;RBuild数据集的有效的特征子集个数为23,即四组数据的结果均比原始数据集的特征个数少,说明本文方法能够筛选出数量较少的特征子集。

表6 四组数据集在不同阶段的特征变化

同时为了验证模型的有效性,采用上述参数组合的实验结果进行下一步分析,即将各组数据集按照6 ∶4的比例随机划分成训练集和测试集,再分别采用随机森林回归模型(RF)、偏最小二乘法(PLS)、GBDT、XGBoost、改进的算法(FSIX)进行回归分析,并以均方根误差(RMSE)作为模型评价指标,同时为了确保实验结果的可靠性,分别对每组实验数据进行10次测试,再取各自平均值作为最后的实验结果,见表7。

表7 多组实验的结果比较

由表7的实验结果可知,在四个实验数据集中改进模型(FSIX)的效果均要比其他算法好。其中FSIX模型的训练集RMSE值分别为0.180 5、43.496 0、0.041 8和0.872 7,测试集RMSE值分别为0.178 1、38.498 6、0.030 6和0.241 2,相比其他算法的效果均呈现下降趋势。为了更直观地观察实验结果,分别绘制了趋势图(如图15与图16所示),以便体现出各数据集在不同算法的RMSE值波动情况。显然地,FSIX模型在四个数据集中的RMSE值均比其他算法好,说明基于最大信息系数和迭代式XGBoost的混合特征选择方法的回归效果得到了提升。综上所述,该改进的算法不仅可以对中医药高维小样本数据进行特征降维,还能够较好地进行无关特征的过滤和冗余特征的剔除,同时对具有非线性特点的中医药数据也能够较好地适应。

图15 四组数据的RMSE趋势图(训练集)

图16 四组数据的RMSE趋势图(测试集)

4 结 语

中医药物质基础实验数据对中医药的研究具有重要的意义,然而此类数据呈现出的高维小样本和高冗余给深入准确地挖掘中医药知识带来了极大困难,其中一个非常关键的任务就是信息特征的选择。本文以中医药物质基础实验数据作为具体研究对象,提出一种基于最大信息系数和迭代式XGBoost的混合特征选择方法,该算法充分利用了MIC方法可较好地反映特征与因变量之间相关性的优势,以达到过滤无关特征的目的,并结合迭代式XGBoost方法能够有效地剔除冗余特征的优点,从而实现最优特征子集的获取。通过实验分析,证明了FSIX算法能够选出数量较少且解释性较强的特征,并且性能稳定、泛化能力强,有效地解决了高维小样本和高冗余的问题,是一种适合于中医药实验的数据分析方法。

猜你喜欢
特征选择子集中医药
拓扑空间中紧致子集的性质研究
中医药在恶性肿瘤防治中的应用
重视中医药发展,发挥中医药作用
关于奇数阶二元子集的分离序列
完全二部图K6,n(6≤n≤38)的点可区别E-全染色
从《中医药法》看直销
Kmeans 应用与特征选择
中医药立法:不是“管”而是“促”
联合互信息水下目标特征选择算法
基于特征选择聚类方法的稀疏TSK模糊系统