本发明属于特征选择技术领域,尤其涉及一种基于多中心模式下随机森林算法的特征重要性排序系统。
背景技术:
特征选择是从一组特征中挑选出一些最有效的特征以降低特征空间维数的过程。特征选择可以减少特征数量、降维,使模型泛化能力更强,减少过拟合,增强对特征和特征值的理解,是数据科学领域的关键问题之一。在生物医学领域,经常需要处理诸如组学数据集之类的高维数据,其中变量的数量通常远大于个体的数量,这种情况下特征选择的意义显得尤为重要。随机森林是一种在生物医学领域应用非常广泛的集成学习算法,它能够在分类过程中提供变量重要性的估计,被认为是一种有效的特征选择算法。
多中心数据协同计算是大数据背景下出现的应用场景,它是指地域上处于分散状态的一个群体借助计算机和网络技术,互相协作共同完成一项任务。基于多中心的数据进行特征选择是其中一项重要问题。在大数据背景下,各个中心数据协同计算的需求越来越大。
现有的解决方案需要将各个中心的数据取出,汇集在中心服务器上。接着在中心服务器上进行特征选择,得到全局性的特征选择结果。然而,将数据从各个中心取出的过程隐患重重,可能涉及到数据泄露这样的安全性问题,大大打击了中心之间的协同计算的积极性。尤其在生物医学领域,各个中心也就是各家医院的数据中包含了来医院就医患者的个人隐私,将数据取出集中处理的方法不利于保护患者隐私,具有很大风险。
技术实现要素:
本发明目的在于针对现有技术的不足,根据现实需求,在不暴露各个中心的数据的条件下,提供一种基于多中心模式下随机森林算法的特征重要性排序系统,本系统中各个中心的数据始终在各中心,只向中心服务器传递模型的中间参数,不传递原始数据,最终得到安全有效的全局性的特征重要性排序结果。
本发明的目的是通过以下技术方案来实现的:一种基于多中心模式下随机森林算法的特征重要性排序系统,该系统包括:部署在参与协同计算的各中心的前置机;接收并整合各中心特征重要性排序结果的中心服务器;将最终特征重要性排序结果反馈给用户的结果展示模块。
所述前置机用于从各中心的数据库接口读取数据,并利用随机森林算法计算本中心的特征重要性排序结果,具体计算步骤如下:
a.从本中心数据库接口读取数据作为样本集;
b.用有抽样放回的方法(bootstrap)从样本集中随机选取n个样本作为一个训练集;
c.用抽样得到的训练集生成一颗决策树;在决策树的每一个结点,均随机不重复地选择d个特征,利用这d个特征分别对训练集进行划分;
d.重复步骤b-c共q次,q即为随机森林中决策树的个数;
e.用训练得到的随机森林对样本集进行预测;
f.利用基尼指数作为评价指标对步骤e的预测结果进行特征重要性排序,包括以下子步骤:
a)假设样本集有h个特征x1,x2,x3,...,xh,对于每个特征xj,计算特征xj在节点m的重要性即节点m分枝前后的基尼指数变化量,公式如下:
其中,gim表示分枝前节点m的基尼指数,gil和gir分别表示分枝后两个新节点l和r的基尼指数;基尼指数的计算公式为:
其中,k表示有k个类别,pxk表示节点x中类别k所占的比例;
b)假设特征xj在决策树i中出现的节点构成集合e,那么xj在第i棵决策树的重要性为:
c)假设随机森林中有q棵树,计算每个特征xj的基尼指数评分亦即第j个特征在随机森林所有决策树中节点分裂不纯度的平均改变量:
d)将特征xj的基尼指数评分进行归一化处理,公式如下:
e)对所有特征归一化后的基尼指数评分进行降序排序;
所述中心服务器计算全局特征重要性排序结果,包括以下子步骤:
a.接收各中心传来的特征重要性排序结果;
b.对于每个特征,求得该特征在所有中心的基尼指数评分的平均值作为全局性特征重要性值;
c.按照全局性特征重要性值由大到小的顺序,对特征进行重新排序。
本发明的有益效果是:本发明基于多中心的随机森林算法,在各个中心分别计算特征重要性排序结果;在中心服务器进行整合各个中心的排序结果,形成全局性的特征重要性排序结果。本发明在不暴露各个中心的数据的条件下,本系统中各个中心的数据始终在中心,只向中心服务器传递模型的中间参数,不传递原始数据,有效保障了数据安全和数据中包含的个人隐私。
附图说明
图1为本发明基于多中心模式下随机森林算法的特征重要性排序系统实现流程图;
图2为本发明基于多中心模式下随机森林算法的特征重要性排序系统组成框图;
图3为各中心前置机内特征重要性排序流程图;
图4为中心服务器内全局重要性排序流程图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步详细说明。
如图1、2所示,本发明提供的一种基于多中心模式下随机森林算法的特征重要性排序系统,该系统包括:部署在参与协同计算的各中心的前置机;接收并整合各中心特征重要性排序结果的中心服务器;将最终特征重要性排序结果反馈给用户的结果展示模块。
所述前置机用于从各中心的数据库接口读取数据,并利用随机森林算法计算本中心的特征重要性排序结果,如图3所示,具体计算步骤如下:
所述中心服务器计算全局特征重要性排序结果,如图4所示,包括以下子步骤:
以下为一个具体的实例,该实例展示了一种基于多中心模式下随机森林算法的由体检数据预测糖尿病患病风险的特征重要性排序系统,该系统包括:部署在参与协同计算的各医院内的前置机;接收并整合各医院特征重要性排序结果的中心服务器;将最终特征重要性排序结果反馈给用户的结果展示模块。
所述前置机用于从各医院的数据库接口读取体检数据,并利用随机森林算法预测糖尿病患病风险,计算出本医院内的糖尿病患病风险特征重要性排序结果,具体计算步骤如下:
a.从本医院数据库接口读取体检数据作为样本集,假设共有5000例体检数据;
b.用有抽样放回的方法(bootstrap)从样本集中随机选取70个样本作为一个训练集;
c.用抽样得到的训练集生成一颗决策树;在决策树的每一个结点,均随机不重复地选择7个特征,利用这7个特征分别对训练集进行划分;
d.重复步骤b-c共15次,15即为随机森林中决策树的个数;
a)假设样本集有50个特征--年龄、性别、文化水平、腰围、血型、收缩压、血红蛋白等等特征,记为x1,x2,x3,...,x50。对于每个特征xj,计算特征xj在节点m的重要性即节点m分枝前后的基尼指数变化量,公式如下:
c)已知随机森林中有15棵树,计算每个特征xj的基尼指数评分亦即第j个特征在随机森林所有决策树中节点分裂不纯度的平均改变量:
所述中心服务器内计算体检数据中影响糖尿病患病风险的全局特征重要性排序结果,包括以下子步骤:
a.接收各医院传来的特征重要性排序结果;
b.对于每个特征,求得该特征在所有医院的基尼指数评分的平均值作为全局性特征重要性值。例如对于特征糖化血红蛋白,它在医院甲的特征重要性评分为0.182483,在医院乙的特征重要性评分为0.150948,在医院丙的特征重要性评分为0.078243,那么它在医院甲、医院乙、医院丙联合开展的多中心体检数据糖尿病风险预测研究中的全局特征重要性值为:(0.182483+0.150948+0.078243)/3=0.137224。
本发明在每个站点计算基于基尼指数的局部变量重要性排序,并将其发送到中心服务器。中心服务器整合各个站点的变量重要性排序并计算得出最终的排序结果。在此过程中,中心服务器仅接收各站点的变量重要性排序结果,无需交换患者级别的数据,既得到了有效的全局解,又有效地保障了数据的安全性,为构建特征筛选模型提供了安全可靠高效的解决方案。
以上仅为本发明的实施实例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,不经过创造性劳动所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。