jjzjj

《天池精准医疗大赛-人工智能辅助糖尿病遗传风险预测》模型复现和数据挖掘-论文_企业

python风控模型 2023-06-15 原文

大赛概况

进入21世纪,生命科学特别是基因科技已经广泛而且深刻影响到每个人的健康生活,于此同时,科学家们借助基因科技史无前例的用一种全新的视角解读生命和探究疾病本质。人工智能(AI)能够处理分析海量医疗健康数据,通过认知分析获取洞察,服务于政府、健康医疗机构、制药企业及患者,实现个性化,可以循证的智慧医疗,推动创新,实现价值。

心血管病、糖尿病等慢性疾病,每年导致的死亡人数占总死亡人数的80%,每年用于慢病医疗费用占中国公共医疗卫生支出的比例超过13%。作为一种常见慢性疾病,糖尿病目前无法根治,但却能通过科学有效的干预、预防和治疗,来降低发病率和提高患者的生活质量。阿里云联合青梧桐健康科技有限公司主办天池精准医疗大赛——人工智能辅助糖尿病遗传风险预测,希望用人工智能的方法和思想处理、分析、解读和应用糖尿病相关大数据,让参赛选手设计高精度,高效,且解释性强的算法来挑战糖尿病精准预测这一科学难题,为学术界和精准医疗提供有力的技术支撑,帮助我们攻克糖尿病。

糖尿病概述

我国有1.1亿人患有糖尿病,是世界上糖尿病患者最多的国家,每年用于糖尿病的医疗费用超过3000亿。糖尿病有一型和二型,是由于胰腺分泌胰岛素紊乱或人体无法有效利用其产生的胰岛素而发生的一种慢性疾病,是21世纪人类面临的健康问题之一.糖尿病伴有弥漫性并发症,其包括心血管病变、肾脏疾病、高血压、中风等、眼部疾病、下肢截肢上百种,由此增加了过早死亡的风险.因此,糖尿病防治形势十分严峻.

下右图为糖尿病视网膜病变

2019年估算中国糖尿病患病率排名世界第二

中国糖尿病患者数量位居世界第一。中国是糖尿病最大药物研发市场。越来越多年轻人也加入糖尿病市场,成为药企摇钱树。

下图为中国糖尿病患病率历史数据

糖尿病给经济带来巨大负担
糖尿病也给经济带来了巨大的负担,每年诊断出的糖尿病成本约为 3270 亿美元,而未确诊的糖尿病和前驱糖尿病的总成本接近 4000 亿美元。

糖尿病可预防

虽然糖尿病无法治愈,但减肥、健康饮食、积极运动和接受药物治疗等策略可以减轻这种疾病对许多患者的危害。早期诊断可以改变生活方式和更有效的治疗,使糖尿病风险预测模型成为公共和公共卫生官员的重要工具。

糖尿病致病因子多样化
虽然有不同类型的糖尿病,但 II 型糖尿病是最常见的形式,其患病率因年龄、教育程度、收入、地点、种族和其他健康的社会决定因素而异。这种疾病的大部分负担也落在社会经济地位较低的人身上。
本实验就是通过建立人工智能机器学习模型,预测糖尿病概率和挖掘糖尿病重要致病因子。

糖尿病建模数据集介绍

糖尿病数据集来源《天池精准医疗大赛——人工智能辅助糖尿病遗传风险预测》的糖尿病数据集。数据集包含六千多条数据,41个变量。变量包括:性别    年龄    体检日期    天门冬氨酸氨基转换酶    丙氨酸氨基转换酶    碱性磷酸酶    r-谷氨酰基转换酶    总蛋白    白蛋白    球蛋白    白球比例    甘油三酯    总胆固醇    高密度脂蛋白胆固醇    低密度脂蛋白胆固醇    尿素    肌酐    尿酸    乙肝表面抗原    乙肝表面抗体    乙肝e抗原    乙肝e抗体    乙肝核心抗体    白细胞计数    红细胞计数    血红蛋白    红细胞压积    红细胞平均体积    红细胞平均血红蛋白量    红细胞平均血红蛋白浓度    红细胞体积分布宽度    血小板计数    血小板平均体积    血小板体积分布宽度    血小板比积    中性粒细胞%    淋巴细胞%    单核细胞%    嗜酸细胞%    嗜碱细胞%。变量主要为血常规检测指标。

《天池精准医疗大赛——人工智能辅助糖尿病遗传风险预测》的糖尿病数据集一览如下图

通过对病人的临床数据和体检指标来预测其血糖值。 大赛提供的训练数据包含病人的性别、体检日期以及血常规、肾功能检查等指标, 每个指标分别作为一个字段储存在数据表中。最后一列为我们要预测的血糖值。

模型价值和意义

通过我们建立的人工智能机器学习预测模型,可实现以下一些研究问题:
1.模型能准确预测个人血糖值高低。
2.模型能挖掘哪些风险因素最能预测糖尿病风险。
3.我们能使用风险因素的一个子集来准确预测一个人血糖值高低。
4.我们可以使用筛选几个重要糖尿病致病特征,然后组合创建为一个简短的问题,以准确预测某人是否可能患有糖尿病或是否有糖尿病的高风险。

老规矩,不要急着建模,先做描述性统计,投石问路。

变量相关性分析热力图如下,相关性高的变量有很多,例如血小板比积和血小板计数相关性高于0.9.

绘制变量的小提琴图如下

来看看血糖变量的小提琴图

变量散点图如下

为了更好观察变量分布,我们绘制变量的直方图如下,年龄等多个变量呈现正态分布。

我方模型质量较好,MAE 0.6863658764353456,非常低。MAE是评估机器学习回顾模型的主要指标,该值越低越好,反之亦然。

我方模型挖掘变量重要性排序如下,我们发现年龄,甘油三酯,r-谷氨酰基转换酶,性别,红细胞体积分布宽度为主要变量。

拔出萝卜带出泥,我们来观察变量的定量分析。

年龄越大,糖尿病风险越高年龄越小,糖尿病风险越小。当然会有例外,我们这里分析的是主要趋势,不是个例。人体器官是注定会不断老化的,我们虽然不能阻止老化.但有养生之道延缓老化速度我经常锻炼身体的体育馆看到一些老人80岁+,看起来肌肉仍有轮廓,外表像60-70岁。
 

甘油三酯越大,糖尿病风险越高,甘油三酯越小,糖尿病风险越小。
 

血清甘油三酯的正常参考值:0.45~1.69mmol/L。依据2007年《中国成人血脂异常防治指南》地划分标准,空腹 (禁食12小时)甘油三酯在1.70mmol/L以下为适当水平;1.70-2.25mmol/L为边缘升高;≥2.26mmol/L为升高。

我们吃的食物中有很多东西就有甘油三酯,例如植物油,肉,含糖高饮品和食物。甘油三酯高不能喝酒,饮酒会加重甘油三酯进一步升高或诱发急性胰腺炎。

Toby老师提醒一下甘油三酯并非完全负面,它也有许多作用,具体作用如下。
第一、储存能量。它可以给人体提供热量,脂肪被燃烧后形成二氧化碳和水,释放热量,它是人体供能的重要部分,是人体所需的基础营养物质,能够被人体充分吸收代谢。
第二、增加各种营养物质的吸收能力。甘油三酯能够促进人体对于维生素、氨基酸等营养物质的吸收,维持人体的营养平衡,各种脂溶性维生素的吸收,都需要甘油三酯的帮助。人体的神经系统,尤其是脑部的神经敏感性,需要甘油三酯的帮助。
第三,保温作用。我们人体皮肤下面沉积较厚的脂肪层,越是寒冷的冬天脂肪层越厚,有利于保温御寒。
第四,保护重要器官。人体重要器官的表面都有厚厚的脂肪层覆盖,这些油脂就是用来保护脏器,免受外力伤害,同时在剧烈运动或者撞击中起到减震作用。

甘油三酯超量坏处
当我们的饮食过好、过多,吃进去的甘油三酯无法消耗完,人就会逐渐地变胖,血脂就会升高。甘油三酯升高后会有以下坏处:
一、导致胰岛素抵抗,诱发糖尿病。人体内甘油三酯积蓄过多,除了发胖之外,还会造成胰岛素不敏感,出现胰岛素抵抗,就会诱发糖尿病、冠心病、脑梗塞等。
二、诱发急性胰腺炎。如果体内的甘油三酯超过了5.6mmol/L时,非常容易诱发急性胰腺炎。

我们再来看看r-谷氨酰转移酶和糖尿病关系

如下图趋势:r-谷氨酰转移酶越高,糖尿病风险越高。

r-谷氨酰转移酶升高一般出于下面场景:

(1)胆道阻塞性疾病:原发性胆汁性肝硬化、硬化性胆管炎等所致的慢性胆汁淤积,肝癌时由于肝内阻塞,诱使肝细胞产生多量GGT同时癌细胞也合成GGT均可使GGT明显升高,可达参考值上限的10倍以上。此时GGT、ALP、5-核苷酸酶(5-NT)、亮氨酸氨基肽酶(LAP)及血清胆红素呈平行增加。
(2)急、慢性病毒性肝炎、肝硬化:急性肝炎时,GGT呈中等度升高;慢性肝炎、肝硬化的非洁动期,酶活性正常,若GGT持续升高,提示病变洁动或病情恶化。
(3)急、慢性酒精性肝炎、药物性肝炎:GGT可呈明显或中度以上升高(300~1000UL),ALT和AST仅轻度增高,甚至正常。酗酒者当其戒酒后GGT可随之下降。
(4)其他:脂肪肝、胰腺炎、胰腺肿瘤、前列腺肿瘤等GGT亦可轻度增高。

r-谷氨酰转移酶主要临床参考意义在肝脏。随着建模和数据挖掘,我们发现r-谷氨酰转移酶和血糖值也有一定联系。

在参考论文:r-谷氨酰转移酶VS 糖尿病,观察性研究中,高水平的血清 γ-谷氨酰转移酶 (GGT) 与前驱糖尿病和 2 型糖尿病的风险增加有关。

在美国NCBI发表文章显示:测量 2 型糖尿病患者 FDR 中的 GGT 可能有助于评估糖尿病风险;长期高 GGT 的人应被视为糖尿病的高危人群。

我们再来看看性别和糖尿病关系。我们把“男”替换为0,“女” 替换为1,缺失替换为0。从下图分析中,我们观察到男性患糖尿病风险更高。

According to the Centers for Disease Control and Prevention (CDC) , men are more likely to receive a diagnosis of diabetes than women. However, some research suggests that women with diabetes may be more likely to develop complications than men.
Toby老师从美国疾控中心查找一些辅助证明材料。美国疾病控制和预防中心 (CDC) 的数据显示:男性比女性更容易被诊断为糖尿病。然而,一些研究表明,患有糖尿病的女性可能比男性更容易出现并发症。
男性比女性更容易患上2 型糖尿病。一个原因是男性在他们的腹部储存了更多的脂肪——这是一个已知的风险因素。患有未确诊糖尿病的男性多于女性

Toby老师在其他糖尿病数据集实验中,发现不同算法得到结论不一样,有的算法认为性别变量很重要,有的算法认为不重要。Toby老师认为性别变量还需要更多数据科学实验观察和临床观察。此变量还有争议,不要急着下结论。

通过对天池糖尿病建模和数据挖掘后,我们得到很多高价值信息。

糖尿病是潘多拉魔盒,血糖异常后,五脏六腑都可能受到影响。通过此次建模,我们挖掘出糖尿病相关重要因子:年龄,甘油三酯,r-谷氨酰转移酶,性别等等。
不足的是此数据集变量有限,糖尿病其它重要相关变量还包括BMI指数。
Toby老师提醒一下,数据挖掘结果要和专业医生临床经验交叉验证。我这次数据挖掘结果和诸多权威机构发布数据结论是一致的,参考价值非常高。

模型启示录1-控制甘油三脂含量。

控制甘油三酯方法为多运动,用餐八分饱,控制糖类食物摄入量。

模型启示录2

年龄-适当锻炼,让身体更年期

模型启示录3-定期体检,观察r-谷氨酰转移酶指标

如果r-谷氨酰转移酶指标值过高,需要警惕和随访医生。

糖尿病可防可控,从预防做起,可限制降低糖尿病患病概率,减少政府医疗开支负担。

如果您们对糖尿病模型项目感兴趣,欢迎各大医疗机构,科研机构,生物医药企业留言。

人工智能让生活更美好!

《天池精准医疗大赛-人工智能辅助糖尿病遗传风险预测》模型复现和数据挖掘-论文

版权声明:文章来自公众号(python生物信息学),未经许可,不得抄袭。遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
 


 

有关《天池精准医疗大赛-人工智能辅助糖尿病遗传风险预测》模型复现和数据挖掘-论文_企业的更多相关文章

  1. ruby-on-rails - Rails - 子类化模型的设计模式是什么? - 2

    我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

  2. ruby-on-rails - Rails - 一个 View 中的多个模型 - 2

    我需要从一个View访问多个模型。以前,我的links_controller仅用于提供以不同方式排序的链接资源。现在我想包括一个部分(我假设)显示按分数排序的顶级用户(@users=User.all.sort_by(&:score))我知道我可以将此代码插入每个链接操作并从View访问它,但这似乎不是“ruby方式”,我将需要在不久的将来访问更多模型。这可能会变得很脏,是否有针对这种情况的任何技术?注意事项:我认为我的应用程序正朝着单一格式和动态页面内容的方向发展,本质上是一个典型的网络应用程序。我知道before_filter但考虑到我希望应用程序进入的方向,这似乎很麻烦。最终从任何

  3. ruby-on-rails - 在混合/模块中覆盖模型的属性访问器 - 2

    我有一个包含模块的模型。我想在模块中覆盖模型的访问器方法。例如:classBlah这显然行不通。有什么想法可以实现吗? 最佳答案 您的代码看起来是正确的。我们正在毫无困难地使用这个确切的模式。如果我没记错的话,Rails使用#method_missing作为属性setter,因此您的模块将优先,阻止ActiveRecord的setter。如果您正在使用ActiveSupport::Concern(参见thisblogpost),那么您的实例方法需要进入一个特殊的模块:classBlah

  4. ruby-on-rails - 如何验证非模型(甚至非对象)字段 - 2

    我有一个表单,其中有很多字段取自数组(而不是模型或对象)。我如何验证这些字段的存在?solve_problem_pathdo|f|%>... 最佳答案 创建一个简单的类来包装请求参数并使用ActiveModel::Validations。#definedsomewhere,atthesimplest:require'ostruct'classSolvetrue#youcouldevencheckthesolutionwithavalidatorvalidatedoerrors.add(:base,"WRONG!!!")unlesss

  5. ruby-on-rails - form_for 中不在模型中的自定义字段 - 2

    我想向我的Controller传递一个参数,它是一个简单的复选框,但我不知道如何在模型的form_for中引入它,这是我的观点:{:id=>'go_finance'}do|f|%>Transferirde:para:Entrada:"input",:placeholder=>"Quantofoiganho?"%>Saída:"output",:placeholder=>"Quantofoigasto?"%>Nota:我想做一个额外的复选框,但我该怎么做,模型中没有一个对象,而是一个要检查的对象,以便在Controller中创建一个ifelse,如果没有检查,请帮助我,非常感谢,谢谢

  6. ruby-on-rails - 如何将验证与模型分开 - 2

    我有一些非常大的模型,我必须将它们迁移到最新版本的Rails。这些模型有相当多的验证(User有大约50个验证)。是否可以将所有这些验证移动到另一个文件中?说app/models/validations/user_validations.rb。如果可以,有人可以提供示例吗? 最佳答案 您可以为此使用关注点:#app/models/validations/user_validations.rbrequire'active_support/concern'moduleUserValidationsextendActiveSupport:

  7. ruby-on-rails - Rails 模型——非持久类成员或属性? - 2

    对于Rails模型,是否可以/建议让一个类的成员不持久保存到数据库中?我想将用户最后选择的类型存储在session变量中。由于我无法从我的模型中设置session变量,我想将值存储在一个“虚拟”类成员中,该成员只是将值传递回Controller。你能有这样的类(class)成员吗? 最佳答案 将非持久属性添加到Rails模型就像任何其他Ruby类一样:classUser扩展解释:在Ruby中,所有实例变量都是私有(private)的,不需要在赋值前定义。attr_accessor创建一个setter和getter方法:classUs

  8. ruby-on-rails - 如何使辅助方法在 Rails 集成测试中可用? - 2

    我在app/helpers/sessions_helper.rb中有一个帮助程序文件,其中包含一个方法my_preference,它返回当前登录用户的首选项。我想在集成测试中访问该方法。例如,这样我就可以在测试中使用getuser_path(my_preference)。在其他帖子中,我读到这可以通过在测试文件中包含requiresessions_helper来实现,但我仍然收到错误NameError:undefinedlocalvariableormethod'my_preference'.我做错了什么?require'test_helper'require'sessions_hel

  9. ruby-on-rails - Rails - 从另一个模型中创建一个模型的实例 - 2

    我有一个正在构建的应用程序,我需要一个模型来创建另一个模型的实例。我希望每辆车都有4个轮胎。汽车模型classCar轮胎模型classTire但是,在make_tires内部有一个错误,如果我为Tire尝试它,则没有用于创建或新建的activerecord方法。当我检查轮胎时,它没有这些方法。我该如何补救?错误是这样的:未定义的方法'create'forActiveRecord::AttributeMethods::Serialization::Tire::Module我测试了两个环境:测试和开发,它们都因相同的错误而失败。 最佳答案

  10. ruby-on-rails - Ruby 中的内存模型 - 2

    ruby如何管理内存。例如:如果我们在执行过程中采用C程序,则以下是内存模型。类似于这个ruby如何处理内存。C:__________________|||stack|||------------------||||------------------|||||Heap|||||__________________|||data|__________________|text|__________________Ruby:? 最佳答案 Ruby中没有“内存”这样的东西。Class#allocate分配一个对象并返回该对象。这就是程序

随机推荐