社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

基于深度学习算法的增强CT检查后对比剂肾病预测模型研究

放射学实践 • 1 年前 • 169 次点击  

作者单位:100034  北京 北京大学第一医院医学影像科 通信作者:张晓东,E-mailzhxd2009@gmail.com

   摘要 目的利用深度学习算法对增强CT检查后发生对比剂肾病(contrast-induced nephropathy, CIN)的风险因素进行分析,并构建CIN的预测模型。方法RIS系统中回顾性集增强CT检查并建立CIN数据库。检索数据库资料,导出基本信息、基础病史、对比剂注射信息共计18项指标,对患者资料进行筛选、预处理后,建立二分类模型研究队列。经数据处理后利用深度学习方法在整理好的CIN数据集上进行开发和训练。结果CIN二分类模型对测试集数据预测结果显示CIN阴性分类的精确度、召开率和F1-分数分别为0.9820.7520.852CIN阳性分类的精确度、召开率和F1-分数分别为0.2290.8420. 359。该模型ROC曲线下面积均为0.89结论本研究使用深度学习算法构建了CIN的预测模型,对CIN阳性患者有较高敏感性,但特异性有待提高。  关键词深度学习;人工智能;增强CT对比剂肾病;危险因素

   对比剂肾病(contrast-induced nephropathy, CIN)是临床应用碘对比剂后最重要的并发症之一,也是医源性肾功能衰竭的常见病因。随着增强CT检查数量的逐年增加,静脉注射对比剂用量显著增多,造成CIN的发病率升高,不仅对患者的临床预后不利,而且增加了患者的医疗费用和住院时间,增加了医疗的支出和成本。                                        血清肌酐(serum creatinine, SCR)是目前诊断CIN的主要临床指标,需注射对比剂48-72h后的SCR结果才能确诊,临床常规观察可能延误了最佳治疗时机,因此使用检查前的患者数据或指标建立一个能预测CIN发生的模型对该病的早期预防具有重要意义。研究显示除慢性肾脏疾病外,糖尿病、心血管疾病、恶性肿瘤等都与CIN有一定关联,这些问题会随着人口的老龄化愈加突出。  近年随着人工智能技术迅猛发展,深度学习模型受到越来越多的关注。深度学习的概念源于人工神经网络的研究,是一个复杂的机器学习算法,可学习样本数据的内在规律,通过组合低维特征形成更加抽象的高维特征以发现数据的分布规律。相对于传统的回归分析模型,深度学习比较适合数据量较大的情况。国际上使用深度学习预测急性肾损伤的研究得到了不错的结果,但是国内的类似研究尚较少。                                    本研究尝试利用深度学习方法对CT增强检查后发生CIN的风险因素进行分析,构建一种基于深度学习算法的CIN预测模型,以期达到有效的预测和预防CIN的目的。

1 CIN分类预测模型结构组件示意图,图中输入部分CAT/CONT代表类别型/连续型的数据类型,编码器部分Embedding Layer代表嵌入层,专门处理类别型数据,Linear Layer代表线性层,专门处理连续型数据,加权损失部分,Cross-Entropy代表交叉熵,输出部分CIN negative/CIN positive代表对比剂肾病阴性/对比剂肾病阳性。 2特征重要性排序列表。3 CIN二分类模型在测试集中的混淆矩阵。CIN negative代表对比剂肾病阴性CIN positive代表对比剂肾病阳性。4  CIN二分类模型在测试集中的受试者工作特征曲线(receiver operating characteristic curve),图中纵坐标True Positive Rate代表真阳性率,横坐标False Positive Rate代表假阳性率,其中class 0代表对比剂肾病阴性类别,class 1代表对比剂肾病阳性类别

讨论                                      本研究采用了深度学习算法,相较于传统的回归分析模型具有很多优势。深度学习又称为深度神经网络,是机器学习研究中的一个新兴领域。深度学习源于多层神经网络,其实质是一种将特征表示和学习合二为一的方式,特点是放弃了可解释性,单纯追求学习的有效性。深度学习模型评价的常用指标有很多。精确度(precision),又称查准率,定义为模型预测为正类的样本中,真正为正类的样本所占的比例。召回率(recall),又称查全率、真正例率,定义为模型正确预测为正类的样本的数量,占总的正类样本数量的比值。F1分数(F1 score),F1 score=2* Precision* Recall/Precision+ Recall),可认为是精确率和召回率的调和平均值。深度学习模型评价的常用指标中还有准确率(accuracy)这个基本指标,但是在正反例样本分布不平衡的情况下,尤其是我们对数量更低的样本更感兴趣的时候,accuracy评价基本没有参考价值。    研究显示静脉注射对比剂后CIN的发生率为5.0%-6.4%。本研究的数据库中CIN阳性的比例为7.1%,数据库属于典型的非平衡分布。由于CIN阴性患者样本比例很高,模型最后预测的结果也很好,精确率为0.982,召回率为0.752F1分数为0.852AUC0.89 ,说明该深度学习模型对于CIN阴性的预测效果较好,对于预测为阴性的患者,其增强CT检查后发生CIN的可能性较低。对于CIN阳性的分类预测结果,其召回率0.84(测试集中共19例阳性病例,预测检出16例),召回率表示预测为阳性的样本占全部阳性样本的比例,召回率高即表示该分类预测模型对CIN阳性的检出率较高。但是模型预测为阳性的患者数量较多,除了16例预测正确的患者外,还有54例实际CIN阴性患者也被预测为了阳性,导致精确率和F1分数均较低。模型预测CIN阳性的敏感性较高,而特异性差。为了提高CIN阴性患者预测的精确率,我们将尝试增加数据库的样本量、完善深度学习算法等。Yun使用了包括常规方法、机器学习和深度学习等多种方法,预测对比剂肾病的发生率,结果递归神经网络(recurrent neural network, RNN)模型有最高的AUC值(0.755)。Yan针对慢性肾病住院患者使用深度学习网络建立了模型,采用了14个参数,获得了比常规回归分析好很多的结果,外部验证数据的AUC值为0.94,而回归分析为0.745,该文章也提到了因为数据分布的高度不平衡,CIN阳性的结果会受到影响,但是仍较回归分析结果更好,不少肾损伤的研究也得到了类似的结果。                            模型特征重要性排序中位于前2位的特征参数分别为eGFR_preSCR_pre,因为CIN的定义就是基于血清肌酐的变化,eGFR的重要性排序高于SCR,推测是因为eGFR是通过SCR、性别、年龄3项指标估算而来,而且预测模型有很多,本研究使用的eGFR估算公式是基于中国人的MDRDthe modification of diet in renal diseaseMDRD)公式。年龄位于第三位,是对CIN是否发生较重要的影响因素。研究提示高龄预测CIN发病的一项独立风险指标。在一个大样本量研究中年龄大于65岁的人群CIN发病率约为13.6%,明显高于成年人群。高龄增加CIN发病率风险的原因尚不完全清楚,可能受其他相关风险因素影响,如随着年龄增大,肾脏有效肾单位体积相对较少,GFR相对下降,肾小管分泌和重吸收功能减退等因素均可造成肾脏对外源性刺激的应急能力减弱。对比剂浓度、体重、性别、糖尿病的权重分数也较高。研究显示离子型的高渗对比剂会增加CIN的发生风险。虽没有证据表明等渗对比剂和低渗对比剂之间CIN发生率存在明显差异,但是对比剂对肾脏的影响机制还有待深入研究。研究显示低BMI、低体重CIN发生的一项独立风险因素。多项研究提示对比剂注射72h内女性发生CIN的频率明显高于男性。很多研究均提示糖尿病是CIN发生的一个危险因素。    本研究亦存在不足之处。首先,研究使用单一中心数据,样本量偏少,特别是CIN阳性的样本量较少,有待未来扩大样本量。研究纳入的指标还可以进一步增加如血红蛋白C反应蛋白、血尿酸等。其次,2 018欧洲泌尿生殖放射学会(ESUR)已将对比剂肾病的名称更新为了对比剂急性肾损伤(post contrast acute kidney injury, PC-AKI,并将诊断标准进行了更新,国内于2022年发布了新版专家共识,因本数据库建立时间较早,尚未更新,后续将针对新标准进行更深入研究。                            本研究探索使用深度学习算法构建了增强CT检查CIN的预测模型,模型对CIN阳性的患者有较高敏感性,但特异性有待提高。





Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/157869
 
169 次点击