买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:中南大学
摘要:本发明公开了一种基于可解释模型预测感染性休克者亚甲蓝治疗响应的方法,先构建由数据预处理模块、特征工程模块、响应预测模块组成的感染性休克患者亚甲蓝治疗响应预测系统。特征工程模块对数据集进行特征工程,构建两组训练集和两组测试集。响应预测模块中的模型训练子模块采用两组训练集分别对5种机器学习模型进行训练,得到10个响应预测模型。模型筛选子模块使用两个测试集对响应预测模型进行评估,筛选出最终响应预测模型。模型解释子模块对最终响应预测模型进行解释,得到最终预测模型,预测模型对患者数据进行预测,得到预测结果。采用本发明可预测亚甲蓝作为感染性休克者的潜在升压药物之一的有效性,可预测适宜人群,预测准确性高。
主权项:1.一种基于可解释模型预测感染性休克者亚甲蓝治疗响应的方法;其特征在于包括以下步骤:第一步,构建感染性休克患者亚甲蓝治疗响应预测系统;感染性休克患者亚甲蓝治疗响应预测系统由数据预处理模块、特征工程模块、响应预测模块组成;数据预处理模块与特征工程模块相连,训练时,数据预处理模块读取原始数据集S1,对S1中的特征进行数据清理,得到清理后的数据集S2;然后对S2进行数据变换,得到预处理后的数据集S3,将S3发送给特征工程模块;当对用户输入的感染性休克患者数据X进行预测时,对X进行数据清理,得到清理后的数据X',再对X'进行数据变换,得到预处理后的感染性休克患者数据X”',将X”'发送给响应预测模块;特征工程模块与数据预处理模块、响应预测模块相连;训练时,特征工程模块接收数据预处理模块输入的数据集S3,先使用统计学方法进行显著特征筛选,得到第一数据集pv_data,将pv_data划分为第一训练集pv_train和第一测试集pv_test;然后对S3使用机器学习方法进行特征筛选,得到第二数据集ml_data,将ml_data划分为第二训练集ml_train和第二测试集ml_test;将第一训练集pv_train、第一测试集pv_test、第二训练集ml_train、第二测试集ml_test发送给响应预测模块;响应预测模块与特征工程模块、数据预处理模块相连,响应预测模块由模型训练子模块、模型筛选子模块、模型解释子模块、预测模型构成;模型训练子模块与特征工程模块、模型筛选子模块相连,包含逻辑回归模型LR、随机森林模型RF、支持向量机模型SVM、可解释提升机模型EBM、轻量级梯度提升机模型LightGBM;训练时,模型训练子模块接收特征工程模块输入的第一训练集pv_train,对5种模型进行训练,并调整5种模型的超参数,得到5个响应预测模型;模型训练子模块还接收特征工程模块输入的第二训练集ml_train,对5种模型进行训练,并调整5种模型的超参数,又得到5个响应预测模型;训练后共得到10个响应预测模型,将10个响应预测模型发送给模型筛选子模块;模型筛选子模块与特征工程模块、模型训练子模块、模型解释子模块相连,训练时,模型筛选子模块接收模型训练子模块输入的10个响应预测模型,在接收特征工程模块输入的第一测试集pv_test时,对基于第一训练集pv_train建立的5个响应预测模型进行评估;在接收特征工程模块输入的第二测试集ml_test时,对基于第二训练集ml_train建立的5个响应预测模型进行评估,对从模型训练子模块接收的10个响应预测模型进行评估,得到最佳的响应预测模型;将最佳的响应预测模型及其使用的数据集发送给模型解释子模块;模型解释子模块与模型筛选子模块相连,训练时,模型解释子模块接收模型筛选子模块输入的最佳响应预测模型及其使用的数据集,将其输入到SHAP解释器中,使用SHAP解释器对最佳的响应预测模型进行全局解释和局部解释,获取各个特征对亚甲蓝药物响应预测的重要性程度和各个特征是如何影响预测模型对单个患者的预测;最佳的响应预测模型和SHAP解释器一起构成训练得到的最终的预测模型;当对用户输入的单个感染性休克患者数据X进行预测时,预测模型接收数据预处理模块输入的X”',预测模型中的最佳的响应预测模型输出该患者对亚甲蓝药物响应的预测结果,预测模型中的SHAP解释器输出各个特征对该患者响应预测结果的SHAP值,并可视化这些SHAP值,显示每个特征对该患者的响应预测结果的贡献程度;第二步,构建原始数据集S1,方法是:2.1初始化原始数据集S1为空,S1的每个表项包括26个域,分别为患者id编号、24个用于构建模型的特征、患者对亚甲蓝药物是否响应的标签;2.2从医院的脓毒症专病数据库提取患者id编号并纳入S1;令此时S1中的患者id编号共有M个,M为正整数,即此时S1共有M个表项,1个表项对应1个患者的样本;2.3根据S1中的患者id编号,从医院的脓毒症专病数据库提取24个用于构建模型的特征,包括患者性别、住院时年龄、体重、吸烟史、饮酒史、合并症、ICU类型、是否使用特利加压素、是否使用激素、启动亚甲蓝前6h平均去甲等量NEEpre、氧疗方式、氧合指数OI、是否连续性肾脏替代治疗CRRT、乳酸、中心静脉血氧饱和度ScvO2、启动亚甲蓝距离首次启动去甲肾上腺素的时间TNE、启动亚甲蓝距离诊断休克的时间Tshock,将这些内容放到S1的患者id编号对应的表项中;以上24个特征分为连续型特征和分类型特征;连续型特征包括患者住院时年龄、体重、NEEpre、OI、乳酸、ScvO2、TNE、Tshock,分类型特征包括患者性别、吸烟史、饮酒史、高血压、糖尿病、冠心病、房颤、肺部疾病、肾病、肝脏疾病、免疫功能抑制情况、ICU类型、是否使用特利加压素、是否使用激素、氧疗方式、是否连续性肾脏替代治疗;2.4根据以下条件得出S1中M个患者对亚甲蓝是否响应的标签,有响应时标签为1,无响应响应时标签为0:患者对亚甲蓝有响应即升压有效定义为满足以下2个条件之一:1NEE下降10%且平均动脉压MAP_avg_post≥65mmHg;2NEE下降、不变、或增加10%,即10%NEE%≥-10%但平均动脉压改变值MAP_avg%上升≥10mmHg;满足以上2个条件之一时,认为亚甲蓝升压有效,将S1中患者id编号对应的标签赋值为1,两项条件均不符合时定义亚甲蓝升压无效,将S1中患者id编号对应的标签赋值为0;其中,NEE的改变值NEE%=NEEpost-NEEpreNEEpre×100%,NEEpost为启动亚甲蓝后6h平均去甲等量;平均动脉压MAP=[收缩压+舒张压×2]3,正常成年人平均动脉压正常值为70~105mmHg;分别计算启动亚甲蓝前6h和后6h内平均动脉压的平均值MAP_avg得到MAP_avg_pre和MAP_avg_post,MAP_avg的改变值MAP_avg%=MAP_avg_post-MAP_avg_pre;此时,S1中有响应的患者为M_1位,无响应的患者为M_0位;第三步,数据预处理模块对数据集S1进行预处理,得到预处理后的数据集S3;3.1对S1进行数据清理,方法是:3.1.1使用箱线图boxplot对S1进行异常值检测,删除异常值或者使用该特征的平均值对异常值进行填充,得到数据集S1',S1'中患者id编号共有M2个,M2≤M且M2为正整数,所述异常值指被记录错误的数据值或反常的数据值;3.1.2删除S1'中数据缺失比例超过30%的特征,对于数据缺失比例30%的特征,使用多重KNN插补法进行插补,数据缺失比例指某个特征数据中缺失数据的数量占数据总体数量M2的比例,具体步骤是:3.1.2.1将S1'拆分为有缺失值的部分S11和完整的部分S12,S11是需要进行插补的特征;3.1.2.2对S11进行插补处理,得到K个插补后的数据集S111,…,S11k,…,S11K,1≤k≤K且k为正整数,K为正整数,S111,…,S11k,…,S11K中患者id编号都是M2个,与S11的区别是数据缺失比例30%的特征都已插补完整,且不含有≥30%的特征,并基于S111,…,S11k,…,S11K随机划分训练集和测试集并进行模型训练和评估,得到avg_accuracy1,…,avg_accuracyk,…,avg_accuracyK,和avg_rmse1,…,avg_rmsek,…,avg_rmseK,avg_accuracyk为S11k的平均准确度,avg_rmsek为S11k的平均均方根误差;3.1.2.3比较avg_accuracyk,…,avg_accuracyk,…,avg_accuracyK和avg_rmse1,…,avg_rmsek,…,avg_rmseK,选择平均准确度最大且平均均方根误差相对较小的k值对应的数据集S11k作为清理后的数据集S2;S2中特征数量共有T个,其中连续性特征有T1个,分类型特征有T2个,T1+T2=T,T≤24且T为正整数;3.2对S2进行数据变换,方法是:3.2.1对S2中M2个患者的T1个连续型特征数据使用Z-Score标准化法进行数据标准化,得到数据标准化后的数据集S2',方法是:3.2.1.1将S2分为包含T1个连续型特征数据的部分S21和包含T2个分类型特征数据的部分S22;3.2.1.2对S21中的特征进行标准化,得到标准化后的数据集S21;3.2.1.3将S21'与S22合并,得到标准化后的特征数据集S2';3.2.2对S2'中M2个患者的T2个分类型特征数据进行独热编码,得到预处理后的数据集S3,S3中也有M2个进行了独热编码的患者的样本;将S3发送给特征工程模块;第四步,特征工程模块对预处理后的数据集S3分别使用统计学方法、机器学习方法进行特征工程,构建训练模型的两组训练集和两组测试集;4.1特征工程模块使用统计学方法对S3进行特征工程,得到第一数据集pv_data,pv_data中包含t1个特征,将pv_data划分为第一训练集pv_train和第一测试集pv_test,将pv_train发送给响应预测模块中的模型训练子模块,将pv_test发送给响应预测模块中的模型筛选子模块,pv_train中包含M'位患者,pv_test中包含M”位患者,M'+M”=M2;4.2特征工程模块使用机器学习方法对S3进行特征工程,得到用于最终建模的数据集ml_data,ml_data中包含t2个特征,将ml_data划分为第二训练集ml_train和第二测试集ml_test,将ml_train发送给响应预测模块中的模型训练子模块,将ml_test发送给响应预测模块中的模型筛选子模块,ml_train中包含MM'位患者,ml_test中包含MM”位患者,MM'+MM”=M2;第五步,响应预测模块中的模型训练子模块使用第一训练集pv_train、第二训练集ml_train分别对5种机器学习模型进行训练,得到10个响应预测模型;5.1使用模型训练方法,采用第一训练集pv_train对LR模型、RF模型、EBM模型、SVM模型和LightGBM模型进行训练;采用网格搜索和5折交叉验证方法调整模型的超参数组合,得到5个基于第一训练集建立的响应预测模型,具体方法是:5.1.1采用第一训练集pv_train对LR模型进行训练,使用网格搜索和5折交叉验证方法调整模型的超参数组合,以模型的准确度作为评估标准选择最佳的超参数组合得到响应预测模型pv_LR;5.1.2采用第一训练集pv_train对RF模型进行训练,使用网格搜索和5折交叉验证方法调整模型的超参数组合,以模型的准确度作为评估标准选择最佳的超参数组合得到响应预测模型pv_RF;5.1.3采用第一训练集pv_train对EBM模型进行训练,使用网格搜索和5折交叉验证方法调整模型的超参数组合,以模型的准确度作为评估标准选择最佳的超参数组合得到响应预测模型pv_EBM;5.1.4采用第一训练集pv_train对SVM模型进行训练,使用网格搜索和5折交叉验证方法调整模型的超参数组合,以模型的准确度作为评估标准选择最佳的超参数组合得到响应预测模型pv_SVM;5.1.5采用第一训练集pv_train对LightGBM模型进行训练,使用网格搜索和5折交叉验证方法调整模型的超参数组合,以模型的准确度作为评估标准选择最佳的超参数组合得到响应预测模型pv_LightGBM;5.2采用5.1所述模型训练方法,使用第二训练集ml_train对LR模型、RF模型、EBM模型、SVM模型和LightGBM模型进行训练,得到5个基于第二训练集建立的响应预测模型,分别为ml_LR、ml_RF、ml_EBM、ml_SVM、ml_LightGBM;5.3将5个基于第一训练集建立的响应预测模型和5个基于第二训练集建立的响应预测模型发送给模型筛选子模块;第六步,模型筛选子模块使用第一测试集pv_test、第二测试集ml_test对10个响应预测模型进行评估,筛选出一种最佳模型,作为最终的响应预测模型;6.1初始化混淆矩阵A为空,混淆矩阵A包含4个元素,分别为a11,a12,a21,a22,初始都为0;a11存放模型预测标签为1真实标签也为1即真阳性的数量TP,a12存放模型预测标签为1真实标签为0即假阳性的数量FP,a21存放模型预测标签为0真实标签为1即假阴性的数量FN,a22存放模型预测标签为0真实标签为0即真阴性的数量TN;6.2基于第一测试集pv_test,采用响应预测模型评估方法对5.1得到的5个基于第一训练集的响应预测模型进行评估,得到一个最佳的基于第一训练集的响应预测模型,方法是:6.2.1基于第一测试集pv_test分别计算5个响应预测模型的准确率ACC、灵敏度Sensitivity、特异度Specificity、F1Score、阳性预测值PPV、阴性预测值NPV、AUC值、布里尔Brier分数这8个评价指标;6.2.1.1采用指标计算方法计算pv_LR模型的8个评价指标:6.2.1.1.1将第一测试集的M”位患者输入5.1.1建立的pv_LR模型中,pv_LR预测模型输出M”位患者对亚甲蓝药物响应的结果即有响应1,无响应0,以及M”位患者对亚甲蓝药物响应的概率值,通过统计实际标签与预测标签,对混淆矩阵A进行填充,得到填充后的混淆矩阵A,即a11=TP,a12=FP,a21=FN,a22=TN,其中,TP表示pv_LR模型对M”位患者中实际对亚甲蓝有响应被正确预测为有响应的患者数量;FP表示pv_LR模型对M”位患者中实际对亚甲蓝无响应被错误预测为有响应的患者数量;FN表示pv_LR模型对M”位患者中实际对亚甲蓝有响应被错误预测为无响应的患者数量;TN表示pv_LR模型对M”位患者中实际对亚甲蓝无响应被正确预测为无响应的患者数量,TP+TN+FP+FN=M”;6.2.1.1.2基于填充后的混淆矩阵A,计算8种评价指标:6.2.1.1.2.1计算准确率ACC:分类模型正确预测的样本数占总样本数的比例: 6.2.1.1.2.2计算灵敏度Sensitivity:分类模型正确预测为正例的样本数占所有正例样本数的比例: 6.2.1.1.2.3计算特异度Specificity:分类模型正确预测为反例的样本数占所有反例样本数的比例: 6.2.1.1.2.4计算F1-分数F1Score:精确度precision和召回率recall的调和平均值: 6.2.1.1.2.5计算阳性预测值PPV:分类模型预测为正例的样本中真正为正例的比例: 6.2.1.1.2.6计算阴性预测值NPV:分类模型预测为反例的样本中真正为反例的比例: 6.2.1.1.2.7计算AUC:受试者工作特征曲线即ROC曲线下面积,计算公式为: 6.2.1.1.2.8计算布里尔分数BrierScore:衡量分类问题中模型预测结果与实际结果之间的差距,取值范围在0~1之间,值越小表示模型的预测准确性越高; 其中,M”表示pv_test中样本量,fj是响应预测模型对pv_test中患者j的预测概率,oj是pv_test中患者j的实际类别标签,通常取0或1;6.2.1.2采用6.2.1.1步所述指标计算方法计算pv_RF模型的8个评价指标:6.2.1.3采用6.2.1.1步所述指标计算方法计算pv_EBM模型的8个评价指标:6.2.1.4采用6.2.1.1步所述指标计算方法计算pv_SVM模型的8个评价指标:6.2.1.5采用6.2.1.1步所述指标计算方法计算pv_LightGBM模型的8个评价指标:6.2.2准确率Accuracy、灵敏度Sensitivity、特异度Specificity、F1Score、阳性预测值PPV、阴性预测值NPV、AUC值都是越大越好,布里尔Brier分数是越小越好,根据这8个评价指标来评估5个模型的表现;5个模型中,若这些指标达到最优值的数量相同,则优先选择Accuracy和AUC值更好的模型,得到5.1得到的5个模型中最佳的基于第一训练集的响应预测模型,简称第一最佳模型;6.3基于第二测试集ml_test,采用6.2步所述响应预测模型评估方法对5.2得到的5个基于第二训练集的响应预测模型进行评估,得到一个最佳的基于第二训练集的响应预测模型,简称第二最佳模型;6.4基于第一训练集pv_test绘制第一最佳模型的3种可视化曲线即ROC曲线、校准曲线、临床决策曲线DCA,基于第二训练集ml_test绘制第二最佳模型的3种可视化曲线;比较第一最佳模型和第二最佳模型在3种可视化曲线中的表现,选择在可视化曲线中表现更好的数量较多的模型,即为最终的响应预测模型;将最终的响应预测模型及其使用的训练集发送给模型解释子模块,训练集中包含t个特征,t=t1或t2;第七步,模型解释子模块对最终的响应预测模型采用SHAP解释器进行全局解释和局部解释,得到最终的预测模型和具有可解释性的感染性休克患者亚甲蓝治疗响应预测系统;7.1模型解释子模块是采用python开发的一个“模型解释包”shap实现的SHAP解释器,使用时需要先安装shap包,通过importshap语句导入SHAP库;7.2使用“shap.Explainer”类初始化SHAP解释器,将最终的响应预测模型使用的训练集和最终的响应预测模型输入SHAP解释器中,完成SHAP解释器的初始化,得到初始化后的SHAP解释器;7.3通过SHAP解释器中的“shap_values”函数计算最终的响应预测模型使用的训练集中t个特征的SHAP值,并计算最终的响应预测模型使用的训练集中的t个特征的SHAP值的绝对值的平均值avg_shap_1,…,avg_shap_f,…,avg_shap_t,f为正整数且1≤f≤t;7.4对最终的响应预测模型进行全局解释,以avg_shap_1,…,avg_shap_f,…,avg_shap_t作为t个特征对亚甲蓝药物响应预测的重要性程度;通过SHAP解释器中的“summary_plot”可视化函数得到一张t个特征对模型预测重要性的排序图;找到avg_shap_1,…,avg_shap_f,…,avg_shap_t中小于阈值threshold的特征,令avg_shap_1,…,avg_shap_f,…,avg_shap_t中小于threshold的特征个数为t3,则这t3个特征是对亚甲蓝药物响应的关键特征,t3t,t3为正整数;7.5对最终的响应预测模型进行局部解释,即解释t个特征如何影响预测模型对单个患者的预测结果;通过SHAP解释器中的“waterfall”可视化函数,对7.3步计算的任意一个患者X1的t个特征的SHAP值进行可视化,生成一张X1的瀑布图,在X1的瀑布图中,E[fX1]表示模型的初始预测偏差,fX1表示模型对于给定样本X1的预测输出值,每个特征对于模型输出的影响以柱状图的形式展现,红色条形表示特征对预测起正向作用,蓝色条形表示特征对预测起负向作用;每个特征的柱状图的高度表示了该特征对于模型输出的影响的大小,X1的瀑布图展示各个特征对患者X1响应预测结果的贡献;7.6最终的响应预测模型与初始化后的SHAP解释器一起构成响应预测模块中最终的预测模型,此时得到最佳的具有可解释性的感染性休克患者亚甲蓝治疗响应预测系统;第八步,最终的具有可解释性的感染性休克患者亚甲蓝治疗响应预测系统对用户输入的患者数据X进行预测,得到预测结果,方法是:8.1数据预处理模块对用户输入的患者数据X进行预处理,方法是:8.1.1对X进行数据清理;检查X中特征是否存在缺失值或异常值,如果存在,使用最终的响应预测模型的训练集中该特征的平均值进行填充,得到清理后的数据X';8.1.2对X'进行数据变换;对于X中的连续型特征,基于最终的响应预测模型的训练集中对应特征的均值和方差,使用Z-Score标准化法对特征进行数据标准化得到标准化后的数据X”;对X”中的分类型特征进行独热编码,得到预处理后的感染性休克患者数据X”',将X”'发送给响应预测模块中的预测模型;8.2响应预测模块的预测模型中最终的响应预测模型对X”'进行预测,得到该患者对于亚甲蓝药物有无响应的预测结果,即有响应或无响应;8.3响应预测模块的预测模型中的SHAP解释器计算X”'中各个特征对亚甲蓝药物响应预测的SHAP值,采用7.5步所述的“waterfall”可视化函数对SHAP值进行可视化,生成X的瀑布图,X的瀑布图中,E[fX]表示模型的初始预测偏差,fX表示模型对于X的预测输出值,每个特征对于模型输出的影响以柱状图的形式展现,红色条形表示特征对预测起正向作用,蓝色条形表示特征对预测起负向作用;X的瀑布图展示各个特征对该患者X响应预测结果的贡献。
全文数据:
权利要求:
百度查询: 中南大学 基于可解释模型预测感染性休克者亚甲蓝治疗响应的方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。