1. 引言
在自然界或是医学领域,数据不平衡现象是普遍存在的。在一个数据集中,如果其中一个或多个类别包含大量的样本数据,而另一类别或另外一些类别只包含少量样本数据,那么这个数据集就存在类别不均衡问题,其中样本较多的类称为多数类,样本较少的类称为少数类。而在实际应用中,我们往往关注的是少数类的情况,比如在医院的影像检查中,患病者往往是少数,但一旦误将病人诊断成正常人,会导致疾病没有及时得到发现,错过最佳治疗时间,造成严重的后果。
不平衡数据分类问题的特性主要体现在数据本身的非均衡性以及传统分类算法的局限性两方面 [1] [2] 。首先是数据非均衡性问题,由于少数类样本数量少,训练器无法从少数类样本获得足够信息,使得模型学习到的都是多数类特征,导致少数类样本无法识别;其次是传统分类算法的局限性,传统分类器通常以最小化损失函数为训练目标,以达到最低误分率或最大类间间隔的效果 [1] 。当数据分布不平衡时,由于类间分布不均,算法往往会将少数类样本错误归为多数类,从而导致分类偏差。
目前对不平衡数据分类算法的研究主要集中在特征选择、数据重采样、改进分类算法几个方面。特征选择就是从所有特征中选择更有区分度的子集,从而提高少数类样本的分类性能;数据重采样包括对多数类数据进行欠采样,对少数类数据进行过采样以及过采样与欠采样相结合的方法,以达到让数据平衡的目的,常见的有Tomek Links欠采样、SMOTE (Synthetic Minority Oversampling Technique) [3] 过采样等等;改进分类算法主要包括代价敏感学习、集成学习等方法,代价敏感学习通常让少数类数据误分代价更高从而提高少数类样本的分类精度,比如focal loss方法 [4] ,集成学习则是通过将多个弱分类器组合成一个更强大的分类器,以提高分类性能,常见的集成学习方法有AdaBoost [5] 、Random Forest [6] 等等。
甲状腺相关眼病(Thyroid-Associated Ophthalmopathy, TAO)是一种特异性自身免疫性疾病,患者会出现眼球凸出、视力模糊、斜视等症状,影响患者的外貌和视力,甚至导致失明 [7] 。对于TAO诊断,根据影像组学特征进行判断是常用方法。杨等人提取眼外肌横截面积和凸眼度进行TAO诊断 [8] ;丛等人结合眼球突出度和眼球影像组学特征进行TAO预测 [9] 。他们的方法虽取得了良好效果,但是他们均是在平衡数据集上进行分类预测,并未研究不平衡数据集下的情况,而在实际运用中,不平衡数据集才是常态。
本文对于两个不平衡甲状腺眼病数据集分别应用了4种不同的不平衡数据集分类优化算法,实验结果表明,相对于原始分类算法,改进的分类算法具有更好的鲁棒性和分类性能。
2. 研究方法
本文研究方法具体来说,就是将特征传入BP (Back Propagation)神经网络 [10] ,获得分类结果。4种不平衡优化方法都是在模型损失函数上做了改进,详见2.3至2.6节。
2.1. BP分类网络
出于公平比较的目的,本文所有实验均采用同一个BP神经网络,网络结构如图1所示。网络共有3层,分别为输入层,隐藏层和输出层。输入层的维度即为原始特征维度,隐藏层的维度为输入特征维度的二分之一,由于是二分类,所以输出层的维度是2,最后经过softmax函数获得最终分类结果。为了防止过拟合,BP网络在训练阶段的隐藏层使用了丢弃法(Dropout) [11] ,概率为0.2,每次训练每个神经元有0.2概率不被激活。
2.2. 特征提取和降维
本文实验选用的数据集有两个。第一个数据集是极重度患者数据集,其特征均为医生手工计算得到,无需提取。第二个是用于甲状腺眼病诊断的MRI数据集,每一例都有对应的MRI图像和分割标签。分割标签由专业眼科医生进行标注,包含8类,分别为上直肌、下直肌、内直肌、外直肌、视神经、脂肪、泪腺、上斜肌。本文使用pyradiomics库对8类分割标签提取组学特征,每一类提取到1648维特征,其特征类别及数量如表1所示,其中shape描述眼球眼肌的形状特征,firstorder为一阶统计量,描述眼球眼肌区域的像素灰度分布,其余均为纹理特征。8类标签共13,184维组学特征。
![](Images/Table_Tmp.jpg)
Table 1. Abstract for different types of features
表1. MRI数据集的特征
由于MRI影像组学数据集特征维度太高,所以还需要对它进行特征降维。本文采用特征选择进行降维。一个好的特征应当符合以下2点要求:
• 该特征对于活跃期患者与非活跃期患者应有显著差异;
• 该特征不应该与除它本身以外的任何特征强相关。
本文采用双侧t检验来确定每个特征对于活跃期患者和非活跃期患者的差异性,当p值小于0.05时,本文认为该特征对于活跃期患者和非活跃期患者具有显著性差异。通过双侧t检验,本文将13,184维特征降维到5129。然后通过计算两两特征间的泊松相关系数来确定两个特征的线性相关性,当相关系数的绝对值大于0.9时,本文认为这两个特征强相关,会删掉其中一个特征以减少特征冗余。通过泊松相关性分析,本文进一步将5129维特征进一步降到1163维。
接下来本文将对4种不平衡优化方法进行介绍。
2.3. WCE Loss
重加权是代价敏感学习的常用方法,它是从损失函数角度出发,通过增大少数类样本的权重来改善样本不平衡问题。加权交叉熵损失(WCE Loss, Weighted Cross Entropy)是一种经典的重加权方法,对于二分类问题,其公式如下所示:
(1)
在式(1)中,
是样本标签(正样本为1,负样本为0),
是预测为正样本的概率,
是0到1之间的常数,通过控制
可以调整正负样本对损失函数的贡献,假设数据集中正样本数量为m,负样本数量为
n,那么当满足
时,可以保证一次训练中正负样本对损失函数的影响相同,该损失函数也可以称为平衡交叉熵损失。
2.4. Focalloss
加权交叉熵损失虽然通过设置 平衡了样本间数量对梯度的贡献,但没有考虑到数据本身存在难分和易分样本的情况,针对这一问题,Lin等人提出了focal loss [4] 。对于二分类问题,其公式如下所示:
(2)
式中,
为可调节的超参数,用于调整难易样本的权重。
是分类器的输出概率,如果输入为正类且
接近1,说明该样本分类正确且容易训练,则对应的
值就会减小,从而抑制易分样本的贡献;当输入为正类且
接近0时,表示样本分类错误且难以训练,则对应的
的值就会增大,从而增加难分样本的权重。
当
时,focal loss便会退化成一般的交叉熵损失,
的值越大,模型越关注难分样本。
2.5. LDAM loss
LDAM Loss (Label-Distribution-Aware Margin Loss) [12] 最小化边缘泛化边界损失,由Cao等人提出,其核心思想是将分类边界向多数类偏移,从而增大少数类样本的分类容错率。如下图2所示,三角形是多数类样本,圆是少数类样本,虚线为数据平衡前提下的理想分类边界,粗实线是不平衡数据下的实际分类边界,
和
分别为类别1和类别2到分类边界的最小距离。一般的,在数据平衡的情况下,两个类到达分类边界的最小距离是一样的,但在数据不平衡情况下,由于少数类样本过少,分类器无法从少数类样本学到足够特征从而导致少数类样本分类性能很差,因此LDAM Loss就考虑对少数类样本降低要求,也就是将分类边界向多数类样本偏移,从而增大少数类样本的容错率。
![](//html.hanspub.org/file/12-2690861x26_hanspub.png?20230626091240944)
Figure 2. Binary linear separable classifier
图2. 二分类线性可分分类器
与样本数量有关,计算方式如式(3)所示,式中j是样本的某一类别,
是样本中该类的样本数,C是人为设置的超参数,目的是使少数类样本的边界移动更大。
(3)
(4)
式(4)表示了多类LDAMloss的计算方法,式中,j和y都为类别标签,
和
即为对应类别样本的模型输出。
2.6. 非线性优化方法
优化法最初用于解决非线性回归问题,由于非线性回归原理与神经网络类似,因此优化法也可以用于解决当训练数据不满足独立同分布或不满足样本均衡的条件时,机器学习的损失计算问题。
假设样本训练集为
,其中
为自变量,
为类别标签,
为样本数量,
是一种非线性变换。
(5)
式(5)中的θ表示变换结果与真实值的差,在回归问题中,通常的目的是使θ尽可能的小。
(6)
(7)
式(6)就是回归问题中常用的均方误差损失,式(7)是最大损失。通常来说使用平均损失的情况要优于最大损失,平均损失会结合一次训练中每个数据的情况进行计算,但这种方式会在数据不平衡时出现问题,Xu等人提出了极小极大优化法(Minimax) [13] 来解决这一问题,它的思路是将数据分为几组,每组组内数据分布一致,先在组内计算每组的均方误差损失,再计算各组间最大损失作为最终损失函数。
(8)
式(8)就是最终的损失函数,将数据分为j组,每组有k个数据,
表示第j组中的所有数据。该损失函数的目的是使组间最大损失达到最小。
将回归问题推广到分类问题上,也可以采用类似的训练方法,假设一个不平衡数据集,正例100,反例200,那么按照此方法可以将数据分为3组,每组数据100个,其损失如下式所示:
(9)
式中,y是类别标签(0或1),
是分类器预测的概率。首先计算出每个组各自的损失,再用组间最大损失作为整体损失,通过让loss尽可能的小来优化分类器,由于每个组内部只包含一个类别,因此数据不平衡不会对组内损失产生干扰。
3. 实验
3.1. 数据集
本文实验选用的数据集有两个。第一个是来自上海第九人民医院的300例眼部MRI扫描,每一例都有对应的分割标签,由专业眼科医生进行标注。该数据集包含200例甲状腺眼病活跃期患者,100例非活跃期患者,所有数据均经过脱敏操作。该数据集采用影像组学特征进行分类,组学特征提取和降维见2.2节。第二个数据集来自上海第九人民医院的163例TAO患者,其中58名极重度患者,105名非极重度患者,特征全部由医生手工计算得到。
数据集具体信息如表2所示。
本文对MRI影像组学数据集和极重度患者数据集都进行了MinMax归一化,归一化公式如式(10)所示。
(10)
式中,
为原始特征,
为归一化后的新特征,
是最小特征,
是最大特征,
是样本总数。
3.2. 实验细节
对于两个数据集,本文均随机选80%数据作为训练集,20%数据作为测试集,并进行五折交叉验证,实验结果为五折交叉验证的平均值。
本文的各个方法参数设置如下:
1) 对于基线模型,采用pytorch框架下不加参数的Crossentropy函数;
2) 对于WCE loss,在Crossentropy损失中增加了权重参数,参考其正负样本比例,为[0.66, 0.34];
3) 对于Focal loss,采用文献 [4] 中的实现,超参数
;
4) 对于LDAM loss,采用文献 [12] 中的实现,超参数
;
5) 对于Minimax方法,每个bacth传入一个只有正类的数据组和只有反类的数据组,分别计算组内损失,使组间损失最小化。
模型初始学习率为
,采用余弦退火衰减 [14] 来动态调整学习率,使用adam优化器,batch-size为36,每个方法各训练50 epoch。
由于数据不平衡,使用常规指标会导致结果偏向某一类,因此本文采用平均F1分数(Average-F1)、平均精确率(Average-Precision)、平均召回率(Average-Recall)和准确率(Accuracy)作为评价指标。
(11)
(12)
(13)
(14)
除此以外,还引入了受试者工作特征曲线(Receiver Operating Characteristic Curve, ROC)进行评估,ROC曲线下面积称为AUC,AUC越大分类器性能越好。
3.3. 实验结果与分析
3.3.1. MRI影像组学数据集实验结果
表3为MRI影像组学数据集实验的五折交叉验证平均结果,图3为各模型的ROC曲线。从表中可以看出,相较于基线模型(CE),其余4种方法的性能均有一定提升,其中WCE loss方法的平均精确率最高,达到了0.71,LDAM loss方法AUC最高,为0.803。综合来看,Focal loss方法的综合表现最好,在准确率、平均召回率、平均F1分数三项性能指标上达到了最大值,它的准确率为0.747,AUC为0.759,平均精确率为0.693,平均召回率为0.742,平均F1分数为0.696。
3.3.2. 极重度患者数据集实验结果
极重度患者数据集实验结果如表4所示,图4为各模型在极重度患者数据集上的ROC曲线。从表中可以看出,相较于基线模型(CE),其余4种方法在所有指标上性能都有提升,其中表现最好的是Minimax方法,它的准确率为0.788,平均F1分数为0.785,平均精确率为0.792,平均召回率为0.816,AUC为0.859,均达到了最优性能。
![](Images/Table_Tmp.jpg)
Table 3. Prediction accuracy of MRI testset (positive and negative sample ratio 1:2)
表3. 各模型在MRI数据集测试集(正负样本比例1:2)上的预测准确率
![](//html.hanspub.org/file/12-2690861x58_hanspub.png?20230626091240944)
Figure 3. ROC curves of each model on the test set of MRI dataset (1:2)
图3. 各模型在MRI数据集测试集(1:2)上的ROC曲线
![](Images/Table_Tmp.jpg)
Table 4. Prediction accuracy of extremely severe patient testset (positive and negative sample ratio 1:2)
表4. 各模型在极重度患者测试集(正负样本比例1:2)上的预测准确率
![](//html.hanspub.org/file/12-2690861x59_hanspub.png?20230626091240944)
Figure 4. ROC curves of each model on the test set of extremely severe patient dataset
图4. 各模型在极重度患者数据集测试集上的ROC曲线
3.3.3. 改变正负样本比例后的实验结果
以上两个数据集的正负样本比例均在1:2左右,为了测试数据不平衡更严重时的情况,本文将MRI影像组学数据进行了调整,取50例正样本,200例负样本作为实验数据集,仍选取20%数据作为测试,除了WCE loss的权重参数变为[0.8, 0.2],其余超参数设置和训练方法与上文保持一致。实验结果如表5所示,图5为各模型的ROC曲线。相较于基线模型(CE),其余4种方法的性能依旧有一定提升,其中LDAM loss方法在AUC和准确率上最高,分别为0.748和0.836,而Minimax方法在剩余三项评价指标中达到了最优性能,其平均精确率为0.653,平均召回率为0.707,平均F1分数为0.667。
![](Images/Table_Tmp.jpg)
Table 5. Prediction accuracy of MRI testset (positive and negative sample ratio 1:4)
表5. 各模型在MRI数据集测试集(正负样本比例1:4)上的预测准确率
![](//html.hanspub.org/file/12-2690861x60_hanspub.png?20230626091240944)
Figure 5. ROC curves of each model on the testset of MRI dataset(1:4)
图5. 各模型在MRI数据集测试集(1:4)上的ROC曲线
3.3.4. 结果分析
结合表3~5,可以看出,相较于使用原始交叉熵,WCE loss,LDAM loss,Focal loss,Minimax四种优化方法训练的模型,其准确率和AUC均有一定提升,表明了这四种方法对不平衡数据集的有效性。
其中,在MRI影像组学数据集(正负样本比例1:2)实验中,对结果综合提升最多的是Focal loss方法,其次是LDAM loss和Minimax,提升最小的是WCE loss方法,仅提升了1.0%准确率。
在极重度患者数据集(正负样本比例1:2)实验中,Minimax方法表现最好,在所有指标上均达到了最优性能。WCE loss,LDAM loss,Focal loss三种方法准确率一致,但LDAM loss的F1分数略高,说明它对少数类的预测准确率高于另外两种方法,同时,五种方法的AUC均超过0.8,属于有一定应用价值的分类器,通过合理设置阈值可以发挥其预测价值。
在MRI影像组学数据集(正负样本比例1:4)上,LDAM loss方法和Minimax方法依旧有良好的性能表现,两者在所有性能评价指标上都有提升,其中Minimax的平均F1分数最高,提升了4.2%,这说明它对少数类的分类性能更好。另外两种重加权方法虽然在准确率和AUC上都有提升,但在其它性能指标上相较于原始交叉熵损失有所下降。这说明,随着数据集不平衡的严重程度提高,只凭借样本比例对损失函数进行简单的重加权依旧会使分类器的分类结果更倾向于多数类。
分析三次实验可以发现,当不平衡现象比较轻微(正负样本1:2)时,4种方法都能在所有性能指标上有所改进,但当不平衡现象增大后,LDAM loss 和Minimax表现出更好的鲁棒性,尤其是Minimax方法,它对于少数类的分类性能更好,这在我们医学诊断中十分重要,因为患者往往是少数类,能更好地诊断出患者是计算机辅助诊断的第一要务。因此在不平衡现象严重时,更推荐使用Minimax方法。
4. 讨论与结论
本文针对用于甲状腺眼病诊断的MRI影像组学数据集和极重度患者数据集出现的正负样本不平衡现象,选择了WCE loss,LDAM-loss,Focalloss,Minimax四种不平衡优化方法进行了实验。在使用相同的网络模型情况下,用不平衡优化方法训练的分类模型各项指标均超过使用原始交叉熵损失训练的模型,表明了不平衡优化方法的有效性。实验还发现随正负样本比例的不同,各方法对结果的提升存在一定差异。在轻度不平衡条件下,样本分类的难易程度对模型选择的影响更大,如果样本分类的难易程度较高,推荐使用focal loss方法,因为它更注重于提高难分样本的权重;如果样本分类的难易程度较低,则模型选择上需要更多考虑数据不平衡的影响,此时Minimax方法会成为更好的选择。在重度不平衡条件下,类别不平衡已成为我们模型选择的首要考虑因素,此时更推荐使用Minimax方法,它对于少数类的分类性能更好。本文所展示的对比实验能在不平衡甲状腺眼病诊断数据的条件下,对分类算法的选取提供指导。
基金项目
本研究获得国家自然科学基金项目资助,项目编号为61906121。
NOTES
*通讯作者。