您的位置:首页 > 社会 > 医疗卫生 > 医卫综合 医卫综合
基于监督学习的智能辅助颈动脉粥样硬化风险评估及诊断
作者:深圳市卫生健康发展研究和数据管理中心 来源:深圳市卫生健康发展研究(第一期) 责任编辑:manman 2022-12-22 人已围观
摘要:目的 基于深圳市龙岗区教职工群体历年的体检数据,建立诊断颈动脉粥样硬化的二分类模型,辅助医生开展对受检者罹患颈动脉粥样硬化的风险评估与诊断工作。方法 使用 XGBoost、LightGBM 和 CatBoost 三种梯度提升决策树算法建立基础模型,采取投票的方法进行模型集成,得到最终的投票分类模型。使用准确率、精确率、召回率、F1-score 与 ROC 曲线对模型进行评估。结果 使用随机抽取得到的11385 个样本作为测试集进行检验,得到投票融合模型的分类准确率为 95.46%,精确率为 87.75%,召回率为 65.69%,F1 值为 0.7513,ROC-AUC 值为 0.9300。结论 该投票分类模型能通过数十项常规体检项目快速对大量受检者进行风险评估,且能保证较高的准确率。综合而言,该模型能够试验性应用于辅助诊断颈动脉粥样硬化的工作中。
关键词:监督学习;梯度提升决策树算法;颈动脉粥样硬化;体检大数据
Abstract: Objective Based on the physical examination data of teaching staff inLonggang,Shenzhen over the years,a binary classification model for the diagnosis of carotidatherosclerosis was established to assist doctors in the risk assessment and diagnosisof carotid atherosclerosis. Method Three gradient boosting decision tree algorithms,XGBoost, LightGBM and CatBoost, are used to establish the basic model, and the votingmethod is adopted for ensemble to obtain the final voting classification model.Accuracy,precision, recall, F1-score and ROC curves were used to evaluate the model. Result Using11385 samples randomly selected as the test dataset, the classification accuracy of thevoting model is 95.46%, the accuracy rate is 87.75%, the recall rate is 65.69%, the F1-score is 0.7513 and the ROC-AUC value is 0.9300. Conclusion The voting classificationmodel can quickly assess the risk of a large number of samples through dozens of routinephysical examination items, and ensure high accuracy rate. In conclusion, the model can beexperimentally applied to assist in the diagnosis of carotid atherosclerosis.
Keywords: Supervised learning; Gradient boosting decision tree algovithms; Carotidatherosclerosis; Physical examination data
1 背景意义
脑卒中是严重危害中国国民健康的重大慢性非传染性疾病,《中国心血管健康与疾病报告 2020》指出,2018 年中国居民脑血管病死亡率为 149.49/10 万,约有 190 余万人因脑卒中死亡,占总死亡人数的 22.33%,相当于每 5 例死亡中就有1 例死于脑血管病,仅次于心血管疾病和肿瘤,位居死因排名的第三位。城市居民脑血管病死亡率为 128.88/10 万,占总死亡数的 20.52%;农村居民脑血管病死亡率为 160.19/10 万,占总死亡数的 23.19%[1]。脑卒中具有高死亡率、高发病率、高复发率、高致残率、高经济负担五大特点 [2]。我国总体脑卒中终生发病风险为39.9%;约有 25% 的首次中风恢复患者在 5 年内再发;脑卒中预后差,其所造成的功能性障碍恢复缓慢甚至持续终生,严重影响患者生活水平和寿命;2018 年,出血性脑卒中住院总费用达 270.72 亿元,缺血性脑卒中住院总费用达 654.32 亿元 [1]。
临床研究表明,缺血性脑卒中占脑卒中总数的 80% 以上。2017 年我国缺血性脑卒中出院人数为 3122289 人,出血性脑卒中为 523488 人,缺血性脑卒中占比为 85.64%[2]。颈动脉粥样硬化是引起缺血性脑卒中的主要因素。粥样硬化引起的颈部动脉管腔变窄甚至完全堵塞、部分易损斑块破裂形成血栓迅速堵塞管腔,均会造成脑部供血不足。颈动脉粥样硬化还是一种全身动脉广泛受累的病变,可反映全身动脉粥样硬化的病变情况。因此,颈动脉粥样硬化的早期检测与及时治疗,对包括脑卒中在内的心脑血管疾病的预防起到关键作用。研究使用深圳市龙岗区教职工年度体检数据,建立诊断颈动脉粥样硬化的二分类模型,试验性将机器学习应用于大数据医疗项目中,协助医生通过体检数据对受检人进行风险评估与诊断,争取做到颈动脉粥样硬化的早发现、早治疗,减少脑卒中对国民生命健康以及经济造成的损害。
2 数据与方法
2.1 数据概况
体检数据来自深圳市龙岗区人民医院。原始数据集涵盖了 19188 名教职工2005 年至 2020 年的体检样本,涵盖数百项检查项目,共计 90580 份。为保护隐私,该数据集隐去了受检者包括姓名、年龄、身份证号码、手机号码和家庭住址等个人信息。排除颈动脉相关体检指标缺失的体检记录,最终共有 56924 份样本被纳入分析。
体检数据来自深圳市龙岗区人民医院。原始数据集涵盖了 19188 名教职工2005 年至 2020 年的体检样本,涵盖数百项检查项目,共计 90580 份。为保护隐私,该数据集隐去了受检者包括姓名、年龄、身份证号码、手机号码和家庭住址等个人信息。排除颈动脉相关体检指标缺失的体检记录,最终共有 56924 份样本被纳入分析。
2.2 流程
研究采用数据分析的常规流程。如图 1 所示,特征工程处理后的新数据将被分为 80% 的训练集(Train dataset)和 20% 的测试集(Test dataset),再将训练集中分出 20% 作为验证集(Validation dataset),验证集将被用于对训练所得的模型进行调整及效果评估。若模型效果不理想,则需要更换算法或重新进行特征工程、建立新的数据集,反复进行直到模型效果可被接受。最后一步则是使用测试集评估最终模型的泛化能力,观察模型在真实数据上的预测情况。
▲图 1 数据建模流程简介
2.3 特征工程
特征工程的目的是寻找对因变量 Y 有明显影响作用的自变量 X,或自变量的线性 / 非线性组合。数据和特征的选取决定了机器学习效果的上限。为建立一个好的模型,需要对原始数据集进行预处理,从中提取对预测颈动脉粥样硬化有贡献的体检项目作为特征,组成新的数据集。
2.3.1 数据清洗
数据清洗的目的是找出原始数据集中的错误数据及重复数据,删改处理后再投入使用。原始数据集中存在的问题主要有录入错误、重复存储和格式不统一。录入错误包括人工输入体检报告时的错误输入、遗漏输入和错位输入,需要通过机器筛选和人工识别找出这类因录入错误产生的错误数据和无效数据,将其修正或删除。
重复存储即一份体检单在数据集中储存了两份以上,同一体检项目在数据集中分别在多个不同列中储存,需要对重复数据进行删除处理,对分列存储的数据进行数据合并。格式不统一即录入规范不一致所导致的样本字体、字号和表达方式不统一,这一点在文本数据中尤为明显,需要对原始数据进行分割、替换、语义识别和正则化处理,从文本中提取数据并整理成标准格式。
重复存储即一份体检单在数据集中储存了两份以上,同一体检项目在数据集中分别在多个不同列中储存,需要对重复数据进行删除处理,对分列存储的数据进行数据合并。格式不统一即录入规范不一致所导致的样本字体、字号和表达方式不统一,这一点在文本数据中尤为明显,需要对原始数据进行分割、替换、语义识别和正则化处理,从文本中提取数据并整理成标准格式。
2.3.2 因变量标签及数据处理
将受检者颈动脉粥样硬化发生与否作为二分类因变量,被检出者标记为 1,未被检出者标记为 0。判断标准为颈动脉彩超体检文字报告,主要涉及三个指标:颈动脉斑块检查、颈动脉内膜回声情况和彩色多普勒血流成像(Color DopplerFlow Imaging,CDFI)。在斑块检查部分,标记所有包含“强回声、等回声、低回声、弱回声、软斑、混合性回声斑、混合回声斑、混合斑、斑块分布不均匀、欠均匀”字符的样本;内膜检查部分,标记所有包含“内膜回声不光滑、内膜回声欠光滑、内膜回声毛糙”及其他相同语义字符的样本;CDFI 检查部分,标记所有包含“血流充盈缺损、血流充盈稍欠缺损”字符的样本。将上述三类样本取并集,即检出上述症状一类及以上的样本标记为 1,共标记 5963 个样本。
将部分体检项目的结果从符号转化为数字。例如在尿常规系列检查中,须将体检单中的“阴性、(-)”字符替换为数字 0,将“+-、+/-”字符替换为数字1,将“+、1+”字符替换为数字 2,将“++、2+”字符替换为数字 3,将“+++、3+”字符替换为数字 4,将“++++、4+”字符替换为数字 5。将部分体检项目进行拆分或合并处理。例如将身高和体重通过转换为 BMI 指数合并为一列,用于衡量人体胖瘦程度;将血压指标拆分为收缩压和舒张压,视作两个变量。
将数据全部统一转换为浮点型,得到一个存在缺失值 NaN 的纯数字集。通常而言,当数据存在缺失时,需要对其进行删除或填补处理。这两种方式均存在弊端,删除数据会造成对信息的浪费;无论何种填补方式都会引入噪声,造成误差。本研究将缺失值视为一个特殊值,采用不进行填补的方法,原因如下:在体检项目中,缺失值本身具有一定的信息,当某项体检的过往的数据和近期相关检查的数据均未出现异常时,受检者可能倾向于不参与该项检查;在实际的应用当中,受检人大概率不会完整参与所有体检项目,故需要一个能处理缺失数据的模型。如图 2 所示,在 P-R 曲线评估中,不对数据进行填补的效果要优于填补(方法为 KNN = 3),未填补数据训练所得模型各项指标均更高。
▲图 2 P-R 曲线评估(蓝线为未填补数据所得,黄线为填补数据所得)
2.3.3 特征选择
根据过去临床研究和长期随访研究得出的结论,选择十类包 括 性别、肥胖指数、血压、血糖尿糖、血脂、血管状况、肝功能、肾功能、尿常规、血常规,共 64 项体检项目作为预选特征。经皮尔逊(Pearson)相关系数、斯皮尔曼秩相关系数共同检验,选出 60 项体检项目作为特征(P 值均小于 0.050),其中 22 项为相关性相对较高的强特征,38 项为相关性较弱的弱特征。图 3 给出了因变量和一项强特征的数据散点图,可见二者间存在线性关系;图 4 给出了因变量和一个无关变量的数据散点图,可见二者间不存在显著关系。
▲图 3 强特征数据散点图
▲图 4 未通过相关性检验的变量
通过特征工程,得到新数据集,其维度为 [56924×61],共 56924 个样本,60个自变量,1 个因变量。新数据集将被用于训练和测试模型。
2.3.4 样本采样与权重
56924 个参检样本中,未检出粥样硬化样本数为 50961,检出粥样硬化样本数为 5963,比例约为 8.5462∶1,样本存在不平衡现象。在存在样本不平衡的情况下,多数类的样本带有的信息量比少数类的样本信息量大,使得分类器学习后会做出倾向于多数类样本的判断,这十分不利于准确找出标签为 1 的正样本。若直接采用原数据集进行训练,则会得到空有高准确率,但正样本召回率极低的无效分类器,这与研究目标不符。因此,对训练样本进行重采样处理或调整样本类别的权重是必要的。采样方法分为“过采样”(上采样)和“欠采样”(下采样)两种。过采样即从少数类的样本中重复采样或人工合成新样本添加到数据集中,达到数据平衡,常用的过采样方法有 SMOTE 及其改进方法。欠采样即从多数类的样本中随机选择少量样本,与原有少数类样本合并,常用的欠采样方法有 EasyEnsemble 和 NearMiss。而对样本类别的权重调整,本质上是改变了训练过程中的损失函数,增大了错分少数类样本时产生的成本,使分类器更重视少数类样本,倾向于对少数类样本进行正确分类。
经检验,过采样与调整样本类别权重的效果相近,均优于欠采样方法,大幅改善样本不平衡带来的不利影响。出于时间成本的考虑,优先选择调整权重的方法。
2.4 训练方法
2.4.1 评估指标
评估一个二分类模型时,可以使用混淆矩阵(表 1)来总结一个分类器结果。
▲表 1 混淆矩阵
P-R 曲线,反映模型在选取不同阈值的时候精确度和召回率的趋势走向。ROC 值,反映模型在选取不同阈值的时候其真阳性率(Sensitivity,TPR)和假阳性率(1 - Specificity,FPR)的趋势走向。ROC-AUC 即曲线下面积。
从训练集(Train dataset)中随机再抽取 20% 的数据作为验证集(Validationdataset,不参与训练,用于模拟测试集在该模型上的表现),通过 P-R 曲线观察由七种算法建模得到的精确度和召回率,结果如图 5 所示。
▲图 5 P-R 曲线比较不同算法产生的效果
验证得到以下结果:决策树模型要优于支持向量机(AUC = 0.4300)和逻辑回归(AUC = 0.4300),在决策树模型中,梯度增强决策树算法(GBDT[3]、XGBoost[4]、LightGBM[5] 和 CatBoost[6])要优于随机森林 [7](AUC = 0.6100)。选择表现最好的三个算法即 XGBoost[4](AUC = 0.7400),LightGBM[5](AUC= 0.7600),CatBoost[6](AUC = 0.7600)在训练集上进行网格搜索交叉检验(CrossValidation,K = 5)调整参数后,如图 6 所示,将训练所得的三个分类模型作为基模型,通过软投票(将所有模型预测样本类别的概率的平均值作为分类标准)的方式集成为投票模型。经检验,投票模型效果略优于三种基模型,且更加稳定。
▲图 6 集成投票及示例
3 结果与分析
3.1 模型评估
使用随机抽取得到的 11 385 个样本作为测试集(Test dataset),模拟真实情况下集成投票分类模型的泛化能力。测试结果如图 7 所示:该分类器(红线)P-R曲线下面积为 0.7900(图 7a),ROC 曲线下面积为 0.9300(图 7b)。
▲图 7 投票分类模型效果
在分类阈值为 0.5000(将风险值 0.5000 以上的样本判断为动脉粥样硬化发生)的情况下,真阳性样本数为 781,假阳性样本数为 109,假阴性样本数为408,精确度为 87.75%,召回率为 65.69%。随着阈值的下降,更多的样本会被分入正类,使真阳性和假阳性样本数增加、真阴性和假阴性样本数减少,导致精确率下降,召回率上升。
假阳性(FP)类中的样本由于其较高的风险值,同样具有被发现和关注的必要性。出于尽可能从体检数据中找出颈动脉粥样硬化患者以及高风险人群的目的,可采用降低阈值,以精确度降低(假阳性样本数增加)的代价来提升召回率(假阴性样本数减少)的策略。表 2 给出了不同阈值下分类器在测试集中的表现。当分类阈值降低到 0.3000时,模型以损失 9.47%精确度的代价提高了 4.62%的召回率,此时 F1 值仅轻微下降 0.0105。
▲表 2 不同分类阈值下的模型表现
3.2 特征贡献
集成投票模型的特征贡献由三个基模型的特征贡献取平均求得。特征贡献(特征重要性)体现了某个特征在模型中被使用的次数或者带来的信息增益。一个样本中未缺失数据对应特征的贡献值总和越高,其被模型正确评价分类的概率越高。
各项特征在模型中的贡献如图 8 所示:在数据缺失高达 79.82% 的情况下,颈部血管内中膜厚度对模型的贡献率达到了 15.42%,为最重要的特征。其次为性别(13.18%)、血糖(3.66%)、甘油三酯(2.77%)、收缩压(2.58%)。肝功能、肾功能以及尿常规中的部分检查亦做出了较高的贡献。血常规类检查虽单项检查的贡献率低,但累积贡献率达 24.75%。
▲图 8 特征在模型中的贡献(特征重要性)
大部分特征的贡献率均符合过往研究。内中膜增厚是血管老龄化、弹性降低的表现,高度提示动脉粥样硬化的风险。动脉粥样硬化发生存在性别差异,男性发生率高于女性。血压、高脂血症和 2 型糖尿病均是导致动脉粥样硬化斑块形成以及加重的主要风险因素,模型中的相关检查均有所体现;但值得注意的是,载脂蛋白 A1 和载脂蛋白 B 因其极高的缺失率(98.88%),对模型的贡献相当有限;尿糖指标贡献率低、样本区分情况不明显的原因不明。长期高血脂、高血糖和高血压导致的代谢异常和功能受损亦可被肝功能、肾功能以及血常规检查所检出。
4 结论与讨论
该模型的不足之处在于:模型对部分阳性(动脉粥样硬化已发生)样本不敏感(见表 2),296 例阳性样本风险指数低于 0.2000,152 例低于 0.1000,57 例低于 0.0500;评估效果不佳原因可能为样本关键特征的缺失,或样本处于亚临床状态、体检指标多处于正常范围内。梯度提升树的模型复杂,不直观,可解释性不强。增加新的重要特征(如受检者的年龄)、使用更多数据训练模型和提高数据集完备性等方法均能进一步提高模型预测的准确率。综合而言,考虑到当前模型的性能,可以将其试验性应用于更多、更大的数据库中,为数据库中大量未进行过动脉粥样硬化检查的样本进行快速的风险评估和分类,并依据结果向其推荐动脉粥样硬化相关检查;亦可试验性应用于体检当中,辅助医生综合考虑数十项体检指标后进行快速诊断。
参考文献
[1]《中国心血管健康与疾病报告 2020》编写组 .《中国心血管健康与疾病报告 2020》要点解读 [J]. 中国心血管杂志,2021,26(3): 209-218.
[2]《中国脑卒中防治报告 2019》编写组 .《中国脑卒中防治报告 2019 概要》[J]. 中国脑血管病杂志,2020,17(5): 272-281.
[3] JEROME H FRIEDMAN. Greedy function approximation: A gradient boosting machine[J].Annals of statistics, 2001: p. 1189-1232.
[4] T Q CHEN, C GUESTRIN. XGBoost: A acalable tree boosting system[c]. KDD (2016).
[5] GuolinKe, Qi Meng, Thomas Finley, Taifeng Wang, Wei Chen, Weidong Ma, Qiwei Ye,《卫生健康发展研究(第一期)》(170×240).indd 342022/4/7 8:47:11 基于监督学习的智能辅助颈动脉粥样硬化风险评估及诊断Tie-Yan Liu, LightGBM: A highly efficient gradient boosting decision tree[c]. NeuralInformation Processing Systems 30 (2017).
[6] Liudmila Prokhorenkova, Gleb Gusev, Aleksandr Vorobev, Anna Veronika Dorogush,Andrey Gulin. CatBoost: Unbiased boosting with categorical features[J]. Advances in NeuralInformation Processing Systems 31 (2018).
[7] L.Breiman. Random forests[J]. Machine learning, 2001, 45 (1): p. 5-32.
作者:骆政熙 ,黎明 ,于天维,王昌淼,万翔
作者:骆政熙 ,黎明 ,于天维,王昌淼,万翔
很赞哦! ( )
评论
0