基于知识图的增强路径推理的可解释性疾病预测

2024-03-06 09:30

本文主要是介绍基于知识图的增强路径推理的可解释性疾病预测,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

代码地址:

https://github.com/ZJU-BMI/PBXAI

摘要

目的:结合医学知识和医学数据,以可解释的方式预测疾病风险。方法:我们将疾病预测任务表述为沿着知识图谱(KG)的随机游动。具体而言,我们根据经过验证的医学知识建立了一个KG,以记录疾病和危险因素之间的关系。然后,一个数学对象沿着KG走。它开始在患者实体处行走,该患者实体根据患者当前的疾病或风险因素将KG连接起来,并在代表所预测疾病的疾病实体处停止对象产生的轨迹代表给定患者的可解释的疾病进展路径。对象的动态由基于策略的强化学习(RL)模块控制,该模块由电子健康记录(EHR)进行训练。实验:我们利用了两个真实的EHR数据集来评估模型的性能。在疾病预测任务中,在两个数据集中预测53种循环系统疾病时,我们的模型在曲线下的宏区域(AUC)分别达到0.743和0.639。该性能可与医学研究中常用的机器学习(ML)模型相媲美。在定性分析中,我们的临床合作者回顾了我们模型产生的疾病进展路径,并主张其可解释性和可靠性。结论:实验结果验证了该模型在解释性评估和优化疾病预测中的有效性。启示:我们的工作有助于将医学知识和医学数据的潜力共同用于可解释的预测任务。

在这里插入图片描述

图1知识图上可解释的疾病预测 患者实体根据其疾病或危险因素连接KG。 然后,由RL代理控制的数学对象开始在患者实体处行走,而在疾病实体处停止行走。 终止的疾病实体是预测的疾病,对象的轨迹指示可解释的疾病进展路径

1)我们提出了一种新颖的基于KG的学习模型来预测疾病。 据我们所知,这是第一项通过将经过验证的医学知识整合到数据驱动模型中而可解释地解决疾病预测问题的研究。
2)我们建议为KG配备神经网络,以从大量EHR数据中学习表示形式。 结果证明,生成的知识路径大大改善了疾病预测的可解释性。
3)我们的方法在两个真实的临床数据集中得到了广泛的评估。 实验结果表明,我们的模型与在临床研究中广泛使用的最新机器学习方法一样有效。 专业临床医生还提倡该模型产生的可解释的疾病进展路径的可靠性。

相关工作

可解释医疗模型

从技术角度来看,现有可解释的疾病预测模型可以粗略地分为四个亚型[6]。 1)基于注意力的方法。基于注意力的模型利用神经网络为每个特征分配特定于样本的权重作为解释。例如,Choi等。 [7]和尹等。 [15]采用注意机制和递归神经网络(RNN)分别以可解释的方式预测心力衰竭的发作。 2)模型不可知方法,其中局部可解释模型不可知解释(LIME)[16]和SHapley Additive ExPlanations(SHAP)[17]是两种代表性方法。通过将预测结果重新组织为给定样本特征的线性组合,模型不可知方法能够为任何无法解释的模型赋予解释性。例如Tseng等。利用随机森林预测急性肾损伤,他们采用SHAP将预测解释为给定特征的线性组合[18]。严等。他们使用卷积神经网络(CNN)来预测与年龄相关的黄斑变性,并采用LIME来解释这一预测[19]。 3)知识提炼方法。它利用一种精确但无法解释的方法作为主管来训练一个轻便,可解释的模型。与监督者相比,训练好的轻量级模型可以实现类似的性能,而不会损失可解释性。例如,Das等。 Che等人采用模糊规则的加权和来解释通过无法解释的基于核的方法进行的阿尔茨海默氏病的预测[8],Che等人。利用梯度提升树来解释由RNN进行的死亡率预测[20]。 4)修改本质上可以解释的模型。例如,Brisimi等。 [21]和Bernardini等。 [9]修订SVM分别预测患者的再入院率和糖尿病发作。总而言之,现有基于ML的疾病预测模型的可解释性取决于为每个特征分配特定的重要性权重(或得分),以表明其对预测的贡献。所有这四种类型的方法都是纯数据驱动的,无法利用现有的医学知识来提供可解释的预测。

利用医学知识的预测模型

据我们所知,现有的机器学习研究主要利用医学知识来学习医学概念的有效表示。 所学习的医学概念表示可以改善下游任务的性能,例如疾病风险预测。 例如,Choi等。 提出的GRAM,它利用国际疾病分类(ICD)编码系统的层次结构和注意力机制来学习疾病概念的表示,然后将学习到的表示应用于疾病预测任务中。 三项独立研究的实验结果表明,该方法可以显着提高预测罕见病发作的性能。 张等。 和尹等人。 利用TransE和图注意力网络从一个名为KnowLife的幼稚园学习医学概念的表示[22],他们将学到的表示应用于预测心力衰竭的发作[13],[23]。尽管这些研究证明了引入医学知识的功效,但他们并未提出透明模型,其决策过程对于临床医生而言是可以理解的,我们将在本研究中解决这些模型。

基于路径的可解释推荐器

基于路径的方法是推荐系统中一种新兴的可解释方法[24]。例如,西安等。 [25]和Zhang等。 [26]已经利用这种方法为客户实现了可解释的个性化推荐。基于路径的方法的核心是构建一个大图,称为异构信息网络(HIN),以记录所有客户,产品,评论及其关系。之后,通过沿HIN生成推荐路径来为客户推荐产品。现有的基于路径的方法研究通常利用经过大量购买数据训练的RL代理来生成推荐产品以及推荐路径[27],[28]。因为路径具有明确的语义解释,所以基于路径的方法被视为可解释的方法。
受到基于路径的方法的启发,我们在本研究中建立了一个KG以记录经过验证的医学知识,并根据患者的疾病和危险因素将其连接到KG。之后,我们使用基于路径的方法是推荐系统中一种新兴的可解释方法[24]。例如,西安等。 [25]和Zhang等。 [26]已经利用这种方法为客户实现了可解释的个性化推荐。基于路径的方法的核心是构建一个大图,称为异构信息网络(HIN),以记录所有客户,产品,评论及其关系。之后,通过沿HIN生成推荐路径来为客户推荐产品。现有的基于路径的方法研究通常利用经过大量购买数据训练的RL代理来生成推荐产品以及推荐路径[27],[28]。因为路径具有明确的语义解释,所以基于路径的方法被视为可解释的方法。
受到基于路径的方法的启发,我们在本研究中建立了一个KG,以记录经过验证的医学知识,并根据患者的疾病和危险因素将其连接到KG。之后,我们使用EHR数据来训练RL代理。受过训练的RL代理商可以沿KG生成预测的疾病和疾病进展路径作为解释。值得注意的是,我们不是第一个在医学研究中引入基于路径的方法的人。徐等。首先在疾病预测中利用了基于路径的方法[29]。但是,他们的模型没有利用经过验证的医学知识,也无法为看不见的患者预测疾病。在这项研究中,我们仔细解决了这些缺陷,以确保我们的模型具有在实际临床环境中部署的潜力。

这篇关于基于知识图的增强路径推理的可解释性疾病预测的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/779588

相关文章

python获取当前文件和目录路径的方法详解

《python获取当前文件和目录路径的方法详解》:本文主要介绍Python中获取当前文件路径和目录的方法,包括使用__file__关键字、os.path.abspath、os.path.realp... 目录1、获取当前文件路径2、获取当前文件所在目录3、os.path.abspath和os.path.re

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

hdu2544(单源最短路径)

模板题: //题意:求1到n的最短路径,模板题#include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<queue>#include<set>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#i

sqlite3 相关知识

WAL 模式 VS 回滚模式 特性WAL 模式回滚模式(Rollback Journal)定义使用写前日志来记录变更。使用回滚日志来记录事务的所有修改。特点更高的并发性和性能;支持多读者和单写者。支持安全的事务回滚,但并发性较低。性能写入性能更好,尤其是读多写少的场景。写操作会造成较大的性能开销,尤其是在事务开始时。写入流程数据首先写入 WAL 文件,然后才从 WAL 刷新到主数据库。数据在开始

poj 1734 (floyd求最小环并打印路径)

题意: 求图中的一个最小环,并打印路径。 解析: ans 保存最小环长度。 一直wa,最后终于找到原因,inf开太大爆掉了。。。 虽然0x3f3f3f3f用memset好用,但是还是有局限性。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#incl

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

【408DS算法题】039进阶-判断图中路径是否存在

Index 题目分析实现总结 题目 对于给定的图G,设计函数实现判断G中是否含有从start结点到stop结点的路径。 分析实现 对于图的路径的存在性判断,有两种做法:(本文的实现均基于邻接矩阵存储方式的图) 1.图的BFS BFS的思路相对比较直观——从起始结点出发进行层次遍历,遍历过程中遇到结点i就表示存在路径start->i,故只需判断每个结点i是否就是stop

Android Environment 获取的路径问题

1. 以获取 /System 路径为例 /*** Return root of the "system" partition holding the core Android OS.* Always present and mounted read-only.*/public static @NonNull File getRootDirectory() {return DIR_ANDR

图的最短路径算法——《啊哈!算法》

图的实现方式 邻接矩阵法 int[][] map;// 图的邻接矩阵存储法map = new int[5][5];map[0] = new int[] {0, 1, 2, 3, 4};map[1] = new int[] {1, 0, 2, 6, 4};map[2] = new int[] {2, 999, 0, 3, 999};map[3] = new int[] {3, 7

vcpkg子包路径批量获取

获取vcpkg 子包的路径,并拼接为set(CMAKE_PREFIX_PATH “拼接路径” ) import osdef find_directories_with_subdirs(root_dir):# 构建根目录下的 "packages" 文件夹路径root_packages_dir = os.path.join(root_dir, "packages")# 如果 "packages"