人工智能在医疗领域的应用实战(附源码)!

尽管人工智能在我们一部分人中引起了恐惧,但它也以多种方式让我们受益。医疗保健中的人工智能正在通过提供协助来彻底改变医疗行业。本篇博客将帮助您了解人工智能在医疗保健领域的积极影响。

以下是本文中将要涵盖的主题:

  1. 什么是人工智能?
  2. 医疗保健中的人工智能
  3. 什么是机器学习?
  4. 什么是深度学习?
  5. 动手实践

什么是人工智能?

人工智能是使用机器学习、深度学习、自然语言处理和许多其他技术来构建可以执行高级计算和解决复杂问题的人工智能模型的过程。

什么是人工智能 – 医疗保健中的人工智能 – Python技术站

现在让我们了解人工智能在医疗保健领域是如何应用的。

医疗保健中的人工智能

自 1950 年代引入人工智能以来,它一直在影响各个领域,包括市场营销、金融、游戏行业,甚至音乐艺术。然而,人工智能的最大影响是在医疗保健领域。PWC(Pricewaterhouse Coopers)最新报告显示,到2030年,人工智能将为世界经济额外贡献15.7万亿美元,其中影响最大的将是医疗保健领域。

在下面的部分中,您将了解如何使用 AI 来解决现实世界的问题。

数据管理中的人工智能

人工智能通过实施认知技术来解开大量医疗记录并执行强大的诊断,从而使医疗保健组织受益。以使用人工智能和机器学习来预测用户意图的预测服务提供商 Nuance 为例。

人工智能管理医疗数据 – 医疗保健中的人工智能 – Python技术站

在组织的工作流程中实施 Nuance,可以开发个性化的用户体验,使公司能够采取更好的服务来增强客户体验和整体的业务收益。

以下是 Nuance 的主要功能:

  • 提高服务效率:通过学习能够精准预测出用户的意图 ,并提出最准确的解决办法,确保满足消费者的实际需求。

  • 减少客户呼叫、咨询时间:预测客户的意图,并将客户转移到其他在线服务上,极大地减少了呼叫量和咨询时间,降低了大量成本。

  • 减少客户流失:使用机器学习和自然语言处理技术,根据客户的历史数据、搜索记录、当前的情绪等各种因素,预测可能降低企业服务好评率的客户行为,并采取适当的行动来避免此类客户流失。

管理医疗数据的人工智能

  • 自动化处理繁琐的任务:通过一个自动化系统处理重复单调任务,该系统还可以发送短信通知。使用此类基于 AI 的聊天机器人可以使服务变得更加简单。

医学诊断中的人工智能

“到 2024 年,由 AI 驱动的医学成像和诊断应该会增长 40% 以上,超过 25 亿美元。” –全球市场洞察力。

借助神经网络和深度学习模型,人工智能正在彻底改变医学图像诊断领域。它接管了 MRI 扫描的复杂分析,并使其成为一个更简单的过程。

医学诊断中的人工智能 – 医疗保健中的人工智能 – Python技术站

  • 由于 MRI 扫描包含的信息量大,因此很难对其进行分析。正常的 MRI 分析需要几个小时,研究人员试图从大型数据集中得出结果,等待数小时以等待计算机生成扫描结果。
  • 可以在神经网络的帮助下分析大型和复杂的数据集,这正是麻省理工学院的一个研究团队所实现的。他们开发了一个名为 VoxelMorph 的神经网络,该网络接受了大约 7000 次 MRI 扫描数据集的训练。
  • 神经网络的功能是在一端输入数据,该数据在整个网络中进行转换,直到形成最终所需的输出。神经网络的工作原理是权重和偏差。

VoxelMorph 成功击败了传统的 MRI 分析方法。神经网络只需几秒钟即可执行 MRI 分析,而传统 MRI 程序需要数小时才能完成分析。

早期检测中的人工智能

人工智能在心脏病发作等疾病的早期预测中发挥了关键作用。许多基于 AI 的可穿戴健康追踪器已被开发出来,用于监测人的健康状况,并在设备收集到异常或不太可能的情况时显示警告。此类可穿戴设备的示例包括 Fitbit、Apple Watch 等。

早期预测中的人工智能 – 医疗保健中的人工智能 – Python技术站

“预防胜于治疗”,这是最新发布的 Apple Watch 背后的座右铭。

  • 苹果公司使用人工智能制造了一款可以监测个人健康的手表。

  • 这款手表收集人的心率、睡眠周期、呼吸频率、活动水平、血压等数据,并全天候 24/7 记录这些测量值。

  • 然后使用机器学习和深度学习算法对收集到的数据进行处理和分析,以构建预测心脏病发作风险的模型。

多亏了 Apple Watch,一个名叫Scott Killian 的人救了他的命。

医疗救助中的人工智能

随着医疗救助需求的增长,基于人工智能的虚拟护士的发展也在增加。根据最近的一项调查,到 2027 年,虚拟护理助理的最大近期价值将达到 200 亿美元。

Sensely 是虚拟护士的一个例子,它实施自然语言处理、语音识别、机器学习和与血压袖带等医疗设备的无线集成,为患者提供医疗帮助。

医疗救助中的人工智能

以下是虚拟护士 Sensely 提供的主要功能列表:

  • 自我护理
  • 临床建议
  • 安排约会
  • 护士专线
  • 急诊方向

随着医疗保健领域的此类革命,很明显,尽管存在风险和所谓的“威胁”,人工智能仍在许多方面使我们受益。

决策中的人工智能

人工智能在决策制定中发挥了重要作用。不仅在医疗保健行业,人工智能还通过研究客户需求和评估任何潜在风险来改善业务。

人工智能在决策中的一个强大用例是使用手术机器人,它可以最大限度地减少错误和变化,并最终帮助提高外科医生的效率。达芬奇就是这样一种手术机器人,它的名字非常贴切,它允许专业外科医生以比传统方法更好的灵活性和控制力来实施复杂的手术。

决策中的人工智能  – 医疗保健中的人工智能 – Python技术站

达芬奇的主要特点包括:

  • 用一套先进的仪器帮助外科医生
  • 在控制台实时翻译外科医生的手部动作
  • 生成清晰、放大的手术区域 3D 高清图像

手术机器人不仅协助决策过程,而且还通过提高准确性和效率来提高整体性能。

所以他们是一对人工智能在医疗保健领域的实际应用。在整个博客中,我提到了人工智能的两个非常重要的领域,机器学习和深度学习。让我们了解这些术语的确切含义。

什么是机器学习?

机器学习是向机器提供大量数据的过程,以便它们可以解释、处理和分析这些数据,从而产生有利于组织的可操作见解。

什么是机器学习?– 医疗保健中的人工智能 – Python技术站

机器学习的一个更高级的概念是深度学习。让我们了解什么是深度学习。

什么是深度学习?

深度学习是机器学习的一个更高级的领域,它使用神经网络的概念来解决需要高维数据和自动特征提取的更复杂的问题。

什么是深度学习?– 医疗保健中的人工智能 – Python技术站

现在让我们看看如何使用医疗保健中的人工智能案例可以通过使用深度学习概念来实施。

使用 Python 进行深度学习

接下来我将使用 Python 来运行这个实例演示。

问题陈述:研究威斯康星州乳腺癌(诊断)数据集,并为预测乳腺癌分期为 M(恶性)或 B(良性)的神经网络分类器建模。

数据集描述:数据集包含样本中存在的细胞核的描述性信息。它包含大约 32 个属性/特征,有助于对特定样本是否癌变进行分类。您可以在此处找到数据集。

逻辑:构建一个二元神经网络,可以将细胞样本正确分类为癌性或非癌性。产生的输出将是一个包含两个值的分类变量:

  • 恶性——癌细胞
  • 良性——非癌细胞

既然您知道了问题陈述背后的逻辑,是时候戴上侦探眼镜开始编码了。

第一步:导入需要的包

# Linear algebra

import numpy as np

# Data processing
import pandas as pd

import matplotlib as mpl
import matplotlib.pyplot as plt
import matplotlib.pyplot as plt2

from sklearn import preprocessing
from subprocess import check_output

第二步:读取输入数据

# Import the data set
data = pd.read_csv('C://Users//NeelTemp//Desktop//data.csv')

#Display the first few observations in the data set

print(data.head())

         id diagnosis  ...  fractal_dimension_worst  Unnamed: 32
0    842302         M  ...                  0.11890          NaN
1    842517         M  ...                  0.08902          NaN
2  84300903         M  ...                  0.08758          NaN
3  84348301         M  ...                  0.17300          NaN
4  84358402         M  ...                  0.07678          NaN

[5 rows x 33 columns]

第三步:数据处理

# Cleaning and modifying the data
data = data.drop('id',axis=1)
data = data.drop('Unnamed: 32',axis=1)

# Mapping Benign to 0 and Malignant to 1
data['diagnosis'] = data['diagnosis'].map({'M':1,'B':0})

# Scaling the dataset
datas = pd.DataFrame(preprocessing.scale(data.iloc[:,1:32]))
datas.columns = list(data.iloc[:,1:32].columns)
datas['diagnosis'] = data['diagnosis']

# Creating the high dimensional feature space X
data_drop = datas.drop('diagnosis',axis=1)
X = data_drop.values

第 4 步:构建神经网络

# Create a feed forward neural network with 3 hidden layers
from keras.models import Sequential, Model
from keras.layers import Dense, Dropout, Input
from keras.optimizers import SGD

model = Sequential()
model.add(Dense(128,activation="relu",input_dim = np.shape(X)[1]))
model.add(Dropout(0.25))
model.add(Dense(32, activation='relu'))
model.add(Dropout(0.25))
model.add(Dense(32, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='binary_crossentropy', optimizer=sgd, metrics=['accuracy'])

第五步:数据拼接和交叉验证

# Fit and test the model by randomly splitting it
# 67% of the data for training and 33% of the data for validation
model.fit(X, datas['diagnosis'], batch_size=5, epochs=10,validation_split=0.33)

# Cross validation analysis
from sklearn.model_selection import StratifiedKFold

# K fold cross validation (k=2)
k = 2
kfold = StratifiedKFold(n_splits=2, shuffle=True, random_state=seed)
cvscores = []
Y = datas['diagnosis']
for train, test in kfold.split(X, Y):

第 6 步:运行模型

# Fit the model
model.fit(X[train], Y[train], epochs=10, batch_size=10, verbose=0)

Train on 381 samples, validate on 188 samples
Epoch 1/10

5/381 [..............................] - ETA: 2:39 - loss: 0.5185 - acc: 0.8000
45/381 [==>...........................] - ETA: 16s - loss: 0.6274 - acc: 0.6444
100/381 [======>.......................] - ETA: 6s - loss: 0.5755 - acc: 0.7100
155/381 [===========>..................] - ETA: 3s - loss: 0.4560 - acc: 0.7871
215/381 [===============>..............] - ETA: 1s - loss: 0.3723 - acc: 0.8326
260/381 [===================>..........] - ETA: 1s - loss: 0.3404 - acc: 0.8538
305/381 [=======================>......] - ETA: 0s - loss: 0.3252 - acc: 0.8623
381/381 [==============================] - 3s 7ms/step - loss: 0.2802 - acc: 0.8845 - val_loss: 0.0870 - val_acc: 0.9628

Epoch 2/10

5/381 [..............................] - ETA: 0s - loss: 0.0647 - acc: 1.0000
165/381 [===========>..................] - ETA: 0s - loss: 0.0966 - acc: 0.9758
381/381 [==============================] - 0s 314us/step - loss: 0.0944 - acc: 0.9659 - val_loss: 0.0497 - val_acc: 0.9894

第 7 步:模型评估

# evaluate the model
scores = model.evaluate(X[test], Y[test], verbose=0)

# Print scores from each cross validation run
print("%s: %.2f%%" % (model.metrics_names[1], scores[1]*100))

acc: 97.89%
acc: 97.89%

cvscores.append(scores[1] * 100)
print("%d-fold cross validation accuracy - %.2f%% (+/- %.2f%%)" % (k,np.mean(cvscores), np.std(cvscores)))

2-fold cross validation accuracy - 97.89% (+/- 0.00%)

因此,正如您所见,神经网络为我们提供了 97.89% 的准确率,这是一个相当不错的分数。如果您希望进一步改进模型,可以执行参数调整和优化技术,例如具有更有效值的 drop-off 方法。

如果您仍然对人工智能感到好奇,这里有一些您可能感兴趣的博客:

  1. 深入理解什么是人工智能,以及它能解决什么问题
  2. 人工智能导论:关于人工智能你需要知道的一切
  3. 10 大人工智能实际应用
  4. 如何成为人工智能工程师?一文规划职业路线图!

以上就是人工智能在医疗保健中的应用方法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:人工智能在医疗领域的应用实战(附源码)! - Python技术站

(0)
上一篇 2022年12月1日 下午8:44
下一篇 2022年12月2日 下午8:19

相关文章

  • Anchor-free目标检测综述 — Dense Prediction篇

      早期目标检测研究以anchor-based为主,设定初始anchor,预测anchor的修正值,分为two-stage目标检测与one-stage目标检测,分别以Faster R-CNN和SSD作为代表。后来,有研究者觉得初始anchor的设定对准确率的影响很大,而且很难找到完美的预设anchor,于是开始不断得研究anchor-free目标检测算法,意…

    2023年4月8日
    00
  • 第二周:卷积神经网络 part 1

    视频学习 数学基础 受结构限制严重,生成式模型效果往往不如判别式模型。 RBM:数学上很漂亮,且有统计物理学支撑,但主流深度学习平台不支持RBM和预训练。 自编码器:正则自编码器、稀疏自编码器、去噪自编码器和变分自编码器。 概率/函数形式统一: 欠拟合、过拟合解决方案: 欠拟合:提高模型复杂度 决策树:拓展分支 神经网络:增加训练轮数 过拟合1:降低模型复杂…

    2023年4月8日
    00
  • pytorch提取中间层的输出

    参考 第一种方法:在构建model的时候return对应的层的输出 def forward(self, x): out1 = self.conv1(x) out2 = self.conv2(out1) out3 = self.fc(out2) return out1, out2, out3 第2中方法:当模型用Sequential构建时,则让输入依次通过各个…

    PyTorch 2023年4月8日
    00
  • Pytorch如何约束和限制权重/偏执的范围

    方法一: 首先编写模型结构: class Model(nn.Module): def __init__(self): super(Model,self).__init__() self.l1=nn.Linear(100,50) self.l2=nn.Linear(50,10) self.l3=nn.Linear(10,1) self.sig=nn.Sigmo…

    PyTorch 2023年4月8日
    00
  • GAN—生成对抗网络

    原理: 假设我们有两个网络:一个生G(Generator),一个判别D(Discriminator)。 G是一个生成图片的的网络,它接受一个随机的噪声z,通过这个噪声生成图片,记做G(z)。 D是一个判别网络,判断一张图片是不是“真实的”。它的输入参数是x,x代表一张图片的。输出D(x)代表x为真实图片的概率,如果为1,就代表100%是真实的图片,输出为0,…

    2023年4月6日
    00
  • 机器学习之一些基本概念及符号系统

    1. 一些基本概念 图1. 机器学习的基本过程   训练集(Training Set):为了研究一个变量(x)与另一个变量(y)的关系,而通过观察、测量等方式获得的一组数据。这组数据中收集了x和与之对应的y——一个数据对(x, y)。例如我们要研究房屋面积(x)和售价(y)之间的关系,每观察一套已出售的房屋,就得到一个数据对(x, y)。观察10套已出售的房…

    机器学习 2023年4月13日
    00
  • Win7 +Cuda9.0+cudnn7.0.5 tensorflow-gpu1.5.0 安装实战

    https://blog.csdn.net/gangeqian2/article/details/79358543 https://blog.csdn.net/tomato_sir/article/details/79973237 https://blog.csdn.net/qq_36556893/article/details/79433298  –&g…

    2023年4月8日
    00
  • pytorch加载和保存模型

    在模型完成训练后,我们需要将训练好的模型保存为一个文件供测试使用,或者因为一些原因我们需要继续之前的状态训练之前保存的模型,那么如何在PyTorch中保存和恢复模型呢? 方法一(推荐): 第一种方法也是官方推荐的方法,只保存和恢复模型中的参数。 保存     torch.save(the_model.state_dict(), PATH) 恢复 the_mo…

    PyTorch 2023年4月8日
    00

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

合作推广
合作推广
分享本页
返回顶部