数据挖掘和分析的最核心也最重要的问题就是“预测”。
广义的“预测”即包含预测事物未来走势,也包括预测事物之间隐藏的关联。
例如在医疗健康领域,找到事物之间隐藏关联对于辅助诊断、知识发现等有重要的意义。
解决方案
任务/目标
从电子病历中提取患者的疾病信息,构建疾病关联网络,并据此进行并发症预测。
数据源准备
电子病历作为医疗信息的重要载体,有很大的挖掘空间和意义。同时,由于中文的多义性、表述不规范性,分析自然语言书写的电子病历也带来很大挑战。
根据提取数据要求的不同,可以采用不同方式处理中文文本。例如在这个工作中,采取中文分词、术语词典比对等方式,提取病历中关键信息。对于要求更高的数据,则可采取词向量、命名实体识别等方法提取数据特征。
数据清洗和初步统计
数据清洗的目的是去除无效数据、不完整数据、前后不一致数据等。
在病历数据特征提取中,去除患者隐私信息,保留基础信息,剔除无效诊断病历,剔除极罕见诊断数据(因其在病历中所占比例过小,无法进行学习和分析,存在过拟合可能)。
接下来,对数据进行初步统计形成数据概览。这一步的目的是为了加强对数据整体认识,确认数据质量,判断数据是否存在不合理的分布。
由于本项目旨在“知识发现”,因此所有数据均作为学习训练集,发现的“知识”采用发表文献验证的方式进行检验和验证。
关联网络 构造
挖掘特征之间的关联采用基于传统Apriori的FP-growth关联规则挖掘算法。对于挖掘出的规则,置信度和提升度是重要的评价值指标。根据置信度和提升度的分布情况,设定阈值,确定哪些特征之间可能存在较强关联。
在此基础上,构建疾病关联网络。
基于链路预测技术构建预测系统
针对复杂网络中关联分析和挖掘,可以采用链路预测技术对潜在事物之间关联进行预测分析。
链路预测旨在根据观察到的网络中的链接和节点的拓扑性质,预测任意两个节点之间存在链接的可能性
关联规则挖掘结果:
在关联规则挖掘中,共计生成1800多条规则,提升度区间为0.12-60.19,置信度区间为0.01-1。下表列举10个排名靠前的关联规则:
随时关注您喜欢的主题
关联网络构建结果:
构建疾病关联网络,使用cytoscape绘制网络图:
单纯由图即可发现,对于大多数疾病,与其强烈相关的疾病数量并不多,而放大部分疾病关联程度较高,表明这个区域的疾病往往伴随多种临床并发症。
链路预测结果
在关联网络中,采用链路预测技术预测潜在的“边”(即疾病之间的关联)。
结果发现呼吸系统常见病往往伴有其他呼吸系统疾病和内分泌系统疾病:
链路预测部分结果见下表:
新发现的知识(疾病关联)采用文献验证的方式进行检验,发现在很多人的研究中确有相关报道,说明了预测模型的有效性。
当然,预测结果还可以通过真实病历信息进行进一步评估和分析。例如,将训练数据进行一定比例分割划分训练集和测试集,在测试集中验证预测结果的准确性。
关于作者
Davis Luo
在此对Davis Luo对本文所作的贡献表示诚挚感谢,他毕业于上海交通大学,专注深度学习、医疗数据分析、复杂网络分析、数学建模领域。擅长Python、Matlab等数据分析软件等。