excel学习库

excel表格_excel函数公式大全_execl从入门到精通

零基础:人工智能医学科研入门(内附代码)(7.0版)

前沿

随着人工智能阿尔法狗的新闻,人工智能进入大众视野,并在各个领域的研究呈现井喷趋势。

人工智能研究核心在计算机科学,但是,应用层面还是分布于各个行业。人工智能医学研究,在》发表。近几年的国家级基金,在该领域立项课题也是翻倍增加。究其原因,中yang曾发文发展人工智能;

一、为什么选择AI医学:

(一)适合非高校的医院的科研:

1、绝对大部分非高校直属的医院,少有独立的生物学实验室,生物学实验室的维护成本极高。而人工智能医学研究,算是一种轻资产,最为核心的研究环节就是算法的构建、算力的运用。固然,有专门的软件和公司提供服务,也可以采取医院自建的模式,投入最大的是智力和精力。在经费上投入不算多,因为是用于科学研究,对于信息安全等级要求不高,也没有多少维护费用。

2、跟蛋白组学、基因组学研究类似,人工智能医学的研究,其算法是对于临床各个科室是通用的。可应用于影像组学的核心算法也可以用于构建彩超图像的模型。随机森林、决策树不仅可应用于预测心肌梗死的预后,也可以应用于护理的跌倒风险评估,甚至可扩展到医院行政管理。

(二)研究方向:

1、人工智能医学科研,也是一个较大的范围,其研究的设计简单的归纳为两个部分,

2、临床和计算机实验室合作是最完美的方式,但是,合作也存在利益协商等多方面问题。所以,最简单还是选择自己构建模型。

3、构建模型有使用集成平台(腾讯云AI),利用python构建。腾讯云AI,操作简单,集成了多种算法,仅需要提供数据即可。但是,在操作过程中发现。由于平台单一,缺乏更为详细的教程。而python由于应用于各个领域,网上已经公开各种教程和解决方案。

4、利用python构建机器学习算法平台:目前可用于临床科研的机器学习(人工智能),主要有个方向,而这其中对于医院最常用的研究方向是① 疾病预测,② 图像识别,图像识别这块需要用到无监督学习,而且,图像预处理方面门槛较高。对于,没有编程基础的医院医生(护士),比较亲民一点还是疾病预测。

二、零基础入门步骤:

(一)工作环境的搭建:

安装:目前主流推荐

Anaconda安装 https://zhuanlan.zhihu.com/p/339690068

Anaconda安装 https://zhuanlan.zhihu.com/p/432043531

说的是Anaconda安装好后,就包含了python了。不过,我也没理清之间的关系,保险一点可以把Python也安装了。

Python的安装:https://zhuanlan.zhihu.com/p/363708165

费用:以上软件商用是要收费的,不过,安装的时候选择个人使用是免费的。

(二)编辑器选择:

编辑器就是我们编写代码的地方,安装好Anaconda会有多种编辑器。具体哪一种更好,我也正在摸索。

(三)基础知识:

Python也是一种编程语言,编程语言都有一些规则。比如,什么是字符串,引号是什么意思,怎么输出结果。由于Python应用于各个领域,厉害的Python大神都是各大公司抢着要的,我们跨界过去也不可能那么多精力,就主要学习最基本的框架和主要用于医学领域的。这里推荐一个B站教学视频:

https://www.bilibili.com/video/BV1rg411G7mp?from=search&seid=4851026855846953069&spm_id_from=333.337.0.0

此外,也可以看官方文档:

https://docs.python.org/3/tutorial/modules.html#importing-from-a-package

(四)疾病预测:

机器学习的疾病预测的模型构建:受试者工作特征曲线

1、Python内部环境部署:

机器学习环境部署标准三联:

importas
importas
importas

1.2 ROC曲线的制作:

## 输出高清图像

%config InlineBackend.figure_format = 'retina'

%matplotlib inline

ROC曲线做出来是一个图像,所以,需要matplotlib这个库,这个库是python里面非常有用的库。还可以做直方图、散点图、折线图。也就不必另外用统计图软件了。

matplotlib.rcParams['axes.unicode_minus']=False

import seaborn as sns

sns.set(font= "Kaiti",style="ticks",font_scale=1.4)

import pandas as pd

pd.set_option("max_colwidth", 200)

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

from sklearn.preprocessing import LabelEncoder,label_binarize

from sklearn.model_selection import train_test_split

from sklearn.ensemble import RandomForestClassifier

from sklearn.metrics import *

这其中,

2、数据预处理:

我们就可以数据预处理。Python是可以支持CSV的数据库格式,这种格式可以直接从医院的HIS系统导出,如果对于海量数据还是要选择这种格式。此外,Python是支持Excel的。用EXCEL可以自己在excel里面把数据进行处理,比较适用于我们。

CSV格式:(代码如下)

import pandas as pd

import csv

with open('A.csv','r') as csvfile:

reader = csv.DictReader(csvfile)

column = [row['Age'] for row in reader]

Execl格式:(代码如下)

import pandas as pd

filePath_01 = 'D:\我的文件\桌面内容\使用python读取Excel的路径\表格1.xlsx'

df1 = pd.read_excel(filePath_01,sheet_name = 'Sheet1')

这里用了泰坦尼克号的数据案例:

train = pd.read_csv("data/Titanic处理后数据.csv")

# 将字符串类型的分类变量进行重新编码

label = LabelEncoder()

train["Name"] = label.fit_transform(train["Name"])

train["Embarked"] = label.fit_transform(train["Embarked"])

train["Sex"] = label.fit_transform(train["Sex"])

Python的符号格式有三种:字符串、整数、浮点数,那么,像临床常用的基线数据,“姓名”“性别”就需要转换为Python可识别的数据。以上代码就是转换用。

3、模型构建:

# 定于预测目标变量名

Target = ["Survived"]

目标变量:我们要研究的目标。例如,我如果想研究息肉切除后出现风险

Target= [bleed]

## 定义模型的自变量名

train_x = ["Pclass", "Name", "Sex", "Age", "SibSp", "Parch","Fare","Embarked"]

这一句也非常重要,是我们临床研究基线特征。

##将训练集切分为训练集和验证集

X_train,X_val,y_train,y_val = train_test_split(train[train_x], train[Target],

test_size = 0.25,random_state = 1)

机器学习的数据要分为两个部分:训练集、验证集。这句代码就是把数据进行分割。不过,一般都是

下面的程序中使用

## 使用随机森林对泰坦尼克数据进行分类

rfc1 = RandomForestClassifier(n_estimators = 100, # 树的数量

max_depth= 5, # 子树最大深度

oob_score=True,

class_weight = "balanced",

random_state=1)

rfc1.fit(X_train,y_train)

4、结果输出:

## 输出其在训练数据和验证数据集上的预测精度

rfc1_lab = rfc1.predict(X_train)

rfc1_pre = rfc1.predict(X_val)

print("随机森林的OOB score:",rfc1.oob_score_)

print("训练数据集上的精度:",accuracy_score(y_train,rfc1_lab))

print("验证数据集上的精度:",accuracy_score(y_val,rfc1_pre))

但是,为了让论文更好发表,最好有图片。

## 可视化在验证集上的Roc曲线

pre_y = rfc1.predict_proba(X_val)[:, 1]

fpr_Nb, tpr_Nb, _ = roc_curve(y_val, pre_y)

aucval = auc(fpr_Nb, tpr_Nb) # 计算auc的取值

plt.figure(figsize=(10,8))

plt.plot([0, 1], [0, 1], 'k--')

plt.plot(fpr_Nb, tpr_Nb,"r",linewidth = 3)

plt.grid()

plt.xlabel("假正率")

plt.ylabel("真正率")

plt.xlim(0, 1)

plt.ylim(0, 1)

plt.title("随机森林ROC曲线")

plt.text(0.15,0.9,"AUC = "+str(round(aucval,4)))

plt.show()

最后就应该得出这么一个

常用

1)Scikitlearn:是一个常用的算法库:相关代码可参考:

四、未完待续:

上面例子的(随机森林)机器学习是人工智能应用领域比较简单的模块,要发更高因子的文章和中课题,还是要去深度学习,无监督学习、影像(超声)组学。不过这块难度要高很多,可以参考:https://www.madao33.com/post/7/

这块国外也起步不久,很多高质量文章都是国内外互相引用。但是,万事开头难,只有走第一步,才有第二步。该教程文档不断更新,版本号越高,就是最新版,上面很多代码在运行中还有很多

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接