基于K近邻的过采样算法在非平衡医疗数据中的应用_k近邻算法论文

基于K近邻的过抽样算法在不平衡的医学资料中的应用,本文主要内容关键词为:近邻论文,不平衡论文,算法论文,医学论文,资料论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。

模式识别的分类方法在医学领域中已发挥着重要的作用,作为分类和预测的重要方法,其典型应用如疾病的分类诊断、癌细胞的识别、微阵列数据的判别分析等。但是在实际应用中我们可以发现,通常数据集中各类的样本数量是不等的,甚至有着极大的差别,即数据集存在非平衡的现象。类似的例子很多,如在社区中老年人群中进行慢性病的发病预测筛查,而糖尿病或冠心病这类慢性病在社区人群中的患病率常低于30%[1],因此社区中潜在的发病人群是少数类样本,大部分人群属于正常人,要正确高效识别出高危人群比较困难。这主要是由于样本数量上的严重倾斜,如图1、图2所示,图1为平衡的数据集,正负类数量比较相近且边界清楚;图2为非平衡的数据集,正类远远少于负类,且边界不清。因此普通的分类器算法对非平衡数据集进行分类的性能不尽人意,少数类样本通常比普通样本难以识别,而且大多数模式识别算法对于处理少数类样本有很大困难。经过训练的分类器在致力于将多数类样本尽量分类准确时,倾向于忽视少数类,然而忽视少数类样本所带来的损失可能比上一种情况要远远大得多[2]。

图1 平衡数据集

图2 非平衡数据集

因此,在实际应用领域中,人们更加关心的是不均衡数据集中的少数类样本,如何有效地提高少数类的分类性能成为机器学习和模式识别领域亟待解决的课题。

一、原理与方法

(一)解决不平衡数据集分类问题的常用途径和评价准则

为了提高少数类的分类性能,不均衡数据集的分类问题一般可分为分类器的改进与数据集的改进两种解决方案[3]。在实际应用中,更多的是采用后者,主要是由于改进的分类器往往限制在某一些数据集中适用,容易出现过学习;而不平衡数据的现象在很多领域中都出现,急需寻找一种更广泛的解决途径。同时许多标准分类器或分类算法已经形成相应的工具箱,如果再进行改进对于用户来说则需要花费更多的成本。

数据集的改进方案中最常用的是重采样技术[4],可分为欠抽样和过抽样。欠抽样技术指在训练集中减少多数类的成员,最简单的欠抽样方法是随机地去掉一些多数类样本来减小多数类的规模,其缺点是将损失大量有用信息,影响准确的模型建立。过抽样技术则是在训练集中增加少数类的样本。其优点在于原始数据集的信息不会出现缺失,但其缺点是训练集将变得庞大。

表1 某不平衡医学资料的试验诊断结果

按金标准诊断 试验诊断结果

阳性

阴性

有病AB

无病CD

那么如何评价这些改进方案呢?医学实践中我们经常使用诊断试验的评价指标来进行评价,如灵敏度、特异度、假阴性率(漏诊率)、阳性预测价值等。表1是从总体人群中随机抽取的一个样本,然后进行诊断试验的结果,该资料的特点是少数类和多数类的样本数目不平衡。

其中,A和D分别表示被正确分类的少数类与多数类的样本数量,B和C分别表示被错误分类的少数类和多数类的样本数量。

灵敏度是实际患病且被诊断为阳性的概率,反映了少数类能够被正确分类的比例;特异度是实际未患病且被诊断为阴性的概率;准确率是所有被诊断正确的样本占全部样本的比例;假阴性率是实际患病但被错误诊断为阴性的比例;阳性预测价值是诊断为阳性者中实际为患者的概率,反映了分类结果中少数类所占的比例。

在非平衡医学资料的分类诊断中,我们尤其关心灵敏度和阳性预测价值的大小,灵敏度越高,漏诊率越低;阳性预测价值越大,检测方法的诊断价值越高。为了对非平衡医学资料的分类诊断算法进行简便的综合评价,引入一个新的统计量F值[5]:

F值是灵敏度和阳性预测价值的结合,只有当两者的值都比较大时,F值才可能相应增大,因此F值较传统的分类准确率等指标更能充分评价不平衡数据集的分类效果。

(二)基于近邻的过抽样技术

在实际应用和评价中已经发现常用的欠抽样和过抽样方法也存在一定的缺陷,例如欠抽样方法虽然可以提高灵敏度,但由于两类样本数量相差较大,误分类的多数类样本的数量有时会比正确分类的少数类样本的数量还要大,阻碍了阳性预测价值的提高。而普通过抽样方法未对多数类样本做任何处理,仅通过随机复制或者产生合成样本等方式来增大少数类的规模,但当多数类与少数类的样本数量相差非常大时,少数类样本需要大量的过抽样才能达到要求,这样不仅会增大计算量,而且容易导致过学习。

因此,对训练集样本进行适当处理后再进行过抽样的技术应运而生,本文将介绍一种基于近邻的过抽样技术。该技术结合了Neighborhood Cleaning Rule[6]算法与SMOTE[7]算法的优点首先对训练集进行预处理,再根据新训练集的类分布情况利用SMOTE算法进行过抽样:

二、实例分析

某慢病站在社区人群中进行慢性阻塞性肺疾病(COPD)的筛查,共获得了1980例有效居民样本,其中确诊患者185例,调查内容包括居民的性别、年龄、呼吸系统疾病既往史、家族呼吸病史、是否咳嗽和咳痰、其他呼吸道症状、呼吸流量测试指标(用力肺活量FVC和第1秒用力呼气容积FEV)、外界环境及生活习惯等。利用调查中获得的流行病学资料与临床金标准诊断数据相结合,建立社区人群慢性阻塞性肺疾病的辅助诊断模型。

该资料的特点是慢性阻塞性肺疾病在社区人群中的患病率较低,根据本次调查结果,该社区人群的COPD患病率为9.34%,数据呈现明显的非平衡性特点,社区人群中正常人与患者的比例约为9:1。

表2 COPD医学资料的BP算法分泪诊断结果

按金标准诊断 BP算法分类诊断结果 合计

COPD

阳性阴性

确诊

100 85185

正常

341 1454 1795

合计

441 1539 1980

表3 欠抽样、SMOTE、基于K近邻的过抽样算法对数据集的分类性能

欠抽样

SMOTEKNN-SMOTE

准确率/%79.85

84.6087.63

灵敏度/%65.27

75.1382.53

特异度/%81.36

85.5788.15

阳性预测价值/% 26.53

34.9241.80

F值 0.380.48 0.55

建立模型时首先对资料进行整理和特征提取,再使用BP神经网络分类器进行训练及分类,根据表2的分类结果得到算法的灵敏度为54.05%,特异度为81.00%,分类准确率为78.50%,阳性预测价值为22.68%,漏诊率达到45.95%。实验结果可发现尽管算法对数据集的分类准确率和特异度都较高,但灵敏度和阳性预测价值均比较低,且漏诊率高,主要原因是类间不平衡,即正负两类的比例悬殊,由此考虑采用基于K近邻的过抽样技术建立诊断模型。

下面分别采用随机欠抽样方法、合成少数类过抽样算法SMOTE以及基于K近邻的过抽样算法(KNN-SMOTE)进行训练集的改进,再使用BP神经网络分类器进行训练学习,并采用十折交叉验证进行考核。

实验表明,k=5时,可清理多数类中24.27%的易混淆样本,此时在SMOTE过程中只需扩充3~4倍则可接近数据集中两类样本平衡的要求。经过训练集改进的各算法分类结果可见表3,表中的SMOTE与KNN-SMOTE算法的分类结果均为少数类扩充3倍时的结果。从表3可以发现,在少数类的分类性能方面,基于K近邻的过抽样算法与欠抽样算法相比有明显的改进,而且与合成少数类过抽样SMOTE算法相比也有较大的提高。

图3显示了SMOTE与基于K近邻的过抽样算法对数据集的少数类样本扩充了3、4、5倍时的F值的变化情况,而欠抽样算法不需要对少数类样本进行扩充,因此其F值保持恒定。从图3可以看出,数据集中少数类样本被扩充不同倍数后F值的变化并不十分明显,而算法的改进则明显影响了F值的变化。

三、讨论

不平衡数据集的现象普遍存在于医学智能分析的许多实际应用领域中,不可忽视的是,少数类样本被错误分类所带来的代价往往要比多数类样本被错误分类高的多。因此如何有效提高少数类的分类性能成为了模式识别研究的一个热点。

本文利用社区人群的慢性阻塞性肺疾病资料验证了基于K近邻的过抽样算法,实验中发现:

1.基于K近邻的过抽样算法可减少随机欠抽样中损失的部分多数类的有用信息,并结合SMOTE算法改善了多数类与少数类的样本失衡问题,能够较明显提高分类器对少数类的分类性能。

图3 不同扩充倍数时SMOTE与KNN-SMOTE算法的F值变化情况

2.SMOTE算法完成了预处理后的训练集中少数类样本的扩充任务,但实验中也发现,当扩充的倍数较多时,容易出现过学习现象[9],而基于K近邻的训练集中对多数类样本的预处理缓解了原始训练集中的不平衡现象,因此在接下来的SMOTE过程中,可以根据新训练集中多数类与少数类的样本比例来决定过抽样的倍数。

3.以上算法是在数据集缺失信息较少的情况下实现的,在数据缺失较多的情形下将对分类结果有较大影响[10]。

针对不平衡数据集的训练集改进方法近年来已取得长足发展,但是这些方法并非适用于所有的应用领域,往往需要结合各个领域的特点和专业经验来选择合适的方法,并根据资料的不平衡特性进行多次实验、反馈、修正和改进,才能得到较优的效果。

标签:;  ;  ;  

基于K近邻的过采样算法在非平衡医疗数据中的应用_k近邻算法论文
下载Doc文档

猜你喜欢