一种处理二分类不平衡医学数据的方法与流程

文档序号:15387737发布日期:2018-09-08 00:46阅读:465来源:国知局

本发明涉及一种处理二分类不平衡医学数据的方法,特别涉及一种结合rose数据平衡和boruta算法进行特征选择进行数据分类的方法,属于数据分类技术领域。



背景技术:

目前大部分的分类算法一般都是假定不同类的比例是均衡的,但是我们在生活中大部分数据集都存在不平衡现象,如广告的点击预测,商品的推荐或者是信用卡的欺诈检测,这些数据集都存在一定的极端不平衡分类现象。比如有1%人是坏人,99%的是好人,识别好人坏人的分类模型自然会将所有的人都划分为好人,同时这种过拟合得到的模型的准确率高达99%,显然这样的模型准确率是很高,但是并不会提供什么有效信息。

目前分类算法在医学领域也广为应用,如疾病的分类诊断、癌细胞的识别、微阵列数据的判别分析等研究。在实际的应用中也同样存在着数据不平衡现象,如对体检人群中慢性疾病如糖尿病、冠心病进行发病预测筛查,这种发病人群由于在健康人群中所占的比例较小,因此采用分类算法识别高位人群比较困难。

对不平衡数据的处理方法主要包括两种,一种是从数据层面的重构方法,另一种是算法层面的改进方法,主要包括集成学习、代价敏感学习等方法。数据集的重构方法主要集中实现数据的平衡,方法包括数据的过采样、欠采样和综合采样(过采样与欠采样结合)的方法。过采样技术主要是通过增加少类样本的数量,实现数据的平衡策略。欠采样技术通过减少多类样本的数量,实现多类样本和少类样本数量上的均衡。这两种单纯从某类样本数量上采取的平衡措施,都没有从从根本上解决问题。对多类样本欠采样,可能存在盲目性,导致大部分有用信息的丢失;而对少类样本的过采样,给样本增加新的信息,导致过拟合。综合采样是通过使用过采样和欠采样结合的方法,对少量样本过采样,同时对多类样本欠采样,实现数据的平衡。人工数据集的合成方法,简单来说就是通过人工合成数据,而不是重复原始的观测值,其本质也是一种过采样技术。但是,在实际的应用领域,普遍关注的是不均衡数据中少类样本的分类正确率,这是目前数据领域甚至是机器学习领域亟待解决的课题。



技术实现要素:

本发明的目的在于提供一种处理二分类不平衡医学数据的方法,本发明方法适用于目前医学领域存在数据缺失和分类不平衡的数据,本方法不同于传统对于不平衡数据分类的常见方法,本方法通过对数据进行预处理,填补缺失值并处理异常值,在数据规整后进行属性特征选择,有效解决了传统的医学数据分类过程中少数类分类准确率的问题。

本发明的技术方案如下:首先对数据进行预处理,删除原始数据集中与分类主题无关、重复数据,接着平滑噪声数据,并处理异常值和缺失值;其次对不同数据源的数据进行集成,解决实体识别和属性冗余问题,并对数据进行规范化处理;然后采用rose方法对数据进行不平衡处理,从而解决了二分类医学数据的不平衡问题。

本发明处理二分类不平衡医学数据的方法,具体操作步骤如下:

(1)数据清洗:对需要分类的来自多个数据源的医学原始数据集进行预处理,删除原始数据集中与分类主题无关、重复的数据,再平滑噪声数据,然后进行缺失值处理,若某项属性的缺失值大于30%以上,则将该项属性直接删除,若某项属性的缺失值小于30%,则采用拉格朗日插值法进行缺失值的补充,对于异常值的处理也按照缺失值的方法进行;

(2)数据集成:将经过步骤(1)清洗后的多个数据源的各项数据进行合并,采用实体识别和冗余属性的识别方法,将源数据在底层进行转换、提炼以及集成;

(3)数据变换与规约:对步骤(2)集成后的数据进行规范化处理,采用函数变换将不符合正态分布的数据压缩成正态分布的数据,同时对数值差距较大的数据进行最小-最大规范化或者零-均值规范化,对连续性数据进行连续属性离散化和属性的重构造,从而将步骤(2)集成后的数据转变成适合分析处理的格式,得到平衡前的数据集;

(4)平衡数据:采用rose函数对步骤(3)平衡前的数据集进行数据的随机过采样,基于平滑自助法和核方法将数据集中的数据样本从低维特征空间映射到高维空间,在新的特征空间中通过条件核密度估计,生成各类数据新的样本集;

(5)生成平衡数据集:重复执行步骤(4)进行平衡数据,直至少数类样本集的数据量与多数类样本集的数据量的比值≤1时,停止执行步骤(4),生成各类数据新的样本集;

(6)评估特征重要性:通过boruta算法对步骤(5)生成的各类数据新的样本集创建混合副本数据集,从而增加原始数据的随机性,然后,对混合副本数据集使用随机森林分类器训练样本,从而得到每个特征对目标属性的重要性评估;

(7)特征确认与删除:在步骤(6)特征重要性评估后,对特征属性重要值importance小于20的特征进行删除,大于等于20的属性特征进行保留,当所有特征得到确认后,特征选择结束;

(8)创建最终数据集:将步骤(7)特征选择后的各类数据集导出,得到一个完整的二分类平衡医学数据集。

利用以上步骤解决了二分类医学数据不平衡的问题,为了证明本发明方法的有效性,采用以下步骤对本发明方法进行验证并与其他分类模型进行比较:

a:划分训练样本集和测试样本集:将步骤(8)得到的完整的分类数据集进行随机排序,然后将数据划分为两部分,前面80%的数据作为训练数据,组成训练数据集,其余20%数据作为测试数据,组成测试数据集;

b:基于数据进行模型训练:对步骤a的训练数据集分别构建logistic回归、决策树、朴素贝叶斯算法分类器模型;

c:评估模型性能:用步骤a的测试数据集来验证步骤b构建的logistic回归、决策树、朴素贝叶斯算法分类器模型,得到准确率,召回率,g-mean,f-measure和auc值等6个指标;

d:模型性能比较:对步骤(3)的平衡前的数据集重复步骤a~步骤c的过程,得到平衡前数据集的准确率,召回率,g-mean,f-measure和auc值等6个指标,然后与步骤c得到的指标进行对比,发现平衡后的数据集的指标明显优于平衡前数据集的指标,说明本发明方法解决了数据的不平衡问题。

本发明的有益效果是:

(1)本发明方法采用rose和boruta算法的方法,有效的对医学不平衡数据进行随机过采样,解决了数据不平衡问题,并准确的进行属性的特征选择,构建的分类器有效的解决了医学不均衡数据少类样本的分类正确率低的问题。

(2)本发明方法操作简单,具有广阔的应用前景。

附图说明

图1是本发明方法的总体流程图;

图2按行展示部分真实值和缺失值的矩阵图;

图3数据缺失值模式图;

图4特征选择变量重要性图;

图5三类分类模型数据平衡前后分类准确率效果示意图;

图6三类分类模型数据平衡前后g-mean变化效果示意图。

具体实施方式

实施例1:一种处理二分类不平衡医学数据的方法,具体步骤如下:首先对数据进行预处理,删除原始数据集中与分类主题无关、重复数据,接着平滑噪声数据,并处理异常值和缺失值;其次对不同数据源的数据进行集成,解决实体识别和属性冗余问题,并对数据进行规范化处理;然后采用rose方法对数据进行不平衡处理,从而解决了二分类医学数据的不平衡问题。

具体操作步骤如下:

(1)数据清洗:对需要分类的来自多个数据源的医学原始数据集进行预处理,删除原始数据集中与分类主题无关、重复的数据,再平滑噪声数据,然后进行缺失值处理,若某项属性的缺失值大于30%以上,则将该项属性直接删除,若某项属性的缺失值小于30%,则采用拉格朗日插值法进行缺失值的补充,对于异常值的处理也按照缺失值的方法进行;

(2)数据集成:将经过步骤(1)清洗后的多个数据源的各项数据进行合并,采用实体识别和冗余属性的识别方法,将源数据在底层进行转换、提炼以及集成;

(3)数据变换与规约:对步骤(2)集成后的数据进行规范化处理,采用函数变换将不符合正态分布的数据压缩成正态分布的数据,同时对数值差距较大的数据进行最小-最大规范化或者零-均值规范化,对连续性数据进行连续属性离散化和属性的重构造,从而将步骤(2)集成后的数据转变成适合分析处理的格式,得到平衡前的数据集;

(4)平衡数据:采用rose函数对步骤(3)平衡前的数据集进行数据的随机过采样,基于平滑自助法和核方法将数据集中的数据样本从低维特征空间映射到高维空间,在新的特征空间中通过条件核密度估计,生成各类数据新的样本集;

(5)生成平衡数据集:重复执行步骤(4)进行平衡数据,直至少数类样本集的数据量与多数类样本集的数据量的比值≤1时,停止执行步骤(4),生成各类数据新的样本集;

(6)评估特征重要性:通过boruta算法对步骤(5)生成的各类数据新的样本集创建混合副本数据集,从而增加原始数据的随机性,然后,对混合副本数据集使用随机森林分类器训练样本,从而得到每个特征对目标属性的重要性评估;

(7)特征确认与删除:在步骤(6)特征重要性评估后,对特征属性重要值importance小于20的特征进行删除,大于等于20的属性特征进行保留,当所有特征得到确认后,特征选择结束;

(8)创建最终数据集:将步骤(7)特征选择后的各类数据集导出,得到一个完整的二分类平衡医学数据集。

实施例2:如图1~6所示,本实施例的数据采用uci机器学习数据的美国130个医院10年的糖尿病病人再入院的数据集,处理该医学原始数据不平衡的问题,具体步骤如下:

(1)数据清洗:对130各医院的10年的医学原始数据集进行预处理,删除原始数据集中与糖尿病病人再入院无关、重复的数据,再平滑噪声数据,然后进行缺失值处理,若某项属性的缺失值大于30%以上,则将该项属性直接删除,若某项属性的缺失值小于30%,则采用拉格朗日插值法进行缺失值的补充,对于异常值的处理也按照缺失值的方法进行,本实施例按行展示真实值和缺失值的矩阵图如图2所示,数据缺失值模式图形如图3所示,部分属性的缺失数据汇总情况如表1所示;

表1部分属性缺失数据汇总

(2)数据集成:将美国130个医院10年的糖尿病病人再入院的数据进行合并,采用实体识别和冗余属性的识别,将源数据在底层进行转换和提炼以及集成;

(3)对步骤(2)集成后的数据进行规范化处理,采用函数变换将不符合正态分布的数据压缩成正态分布的数据,同时对数值差距较大的数据进行最小-最大规范化或者零-均值规范化,对连续性数据进行连续属性离散化和属性的重构造,从而将步骤(2)集成后的数据转变成适合分析处理的格式,得到平衡前的数据集,本数据集分类变量readmitted表示是否重新住院,在原始数据中有三种数值,分别代表30天内重新住院、一年内重新住院和不重新住院,将原始数据的一年内重新住院和不重新住院合并为30天内不重新住院,从而将本实施例的分类问题变为二分类问题;

(4)平衡数据:采用rose函数对步骤(3)平衡前的数据集进行数据的随机过采样,假设有数据集tn=(xi,yi),i=1,λ,n,其中n为数据集的大小,xi为具有随机概率密度函数f(x)的数据子集,yi为类标签代表少类样本和多类样本。合成样本的步骤如下:从数据集c中选择y*=yj,使得yi=y*的概率为从xi数据子集中选择概率分布的矩阵hj中的样本x*,然后基于平滑自助法和核方法将数据集中的数据样本x*从低维特征空间映射到高维空间,在新的特征空间中选择其相邻的观测值,通过条件核密度进行估计合成新的样本集;

(5)生成平衡数据集:重复执行平衡数据重复执行上述步骤m次,生成新的样本集其样本集大小为m,m的数值可以为原始样本数据量n或其他数值;

(6)评估特征重要性:通过boruta算法对步骤(5)生成的各类数据新的样本集创建混合副本数据集,从而增加原始数据的随机性,然后,训练一个随机森林分类的扩展数据集,并采用一个特征重要性措施,评估的每个特征的重要性,特征选择变量的重要程度如图4所示;

(7)在步骤(6)特征重要性评估后,对特征属性重要值importance小于20的特征进行删除,大于等于20的属性特征进行保留,当所有特征得到确认后,特征选择结束;

(8)将步骤(7)特征选择后的各类数据集导出,得到一个完整的二分类平衡医学数据集。

利用以上步骤解决了本实施例糖尿病人再入院的医学数据不平衡的问题,为了证明本实施例方法的有效性,采用以下步骤对本发明方法进行验证并与其他分类模型进行比较:

a:划分训练样本集和测试样本集:将步骤(8)得到的完整的分类数据集进行随机排序,然后将数据划分为两部分,前面80%的数据作为训练数据,组成训练数据集,其余20%数据作为测试数据,组成测试数据集;

b:基于数据进行模型训练:对步骤a的训练数据集分别构建logistic回归、决策树、朴素贝叶斯算法分类器模型;

c:评估模型性能:用步骤a的测试数据集来验证步骤b构建的logistic回归、决策树、朴素贝叶斯算法分类器模型,得到准确率,召回率,g-mean,f-measure和auc值等6个指标,性能比较如表2所示;

表2实验结果

d:模型性能比较:对步骤(3)的平衡前的数据集重复步骤a~步骤c的过程,得到平衡前数据集的准确率,召回率,g-mean,f-measure和auc值等6个指标,然后与步骤c得到的指标进行对比,三类分类模型数据平衡前后分类准确率和g-mean值变化效果如图5和图6所示,发现平衡后的数据集的指标明显优于平衡前数据集的指标,说明本发明方法解决了数据的不平衡问题,数据平衡后,可以最大限度确保模型对实际二分类不平衡医学数据的实用性,对实际分析需求有一定的实际参考价值。

上面结合附图对本发明的具体实施方式作了详细的说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以再不脱离本发明宗旨前提下做出各种变化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1