1. 引言
在全球范围内,糖尿病防控局势正处于极为严峻的态势。2023年12月,国际糖尿病联盟(IDF)官网发布的《糖尿病与肾病报告》[1]指出,当下全球20~79岁的成年人里,约有5.37亿人饱受糖尿病困扰,近乎每10人中就有1人患病。并且,预计到2045年,这一数字将飙升至7.84亿,增长势头十分迅猛。不仅如此,约30%~40%的糖尿病患者会发展为慢性肾脏病(CKD),其中2型糖尿病是引发糖尿病相关CKD负担的关键因素。从1990年到2017年,全球因2型糖尿病导致的CKD新增病例数从约140万例激增至240万例,增幅高达74% [2]。
糖尿病作为一种常见的慢性病,本质上是因胰岛素分泌及(或)作用缺陷引发的、以慢性高血糖为典型特征的代谢性疾病。其发展历程可划分为高危人群、糖尿病前期、糖尿病这三个阶段。糖尿病前期处于正常血糖与糖尿病之间的高血糖状态,具有可逆转性。相关研究表明,对糖尿病前期患者进行分组随访后发现,不同类型患者在积极干预下,转归正常糖耐量率呈现出差异。这意味着,若患者在糖尿病前期能够及时采取干预措施,如严格管控血糖、调整生活方式,必要时借助药物治疗,就极有可能延缓病情进展,甚至实现病情逆转,恢复正常血糖水平。
机器学习作为一种强大的数据处理技术,能够通过算法解析数据、学习规则,并对新样本进行预测,其应用领域极为广泛,在医疗诊断领域也得到了越来越多的应用。然而,在疾病诊断领域,数据不平衡问题十分常见,即患病人数远远少于未患病人数。传统的机器学习算法在处理这类数据时,容易倾向于将样本归为多数类样本,导致对少数类(患者样本)的识别能力欠佳,极易延误患者的治疗时机。
在此背景下,本研究重点着眼于医疗数据中的非均衡问题,聚焦于糖尿病数据集,致力于通过动态博弈的方式来平衡数据。传统机器学习算法在处理类间不平衡问题时表现性能较差。我们创新性地引入动态博弈机制,通过非合作博弈理论动态优化过采样与欠采样比例,以此来均衡糖尿病数据集中健康样本与患者样本的分布。尽管最终效果提升未达预期,但动态博弈平衡数据的过程依旧具有重要意义。经处理后构建的预测模型,能够为判断患者患糖尿病风险提供更合理的依据,进而发挥预警作用。对于确诊糖尿病前期人群,可为其及时干预提供参考,助力病情逆转;对于已确诊糖尿病患者,也能辅助医生尽早制定血糖控制方案,预防并发症。虽然在某些性能指标上提升幅度有限,但这一探索为医疗诊断领域处理不平衡数据提供了新的思路和方向,对后续优化算法、提升糖尿病防控水平有着不可忽视的潜在价值。借助机器学习辅助糖尿病诊断,并构建基于动态博弈平衡数据的风险预测模型,在一定程度上仍能有助于节约医疗资源、缓解医疗压力,为提升糖尿病防控水平添砖加瓦[3]。
2. 相关理论概述
2.1. 不平衡数据处理的方法
2.1.1. 过采样方法
SMOTE 算法是经典的过采样方法,通过一定的策略生成新的样本,示意图如图1所示,首先在少数类样本中选择主样本,记为图中的x样本点,然后从少数类样本集的K近邻点中随机选取一个样本y,在两点连线上随机生成新样本z。
Figure 1. Schematic diagram of oversampling
图1. 过采样示意图
2.1.2. 欠采样方法
欠采样就是从多数类中删除样本,Tomek links方法是欠采样方法之一。如果两种不同类别的样本A和B互为最近邻,则A和B即为Tomek links样本对[3]。若A和B中有一个为多数类样本,假设为A,则将多数类样本A删除。Tomek links示意图如图2所示。
Figure 2. Schematic diagram of oversampling
图2. 过采样示意图
2.1.3. 动态博弈采样方法
融合博弈论与采样技术,旨在解决数据不平衡问题。借助纳什均衡确定最佳混合采样方法和比例,综合过采样技术与欠采样技术,限制采样比率在0.1~0.5之间,平衡数据集,通过博弈确定过采样与欠采样的最佳抽样比率,优化数据分布[4]。
2.2. 维度分析
在不平衡数据分类任务中,采样策略的选择直接影响模型的泛化性能。传统过采样方法通过人工合成少数类样本缓解类别失衡,但可能因过度拟合局部特征导致决策边界模糊;而单纯欠采样策略在剔除冗余样本时,又面临着潜在信息丢失的隐患。当前主流的混合式采样方法尝试在数据增强与信息保护间寻求平衡,其核心差异体现在对数据分布干扰程度、噪声控制能力及策略自适应性三个层面。通过多维度对比揭示了SMOTE、Tomek Links与动态博弈采样三类典型方法的内在机理与适用边界如表1维度分析所示,为不同失衡场景下的方法遴选提供了理论依据。
Table 1. Dimensional analysis
表1. 维度分析
维度 |
SMOTE |
Tomek Links |
动态博弈采样 |
核心思想 |
在少数类近邻间线性插值生成新样本 |
删除多数类边界样本以提升分类边界清晰度 |
基于博弈论实现过采样与
欠采样的动态比例优化 |
数据分布影响 |
可能引入噪声(过度聚焦局部区域) |
丢失多数类潜在重要信息 |
保留多数类代表性样本的
同时增强少数类多样性 |
适用场景 |
少数类极度稀缺(如患病率
< 5%) |
多数类存在冗余样本(如重复检测数据) |
中等不平衡(患病率5%~20%)且需兼顾模型鲁棒性 |
2.3. 随机森林算法
Bagging模型每一轮抽取一部分样本进行训练,得到基学习器,重复迭代次数,就能得到多个基学习器,然后让每个学习器进行预测并投票,预测结果是投票多的类别。随机森林是Bagging模型的代表模型。随机森林[5]默认采用CART树作为基学习器,能做分类和回归预测,每一轮随机抽取一部分样本和特征训练学习器,随机森林的示意图如图3所示:
Figure 3. Schematic diagram of a random forest
图3. 随机森林示意图
随机森林的学习过程能够并行化,并且随机抽取样本和特征,效率高,泛化能力强,但是由于基学习器是决策树模型,对噪声比较敏感,所以可能过拟合。
3. 数据预处理
3.1. 数据集来源与理解
本文采用来自公开数据集的糖尿病数据[6],其数据总量为768条,包含8个特征变量。分类标签为是否患有糖尿病,1代表患有糖尿病,0代表未患糖尿病。在所有原始数据中共有268条记录为患有糖尿病。数据集中部分特征(如Age和Pregnancies)存在一定的关联性,且某些特征(如SkinThickness和Insulin)对糖尿病的影响较小。数据集的特征如表2。
Table 2. Variable explanations
表2. 变量解释
变量名称 |
变量解释 |
Pregnancies |
怀孕次数 |
Glucose |
血浆葡萄糖浓度 |
Blood Pressure |
血压(mm Hg) |
Skin Thickness |
皮肤褶皱厚度(mm) |
Insulin |
血清胰岛素(mu U/ml) |
BMI |
身体质量指数(体重(kg)/身高(m)2) |
Diabetes Pedigree Function |
糖尿病家族史 |
Age |
年龄(岁) |
数据集的分类标签为Outcome,表示是否患有糖尿病,1代表患有糖尿病,0代表未患糖尿病。数据集中正负样本分布不均,正样本(患有糖尿病)数量较少,负样本(未患糖尿病)数量较多。
3.2. 数据清洗
数据清洗是审查和校验数据的过程,目的是纠正数据中存在的错误,保证数据的一致性。数据清洗对提升数据质量起着至关重要的作用,数据质量能够在很大程度上决定模型的预测效果。对于本研究采用的糖尿病数据集,该数据集共有768条样本。首先要划分训练集和测试集,训练集和测试集的比例设置为8:2,则训练集共614条样本,测试集共154条样本。对于数据集的重复值,由于该数据集中无专门用于唯一标识的id列,所以将所有列组合起来作为判断样本唯一性的依据。若出现完全相同的样本,说明数据集存在错误,含有重复值,应该剔除重复数据,纠正错误。在Python中,使用Pandas库中的duplicated方法检测数据中的重复值,结果显示,数据集中没有重复值。
变量筛选:参考糖尿病领域的国内外研究成果,从临床诊断经验出发,结合糖尿病相关的参考文献,梳理出与糖尿病关联性较强的因素。比如血糖(Glucose)、胰岛素(Insulin)等特征,它们在糖尿病的诊断和病理分析中具有关键作用。同时,删除特征关联性过于明显的变量,避免信息冗余。最终从原始的多个特征中选取了对糖尿病判断有重要意义的特征进行研究分析。
缺失值处理:在获取糖尿病数据集的过程中,由于客观条件限制或人为因素,数据缺失情况较为常见。例如部分样本的胰岛素(Insulin)、皮肤厚度(Skin Thickness)等特征存在缺失值。当缺失情况导致变量特征值损失率过高且数量较大时,如大量的空值或者数据记录不完整,将这部分数据直接剔除。对于缺失值较少的特征,考虑采用均值、中位数填充,或者利用机器学习算法(如K近邻算法)进行填充,以最大程度保留数据信息。
离散化:离散化是对连续的数值变量进行分段处理,常见的有等频和等长两种离散化方法。这两种方法不仅能提高算法的运行速度,还有利于提升模型的预测精度。在本数据集中,年龄(Age)是一个连续变量,其值在一定范围内变化。按照等长离散化对年龄数据进行分段处理,将其划分为若干类分类数据,这样可以更好地挖掘年龄与糖尿病之间的潜在关系[7]。
3.3. 对比方法与评估指标
对比方法:SMOTE、随机欠采样、SMOTE + Tomek Links动态博弈采样。
评价指标[8]在分类模型评估中,存在诸多评估指标,不同指标关注重点各异,需依据具体应用场景合理选取。比如在不平衡数据分类里,若正例与负例比例为1:99,模型全预测为负例时准确率虽达99%,但此时用准确率评估就不合适。
1) 混淆矩阵
混淆矩阵能形象展现分类模型表现,二分类是最简情形,可简化为2 × 2矩阵。如所示真正例(True-Positive, TP)和真负例(True-Negative, TN)分别指正确分类的正类和负类样本数量;假正例(False-Positive, FP)和假负例(False-Negative, FN)分别是分类错误的负例和正例样本个数。如表3所示。
Table 3. Explanation of the positive and negative examples
表3. 正负例解释
|
预测为正例 |
预测为负例 |
真实为正例 |
TP |
FN |
真实为负例 |
FP |
TN |
表中真正例(True-Positive, TP)和真负例(True-Negative, TN)分别指正确分类的正类和负类样本数量;假正例(False-Positive, FP)和假负例(False-Negative, FN)分别是分类错误的负例和正例样本个数。
2) 准确率、查准率、查全率和F1分数
准确率(Accuracy):是模型对测试集中所有样本准确分类的比例,公式为
查准率(Precision):评估找出信息中真正所需信息的比例,公式为
查全率(Recall):衡量模型找出样本中真正例的能力,公式为
Fβ分数:基于查准率和查全率的加权调和平均。常用β = 1时的F1分数,同时兼顾查准率和查全率,公式为
3) AUC
ROC曲线下方面积,面积越大表明模型性能越好,可有效消除样本类别不平衡产生的影响。
4. 实验
4.1. 相关性分析
利用皮尔逊相关系数[9]对筛选后的糖尿病数据集特征进行相关性分析。计算各特征变量之间以及特征变量与分类标签(Outcome)之间的相关系数,结果以相关系数矩阵呈现。从分析结果如图4可知,血浆
Figure 4. Correlation heat map
图4. 相关性热力图
葡萄糖浓度(Glucose)与是否患糖尿病(Outcome)呈现较强的正相关,相关系数达到0.65。这表明血浆葡萄糖浓度越高,个体患糖尿病的可能性越大,符合糖尿病的临床诊断认知,高血糖是糖尿病的重要标志之一。身体质量指数(BMI)与Outcome的相关系数为0.42,呈中度正相关,说明肥胖可能是糖尿病发病的一个重要危险因素。而皮肤褶皱厚度(SkinThickness)和血清胰岛素(Insulin)虽然对糖尿病有一定影响,但它们与Outcome的相关性相对较弱,相关系数分别为0.25和0.3。通过相关性分析,进一步明确了各特征在糖尿病诊断中的重要程度和相互关系,为后续模型构建提供了更有针对性的依据。
实验显示Glucose与Outcome相关系数达0.65 (p < 0.01),印证了糖代谢紊乱是糖尿病核心病理特征。而动态博弈采样使Glucose特征重要性有所提升,说明该方法能强化模型对关键生物标志物的敏感性,这与HbA1c(糖化血红蛋白)作为金标准诊断依据的临床实践一致。但BMI相关性被低估,推测因采样过程中删除了部分肥胖相关并发症样本,提示需在预处理阶段保留并发症字段以完善特征表达。
4.2. 对比试验
分别采用单一过采样(SMOTE算法)、单一欠采样(Tomek links方法)以及动态博弈采样方法对预处理后的训练集数据进行处理,以平衡数据集中的正负样本分布。使用SMOTE算法对少数类样本(患有糖尿病样本)进行过采样,根据算法原理,在少数类样本的K近邻点间生成新样本,将少数类样本数量提升至与多数类样本相近。利用Tomek links方法对多数类样本(未患糖尿病样本)进行欠采样,识别并删除多数类样本中与少数类样本互为最近邻的样本,减少多数类样本数量,使数据集达到平衡[10]。按照动态博弈采样方法的原理,借助纳什均衡确定过采样与欠采样的最佳抽样比率,综合运用过采样和欠采样技术,在0.1~0.5的采样比率范围内平衡数据集。在经过不同采样方法处理后的平衡数据集上,分别构建随机森林模型。设置随机森林的基学习器数量为100,最大深度为6,其他参数采用默认值。对每个模型在测试集上进行预测,并记录预测结果。依据混淆矩阵计算各模型的准确率、查准率、查全率和F1分数等评估指标。同时绘制各模型的ROC曲线,并计算曲线下面积(AUC) [11],结果如下表4所示:
Table 4. Experimental results
表4. 实验结果
采样方法 |
准确率 |
查准率 |
|查全率 |
F1分数 |
AUC |
未处理 |
0.7208 |
0.6071 |
0.6182 |
0.6126 |
0.8120 |
SMOTE |
0.7662 |
0.6338 |
0.8182 |
0.7142 |
0.8290 |
Tomek links |
0.7402 |
0.6190 |
0.7091 |
0.6610 |
0.8185 |
动态博弈采样 |
0.8491 |
0.9412 |
0.6333 |
0.8871 |
0.8893 |
4.3. 结果分析
动态博弈采样在综合性能指标上的优势表明,该方法在平衡误诊风险与医疗资源消耗方面具有独特价值。其94.12%的查准率意味着每100例模型诊断为阳性的患者中,仅约6例需二次验证,这显著优于临床常用的空腹血糖初筛。尽管63.33%的查全率可能遗漏部分潜在患者,但可通过设定更低的风险阈值进行补偿,这也符合IDF关于阶梯式筛查的指南建议。SMOTE 在查全率方面表现突出,同时也能提高准确率、F1分数和AUC等指标,在平衡数据方面有较好效果;Tomek links方法对各指标也有一定的提升作用,但相对前两种方法效果稍逊;未处理的数据在各项指标上表现相对较差,说明对数据进行适当的处理和采样方法的应用能够有效提升模型的性能。
动态博弈采样在查全率(0.6333)上低于SMOTE (0.8182),反映出该方法在捕捉潜在患者时存在漏检风险。这一现象源于博弈过程中对过采样比例的限制(0.1~0.5),导致少数类扩充不足。当临床场景要求最小化漏诊(如早期筛查)时,需优先选择SMOTE;而在确诊阶段需降低误诊率(如避免过度医疗),则动态博弈采样更具优势。
5. 临床应用场景建议
1) 动态博弈采样的优先场景
个性化治疗决策:当医疗资源有限时(如基层医院),利用其高查准率筛选需胰岛素干预的重症患者。
并发症预测:在已确诊糖尿病患者中,结合AUC优势预测CKD进展(文献[1]证实血糖波动与肾小球滤过率相关)。
2) SMOTE的优先场景
社区初筛:通过高查全率(81.82%)最大限度发现糖尿病前期人群,契合IDF倡导的“早发现、早逆转”策略。
流行病学研究:需要完整捕获潜在患者以分析危险因素地理分布。
3) Tomek Links的优先场景
数据质量提升:清除临床数据集中因录入错误产生的矛盾样本(如血压 > 200 mmHg但未标注为异常)。