基于REAHCOR特征选择和GBDT的贫困等级评价模型①

2020-05-22 04:47夏艳姣焦艳菲田月
计算机系统应用 2020年5期
关键词:子集特征选择分类

夏艳姣,孙 咏,焦艳菲,高 岑,田月

1(中国科学院大学,北京 100049)

2(中国科学院 沈阳计算技术研究所,沈阳 110168)

3(沈阳高精数控智能技术股份有限公司,沈阳 110168)

我国扶贫开发工作最初起源于20世纪80年代中期,经过近几十年的不懈努力,取得了令人瞩目的成就.经济社会快速发展,人们的生活水平不断提高,但是,长期以来,贫困居民的底数不清,情况不明,扶贫的针对性不强等问题比较突出.国外BPS 使用CAPI 来进行贫困状况调查,但是也只是针对少数地区.在国内,对于当地贫困人口的统计大多仍按照传统方式进行贫困数据收集,近些年开始进行建档立卡工作.对于进行贫困分类,国外专家提出K-均值聚类法评估贫困等级[1];Yu BL 等利用NPP-VIIRS 数据采用线性回归模型讨论了ALI 值和IPI 值的关系进而进行贫困分类[2];Jean N 等通过训练卷积神经网络结合高分辨率卫星图像来实现贫困户识别[3];李雪等提出了多层次模糊系统方法进行贫困分类[4];徐姝婧等提出了基于神经网络模型的方法实现贫困分类[5].对于上述专家提出的方案,K-均值聚类方法无法保证待归类元素找到最佳分类;回归分析法虽然考虑到了因素间的相互依赖和相互影响关系,但是实验次数过于冗繁且NOAA/NGDC 发布的NPP-VIIRS 数据存在很多噪声会影响实验结果;模糊系统方法在指标集较大时,会出现超模糊现象,无法区分隶属度;神经网络虽然具有高度自学和自适应能力,但是它黑匣子的性质使得结果的可解释性不强,不利于后续的扶贫分析.综上所述,建立一个科学,多维,全面的评价系统尤为重要.本文以录入的辽宁省某地区的家庭信息为依据,提出了基于REAHCOR-GBDT的贫困等级评价模型,为当地精准扶贫工作顺利开展提供了更有利的保障.

1 贫困等级评价模型构建过程算法介绍

1.1 特征选择算法REAHCOR

随着时代的发展,庞大的数据集应运而生,数据的维度和复杂性也在不断增长,如何从大量繁琐的信息中筛选有用的信息,构造一个好的模型,提取关键特征显得更为迫切.特征选择是指从一堆与目标变量相关的,冗余的,无关的数据中选择出分辨能力高的特征作为最优特征子集,从而提高分类模型的准确度.丁雪梅等介绍了改进的ReliefF 算法进行无监督特征选择[6].李叶紫,张尧等提出了关于互信息的特征选择来提高机器学习算法的准确率[7,8].李娜娜分析了影响贫困因素[9].本文采用的Filter 算法具有速度快的优势且独立于后续学习算法,其中ReliefF 是公认效果不错的一种过滤式算法[6],但是考虑到ReliefF 不能够很好的去除冗余特征以及贫困信息分类独有的特点,本文提出采用ReliefF 算法结合层次分析法和相关度分析法来完成特征选择的方法,即REAHCOR 特征选择算法.该方法包含以下3 个阶段,分别如下:

(1)ReliefF 算法会赋予每个特征不同的权重,依据是每个特征与类别标签的相关性有大有小,当计算出的特征权重值大于某个阙值时,说明它对类别标签的影响程度强,我们保留.反之,说明其影响程度弱,该特征会被删除.权重的大小反映了该特征值区分同类近邻样本和不同类近邻样本的能力.ReliefF 算法的运算过程为从训练集中随机的选取一个样本a,然后比较样本a同类的b个近邻样本与不同类的另外b个近邻样本在某个特征的距离.通过规定次数的迭代,计算出所有特征的权重平均值.其权重更新公式如下:

(2)在上一步得出相关特征之后,考虑到贫困信息的复杂性和多层次性,继而引入认可度较高的层次分析赋权法继续为特征定量权重.其中在进行一致性指标计算时公式如下:

在进行一致性比率CR计算时公式如下:

在计算总的层次排序时检验一致性公式如下:

(3)采用特征间冗余度度量的相关性分析法进行特征选择.该方法的主要思想是通过度量属性之间的相关度来衡量它们之间的冗余性.相关度越大,冗余度也就越大.任江涛等介绍了基于相关性分析的选择算法可以作为一种借鉴[10].在本研究中,连续型数值需进行离散化处理,然后采用信息论中的熵概念进行度量.信息熵的定义公式如下:

已知随机变量Y后X的信息熵定义公式如下:

如果Y和X是相互独立的,即H(X|Y)的结果值与H(X)的结果值相同,那它们的相关度为0;如果Y和X有相关性,那么X和Y之间的互信息值越大,它们的相关性就越强.由此信息增益值IG(X|Y)(也称变量x,y之间的互信息)公式如下:

另外,相关度关于变量x,y是对称的,所以对信息增益进行归一化处理,公式如下:

本文提出的 REAHCOR 方法首先运行ReliefF 算法进行特征初筛,该算法通过计算得到每个特征的权重Wi,将Wi值大于过滤阈值的特征保留下来,放入到一个初始状态为空的集合U中.然后将集合U中的特征采用层次加权法对贫困家庭指标进行定性与定量判断并把得到的权重值放入到初始为空的集合S中.将集合U中的两两特征采用相关性分析法进行冗余度度量,将其结果集中冗余度大于冗余阙值的两特征中在集合S里权值较小的特征删除,选出最终需要的特征子集,这些被选出的特征都是和类别标签相关性很强的一些特征.上述算法的优点是:通过使用计算效率比较快而且对数据大小和类型没有限制的过滤式ReliefF算法求出那些与目标属性不相关的特征,然后与层次分析法和相关性分析法相结合共同解决问题.很好的规避了ReliefF 算法不能去除冗余特征的缺点,同时能够依据贫困信息多维度多层次的特点,将人的主观经验和客观事实相结合,兼顾定性与定量分析,更加贴近事实的去解决问题,灵活性更强.该方法与单纯使用ReliefF 或Wrapper 等算法相比,可靠性高并且冗余度少,不依赖后续学习方法,同时继承了ReliefF 算法计算速度快的优点,减少了盲目性和不确定性,能够得出具有科学化且性能优的特征参数子集.

1.2 GBDT 算法

在监督学习的算法中,我们都希望训练出的模型是一个各方面稳定性都表现良好的模型,但是现实却往往差强人意,得出的模型要么方差太大导致鲁棒性不强,要么具有较高的偏置.而集成学习的思想就是让一些弱学习器的方差或者偏置结合起来,从而获得比单一学习器泛化性能更好的模型.目前集成学习的策略分为两大类,一类是学习器与学习器之间相互独立的Bagging 策略,一类是用下一个学习器拟合上一个学习器残差的Boosting 策略[11].由于随机森林的取样策略具有方差较小,偏差较大的特点,所以它对于基学习器的准确度要求比较严格.而Boosting 策略则可以减小模型的偏差,通过逐步提升的方法使最终模型变得更加优秀.因此本文模型的构建采用基于梯度提升技巧的GBDT 算法.算法流程如算法1 所示.

算法1.Lk-TreeBoost Fk0(x)=0,k=1,K For m=1 to M do:pk(x)=exp(Fk(x))/∑kl=1 exp(Fl(x)), k=1,K For k=1 to K do:yik=yik−pk(xi), i=1,N{Rklm}Ll=1=L−terminal node tree({yik,xi}Nl )rklm=k−1∑xi∈Rklmyik|), l=1,L Fkm(x)=Fk,m−1(x)+rklm(x∈Rklm)endFor endFor yik k ∑xi∈Rklm|yik|(1−|

2 实验分析

本文提出的贫困等级评价模型分为4 个步骤实现,如图1所示.首先对采集到的数据进行预处理,主要包括空值数据的处理、噪声数据的处理等数据规约,数据变换过程.接着将处理好的数据集采用本文提出的REAHCOR 特征选择算法求出最优特征子集,然后运用GBDT 算法进行贫困分类.最后对实验结果进行比对分析,验证本文研究方法的有效性.

图1 贫困等级评价模型构建

2.1 数据采集

本文数据来源于实验室项目“精准扶贫数据分析系统”,数据集中包含了辽宁省某地区近万户人口的家庭信息.

2.2 数据预处理

将非贫困,一般贫困,极度贫困这3 种贫困类别作为模型目标值,对家庭信息、当地扶贫政策和当地经济发展状况等信息进行筛选和归纳.将家庭收入、家庭消费、食品支出、水源污染、饮水方式、教育水平、失学状况、参加合作医疗情况、生病是否能及时就医、脆弱性、卫生设施、居住环境、房屋数量等信息进行数据清洗、变换和整合,其中对缺失值用区间变量的平均值或中值填充,对于异常值和大量丢失的信息采用舍弃的方式来加快算法的执行速度,对家庭收入,用电量等特征采用MIN-MAX 方法进行归一化.

2.3 特征选择

贫困信息数据具有庞大而复杂的特性,如果不加以处理,可能会出现维度灾难.一个好的特征选择算法,可以从原始特征子集中选取出利用性最优的特征子集,能够去除冗余性强的,选取对分类结果影响最大的特征.基于传统的过滤式(Filter)特征选择算法,本文提出的REAHCOR 算法继承了过滤式(Filter)算法运行速度快,独立于后续模型的优点外,又将特征依据层次性和冗余度进行优化选取,弥补了原先算法分类性能较差的不足.

根据本文提出的REAHCOR 算法,在进行特征选取时计算出每个特征和类别的相关性估值.最后按照估值高低进行排序,选出最优特征子集如下:家庭净收入、家庭负债情况、家庭受资助情况、住房数量、是否参加医疗保险、成年人受教育年限、卫生设施、适龄儿童是否在学、劳动力人数、身体是否患病、耐用消费品资产数量、生活用电量、取水方式、娱乐方式.

2.4 模型预测

本文模型预测的标签分为非贫困,一般贫困,极度贫困3 类,根据有效的特征对模型结果进行分类.本文验证模型的有效性从两个方面进行切入:(1)验证REAHCOR 算法的有效性;(2)验证整体模型的有效性.

(1)验证REAHCOR 算法的有效性

在实验中选用ReliefF 和FCBF 算法与本文提出的REAHCOR 算法进行性能比对.在分类器的选择上,使用Boosting 算法中的GBDT 算法,并分别结合以上3 种特征选择算法进行分类预测,从而验证REAHCOR算法的有效性.

(2)验证整体模型的有效性

首先使用本文提出的REAHCOR 算法进行特征选取,然后将选出的特征子集分别用在GBDT 算法和随机森林算法中进行分类预测.经过对比,验证GBDT 算法对本领域研究范围的有效性.

2.5 评价标准

对于一个模型的好坏,除了评价实验估计方法,还需要衡量这个模型的泛化能力,在分类任务中,可以用错误率与精度、查准率、查全率与F1、代价敏感错误率和代价曲线、ROC 与AUC 等进行性能度量.本实验采用查全率、查准率和F1 值进行评判.

其中,TP代表真正例(true positive),FP代表假正例(false positive),FN代表假反例(false negative).另外还有一个TN代表真反例(true negative),并且有TP+FP+TN+FN等于样例总数.F1 是基于查准率与查全率的调和平均.

2.6 实验分析

(1)在特征选择对比实验中,ReliefF 算法通过迭代规定次数内样本与同类近邻样本和不同类近邻样本的距离,筛选权值高的特征作为特征子集,FCBF 算法采用后向顺序搜索策略进行快速的选取最优特征子集.表1中展示了贫困数据集按照以上3 种方法进行特征选择,然后将得到的结果使用GBDT 算法进行分类,对结果采用交叉验证的方法进行比较,筛选出的特征个数用Num表示.

表1 基于不同特征选择算法的贫困模型结果对比

从表1和图2可以得出,本文提出的REAHCOR特征选择算法的分类精度可以达到94.86%,查全率为92.37%,F1 值为93.60%,分类效果优于其他两种,在特征数量较少时ReliefF 算法表现效果最差,随着特征数量的增多其出现上涨趋势,但是由于选出的特征冗余度大导致效果不理想,所以其在降维方面的性能比较低.FCBF 在降维方面表现稍好,在特征数量为13 时分类精度达到92.72%,但是不如REAHCOR 整体表现效果好.

图2 不同特征选择算法效果对比

(2)使用随机森林和GBDT 算法对测试集进行分类结果的性能比较如表2所示.

表2 GBDT 和随机森林分类结果对比

从表2可以得出,两种分类器在同一特征子集中有不同的表现,GBDT 在precision,recall和F1 值方面都优于随机森林算法.

3 总结

本文以农村家庭信息数据为背景,提出了基于REAHCOR 的特征选择算法,并应用到具有较高分类准确度的GBDT 分类器中,取得了分类效果较优的评价模型.创新性提出的REAHCOR 算法既可以对庞大的数据特征集进行降维,也可以保证降维之后特征具有很强的分类能力,整体模型的评估效果也得到验证,具有稳定性好、灵活性强的优势.在实际应用方面,只要输入相关的特征数据,就可以得到家庭贫困等级程度的信息,对于精准识别贫困户,帮助政府解决民生问题起到了积极的导向作用.

猜你喜欢
子集特征选择分类
高一上学年期末综合演练
按需分类
教你一招:数的分类
说说分类那些事
基于智能优化算法选择特征的网络入侵检测
故障诊断中的数据建模与特征选择
reliefF算法在数据发布隐私保护中的应用研究
一种多特征融合的中文微博评价对象提取方法
给塑料分分类吧
集合的运算