当前位置:首页 > 莘可佳 > 正文

无代码工具的AI系统可预测患者心脏病发作

摘要: 据报道,在过去一年里,机器学习和人工智能技术取得了重大发展,尤其是美国OpenAI公司的DALL-E模型等先进算法,已证实...

无代码工具的AI系统可预测患者心脏病发作

  据报道,在过去一年里,机器学习和人工智能技术取得了重大发展,尤其是美国OpenAI公司的DALL-E模型等先进算法,已证实具有基于文本提示性语言即能生成图像的能力,而且相关算法不断完善,有人甚至认为,人工智能现已获得感知能力,可以预测患者心脏病发作!

  我们所谓的“人工智能”依赖于使用人类开发的统计方法,从数据中构建算法模型,它的成功与失败,同样引人关注。依据错误的数据构建模型,人们会获得错误的预测和结果,例如:2016年,微软公司在推特上发布了AI聊天机器人——Tay,希望实现与用户进行随意且有趣的对话,但是这款聊天机器人“学坏”了,不但辱骂用户,还发表涉及种族歧视的不恰当言论,随后微软致歉并紧急修复。

  无代码工具仅是一个“简单按钮”?

  近年来,模型工具不断完善,越来越多的“无代码”和“低代码”机器学习工具正在使机器学习任务变得更易实现,使曾经是数据科学家和程序员才能获得的机器学习分析功能,现面向业务分析师和其他非编程用户开放。

  虽然DALL-E模型的功能强大到令人震惊,并能对网络表情包、深度伪造技术和其他带有提示性语言的网络图像产生影响,但易于使用的机器学习分析涉及企业和个人每天创建和使用的各种数据。

  目前,机器学习供应商吹嘘他们的产品仅是一个“简单按钮”,能轻易发现数据中可能并不明显的关联性,揭示数据点和整体结果之间的相关性,并向用户提出解决方案,相比之下,传统商业分析需要几天、几个月或者几年时间才能通过传统统计学或者定量分析找到答案。

  现在研究人员准备执行一个约翰·亨利式的测试:找出不需要代码的工具是否可以超过基于代码的方法,或者至少交付足够准确的结果,比数据科学家计费工时更低的成本做出决策,但进行测试之前,我们需要正确的数据和正确的方法。

  保留表格数据

  亚马逊SageMaker Canvas和类似的产品,例如:谷歌AutoML Tabular,都专注于处理该类型的数据集,但这些工具不适合用于情感分析、图像识别或者其他非结构化数据的自然语言处理。

  然而,在表格数据领域里也存在着许多问题,例如:几年前,研究人员访问过GE软件公司,了解该公司在Predix平台方面的工作,Predix是一种基于机器学习的系统,用于建模和预测设备故障,从而实现维护系统时进行预测性优化维护,以防止配电、飞机引擎和其他复杂系统出现重大故障或者中断。这些模型建立在大量表格数据基础之上,相关数据源于设备传感器的遥测记录。

  上次我们尝试使用机器学习时,我们有很多行表格数据,但并不足以完成当时的复杂任务(实际上可能再多的标题数据也无法回答我们试图揭晓的问题),为了避免之前出现的错误,并为工具提出一个更现实的问题,我们需要一个表格数据集,其提供了数值和类别数据,我们可以利用它完成一个更直接的问题——什么数据组合导致系统失效?

  我们寻找了一些数据源,首先它们代表可以应用机器学习的真实环境条件,并且包含从模式获得的多数据点信息,同时,我们希望验证一下亚马逊SageMaker Canvas最新的“无代码”工具在处理任务方面效果如何,如果可能的话,我们希望数据科学家成功记录存在问题的数据集。

  这些期望很快缩小了该研究领域范围,我们没有通用电气遥测数据湖,但我们可以利用一些公共数据源,至少能为算法模型制作提供一些帮助,因此,我们继续“挖掘”,发现了一个数据集,这与治疗心脏病突发同样重要。

  数据模型工具

  在搜索一些可靠数据集时,我们从美国加州大学欧文分校的机器学习库中发现一个名为“心脏健康”的数据集,该数据集包括科学家拉什克·拉曼(Rashik Raman)发布在机器学习社区Kaggle上的数据,它经常被用于证明机器学习在医学领域的可行性。关于这些数据,我们知道一件事是肯定的:其他人已经成功地基于这些数据建立了模型工具。

  加州大学欧文分校的心脏病患者数据包含了克利夫兰诊所303位匿名患者和14个心脏健康数据点,以及他们是否有心脏病发作或者其他急性心脏健康事件的病史数据,每个患者的14个心脏数据点包括:患者年龄;患者性别;患者是否有运动性心绞痛(exng);患者所经历的胸痛类型(典型心绞痛、非典型心绞痛、非心绞痛或无症状);静息血压(trtbpd);血液胆固醇指数;布林值表示的空腹血糖是否大于120毫克/分升;静息心电图结果分类:正常、ST-T波异常或者Romhilt-Estes计分系统可能确定的左心室肥厚;最大心率指数;相对于休息的运动引起ST降低的心电图测量;血管造影显示的血管阻塞状况;患者是否患有地中海贫血症——1表示不存在,2表示可纠正,3表示不可纠正;输出结果——无论患者最终是否患有心脏病或者类似的急性心脏病,原始数据包括四类心脏病事件,简化起见,该数据已修改为二进制输出值(0表示没有心脏病史,1表示有心脏病史)。

  14个数据点中,仅有5个是真实数值,其余的分为两种类型(胸痛或者无胸痛、男性或者女性),或者有几种不同的诊断信息。

  克利夫兰诊所的303位匿名患者心脏数据,它是最完整的数据,数据库中几乎所有数值行都有相关输入信息。但存在的缺陷是,303位匿名患者数据可能不足以预测机器学习算法中获得高精准性。

  克利夫兰诊所的303位匿名患者心脏数据中,165位患者曾出现心脏病发作,该数据整体偏向于男性,男性患者共206人(数据代表了男性心脏病患病率,至少在当时是这样的),但还不清楚是否会因此产生一种非自然的偏见。

  我们希望了解数据点在统计上与其他变量和输出之间的密切关系,因此,我们使用Jupyter notebook(基于网页的交互计算应用程序),运行函数来计算皮尔逊相关系数——数据点之间线性关系的衡量标准,接近1(或者-1)的数值表示强相关(或者负相关),表明变量之间存在着密切联系。

  我们最感兴趣的都是与输出相关的数据,运动后心电图测试的胸痛、最大心率、运动诱发心绞痛、ST波段异常,但各变量数据之间的相关性均不强,因此,我们希望获得一种方法从部分数据中得到一个精确模型。同时,有人声称基于该数据集的模型可获得90%的预测准确率,所以通过不断完善或将取得理想效果。

  “无代码”预测算法

  一种“无代码”方法是使用亚马逊SageMaker Canvas工具将数据集作为一个整体,自动将其划分为训练和测试,并生成一个预测算法。

  该方法主要使用Sagemaker Studio Jumpstart和AutoML的“无/低代码”方法,具体而言,AutoML负责处理SageMaker Canvas之后的数据,评估数据并尝试不同的算法类型,以确定最佳算法。完成之后,我们使用数据科学家曾使用过的机器学习检测方法进行验证,这样数据准确率达到90%以上。该方法的最终结果应该是一种算法,我们使用它来运行基于数据点的预测性查询,但真实结果是每次测试在完成时间、精度和计算时间成本方面的权衡。

发表评论