面向非平衡数据的癌症患者生存预测分析
2021-12-20苗立志白瑞思蒙刘成良翟月昊
苗立志,白瑞思蒙,刘成良,翟月昊
(1.南京邮电大学 地理与生物信息学院,南京 210023;2.南京邮电大学江苏省智慧健康大数据分析与位置服务工程实验室,南京 210023;3.南京邮电大学 通信与信息工程学院,南京 210003)
0 概述
随着常见疾病的攻克和人均寿命的提高,癌症逐渐成为威胁人类健康的主要因素。国际癌症研究机构的分析报告显示,2018 年全球癌症新增病例1 810 万例,死亡病例960 万人[1]。传统医疗主要基于癌症病理类型、患者既往病史等对患者的生存时间进行评估和预测,机器学习技术的发展[2],使其能作为辅助手段被引入到癌症诊断[3]和生存预测[4]中。目前,癌症诊断和治疗技术已能有效降低患者的死亡率、延长患者的存活时间[5]。由于癌症确诊后患者在5 年内幸存人数将累计达到4 380 万,因此在收集到的现有数据集中,存活患者数量将远大于非存活患者数量。癌症患者原始数据集通常是非平衡的,且传统算法在对非平衡数据集预测分析时,分类器为确保算法模型整体性能,部分少数类样本会被误判[6]。但在实际分类中,少数类样本会携带更多的信息量且更重要,误判代价非常昂贵,所以面向非平衡数据的处理逐渐成为机器学习应用研究的重要组成部分[7-8]。
当前对非平衡数据问题主要从数据和算法[9]2 个层面进行研究。在算法层面,通常在不改变原始数据样本的基础上寻找特定的算法以适用于非平衡数据集,如集成算法[10]和代价敏感算法[11]等。MAHDIYAH 等[12]提出改进的极限学习机(Extreme Learning Machine,ELM)算法,通过集成数据克服数据非平衡问题,可有效改进非平衡数据分类效果。在数据层面,通过过采样、欠采样[13]等技术,将非平衡数据集采样成为平衡数据集。文献[14]提出过采样算法中最经典的SMOTE 算法,通过在少数类样本之间进行线性插值来增加少数类样本数量。文献[15]在SMOTE 算法的基础上提出Borderline-SMOTE 算法,该算法将原始SMOTE 算法和边界信息相结合,只利用边界位置的样本信息产生新样本,减少噪声样本和冗余样本的生成。
针对医疗领域存在的样本数据集非平衡问题,国内外研究人员进行了深入研究[16-17]。如WANG 等[18]提出一种基于SMOTE 和粒子群优化算法的混合采样算法,评估乳腺癌患者5 年的生存率,结果表明在搜索算法和分类器中使用SMOTE 算法可以有效提高对非平衡医疗数据集的分类效果。KUO 等[19]提出一种基于信息粒化的分类算法处理医疗领域中非平衡数据集,该算法通过自动聚类算法生产一组信息粒化,在预测前列腺癌患者的存活率时表现优异。WANG 等[20]为了解决非平衡癌症数据中过拟合问题,提出一种基于自步学习的自适应非平衡采样算法,通过欠采样算法减少数据集中的噪声样本,并选择优质多数类和少数类样本合成新的平衡子集。相较于其他常见非平衡算法,其平均正确率提高了16%,但该算法在合成新平衡的数据子集同时,会主动丢失一部分样本信息。非平衡的数据集中存在大量噪声样本、冗余样本等异常样本[21-22],以美国国立癌症研究院SEER[23]数据库中获取的2015 年乳腺癌患者样本数据为例,该数据集中有超过12%的样本是噪声样本。
本文提出一种基于RENN和SMOTE 算法的综合采样算法RENN-SMOTE-SVM,通过RENN 算法减少多数类样本集中噪声样本的数量,并使用SMOTE算法增加少数类样本的数量,从而使样本集比例达到平衡。在SEER 库中乳腺癌患者数据集上对非平衡的癌症患者进行生存预测分析,并与SVM 算法、Tomeklinks-SVM 算法、RU-SVM等算法相比较,以分析所提算法的预测效果。
1 RENN-SMOTE-SVM 算法
1.1 RENN 算法
为解决癌症数据集中非平衡现象及噪声样本问题,RENN 作为一种欠采样算法,基于最近邻规则减少多数类噪声样本数量,提高模型对整体样本的识别能力。RENN 算法是在ENN[24]算法基础上的整体优化,ENN 算法的基本思想是、如果1 个多数类样本的3 个最邻近样本中有2 个或多个与之异类,那么就将该样本视为噪声样本并删除。但ENN 的不足之处在于多数类样本附近的样本绝大部分与之同类,所以可以删除的噪声样本数量有限。RENN 算法在ENN 算法的基础上进行多次循环删除噪声样本过程,以删除更多的噪声样本,减少噪声样本对分类器的判决影响。
1.2 SMOTE 算法
在非平衡的癌症数据集中,多数类样本在数据集中占比很高,仅依靠欠采样算法删除部分噪声样本,难以完全平衡数据集。因此,需要采用过采样算法使样本比例达到平衡,增加模型的泛化能力和对少数样本的识别能力。在过采样算法中,本文选取了SMOTE 算法,通过在少数类样本之间插值产生新的人工合成少数类样本以平衡数据集。插值方法如式(1)所示:
其中:X表示少数类样本;rand(0,1)表示区间(0,1)中的一个随机数;yi表示距离数据样本X的n个最近邻样本中的第i个,在本文实验中n取5。SMOTE 算法通过以上过程增加少数类样本数目,使整体数据集趋于平衡。
1.3 RENN-SMOTE-SVM 算法
通过RENN 算法删除多数类样本中的噪声样本,减少噪声样本对结果的干扰。另一方面通过SMOTE算法增加少数类样本的数量,以平衡数据集。在得到新的平衡癌症数据集以后,通过SVM 分类器对癌症患者的生存情况进行预测分析,在面对非平衡数据集时,SVM 有更好的超平面用于区分样本,获取更佳的泛化能力[25]。本文提出的RENN-SMOTE-SVM 算法处理流程如图1 所示。
图1 RENN-SMOTE-SVM 算法流程Fig.1 Procedure of RENN-SMOTE-SVM algorithm
RENN-SMOTE-SVM 算法步骤如下:
1)输入原始非平衡数据集S,并对原始非平衡数据集S进行数据预处理。
2)设置目标非均衡尺度ao=1,ao用于限制输出数据集So的非均衡度。同时根据患者目前生存状态,将原始数据集S分为两类,其中存活患者样本数量相对较多,设为多数类样本集Smaj,死亡患者样本数量相对较少,设为少数类样本集Smin。
3)对多数类样本集Smaj使用RENN 算法,删除其噪声样本,得到Somaj。
4)比较Somaj和Smin的数目大小,如果Somaj大于Smin则进行步骤5,否则进行步骤6;
5)对少数类样本集Smin使用SMOTE 算法,增加其样本数量,得到Somin。
6)合并Somaj和Somin得到平衡数据集So。
7)计算非均衡a尺度;a=Somaj/Somin,判断a是否等于ao,如果两者不相等则返回步骤2,否则进行步骤8。
8)输出So,并基于平衡数据集So应用SVM 算法对患者生存进行预测分析,得到预测结果。
2 乳腺癌患者生存预测分析
2.1 模型构建
本文以乳腺癌患者数据为例,研究面向非平衡数据集的癌症患者生存预测分析,实验数据来自于SEER 数据库,该数据库是美国最权威的癌症统计数据库,记录了美国部分州县上百万名恶性肿瘤患者的发病率、死亡率、患病情况等信息。本次实验获取了2015 年SEER 数据库中11 298 条有效的乳腺癌患者数据,数据集分为两类:多数类存活患者样本数量10 646;少数类非存活患者样本数量652。常见的11 个癌症主要属性如表1 所示。其中,Vital status 属性表示患者一年后的存活状态,用以分类样本。
表1 实验数据属性Table 1 Experimental data attributes
训练SVM 分类器中的主要参数设置:SVM 的内核类型Kernel 为rbf;正类和反类的样本权重比class_weight 为balanced;目标函数的惩罚系数C为1;数据映射到新的特征空间后的分布gamma 为1;其余未提及的参数在本文实验中选用默认值。
2.2 评价指标
针对非平衡数据集的评价指标[26],本文采用基于混淆矩阵的评价指标衡量分类器性能,具体指标包括正确率(Accuracy)、召回率(Recall)、精确率(Precision)、F1-score 值和G-mean 值。以二分类混淆矩阵为例,如表2 所示。
表2 混淆矩阵Table 2 Confusion matrix
正确率的计算公式如式(2)所示:
精确率的计算公式如式(3)所示:
召回率的计算公式如式(4)所示:
F1-score 是基于精确率和召回率的调和平均数,考察两者之间的折中,其计算公式如式(5)所示:
G-mean 代表少数类和多数类样本的整体分类准确程度,体现了模型对非平衡数据集的识别性能,其计算公式如式(6)所示:
2.3 生存预测结果分析
在本文实验数据集中,原始多数类样本数量为10 646,通过RENN 算法删除1 339 个噪声样本后,剩余9 307 个多数类可用样本,其中噪声样本占比12.578%。为验证RENN-SMOTE-SVM 算法对非平衡乳腺癌数据集生存预测准确程度,将本文算法与SVM算法、欠采样算法Tomeklinks-SVM、RU-SVM、过采样算法SMOTE-SVM 和ADASYN-SVM 这5 种常用算法进行对比。对所有实验结果使用10 次交叉验证后取平均值,其中每次数据集中训练集样本数量占90%,测试集样本数量占10%。实验结果如表3~表5 所示,表中加粗数字表示该组数据的最大值。
表3 少数类样本的一年生存预测结果Table 3 One-year survival prediction results of minority samples
表4 多数类样本的一年生存预测结果Table 4 One-year survival prediction results of most samples
表5 非平衡数据集的一年生存预测结果Table 5 One-year survival prediction results of the unbalanced set
由表3 少数类样本的生存预测结果可知,通过在数据层面处理以后,其他算法结果均比SVM 算法表现更好,说明通过数据层面的处理能够增加模型对少数类样本的识别能力。同时,F1-score 值作为代表模型对当前样本整体预测结果好坏的重要参数,表明RENN-SMOTE-SVM 算法非常有效地提高了少数类样本的决策边界和预测能力。
由表4 多数类样本的生存预测结果可知,RENN-SMOTE-SVM 算法对多数类样本的生存预测表现优异,在3 个指标中均取得了最优值。同时,由于RENN 算法去除了一些噪声和冗余样本,在多数类样本的预测结果中,该算法相较于增加少数类数量的过采样SMOTE-SVM 算法和ADASYN-SVM 算法表现更加突出。
由表5 非平衡数据集的生存预测结果可知,RENN-SMOTE-SVM算法的正确率、F1-score 和G-mean 分别为0.883、0.904 和0.779,该算法在3 个指标下都取得了最高值。其中G-mean 是最重要的评价指标,它代表了分类器对非平衡样本集的整体预测准确程度,而各类欠采样和过采样算法相较于SVM 算法均有效地提高了G-mean 值,其中RENNSMOTE-SVM 算法提升最多。这表明RENNSMOTE-SVM 算法相较于其他算法而言,能够有效地提高对非平衡乳腺癌数据的生存预测,其预测结果更好。
3 结束语
针对癌症数据集中存在非平衡数据和噪声样本的问题,本文提出一种混合采样RENN-SMOTESVM 算法。利用RENN 算法删除多数类样本集中的噪声样本,并通过SMOTE 算法增加少数类样本的数量,从而获得均衡数据集。对SEER 库中乳腺癌患者进行一年后生存结果预测分析,实验结果表明,RENN-SMOTE-SVM 算法相较于其他常用的采样算法在多指标的平均水平上表现更优,可用于对非平衡癌症患者的生存预测分析。由于本文在对癌症患者进行生存预测分析时,采用的数据集均为二分类数据集,下一步将研究该算法在多分类数据集中的表现,从而拓宽该算法的应用范围。