亚洲熟妇av一区二区三区,久久久久久精品观看sss,免费观看四虎精品国产永久,国产成人精品一区二三区熟女,天堂网在线最新版www资源网

零基礎(chǔ):醫(yī)學(xué)人工智能科研入門(mén)(9.1版)(醫(yī)學(xué)人工智能研究)

前沿

2017年,國(guó)務(wù)院印發(fā)《新一代人工智能發(fā)展規(guī)劃》,“人工智能 ”寫(xiě)入2024年政府工作報(bào)告。在醫(yī)學(xué)領(lǐng)域,人工智能已經(jīng)在影像、內(nèi)鏡圖像識(shí)別,電子病歷邏輯判斷等有著大量應(yīng)用,也寫(xiě)入專(zhuān)家共識(shí),例如《 人工智能在肺結(jié)節(jié)的應(yīng)用專(zhuān)家共識(shí)(2022年)》。

近幾年逐步提倡科研與轉(zhuǎn)化相結(jié)合,科研要服務(wù)于應(yīng)用。醫(yī)學(xué)人工智能的研究就可以很好的實(shí)際應(yīng)用于臨床工作。《Nature》《Science》等學(xué)術(shù)期刊均有專(zhuān)題報(bào)道,課題方面也是熱門(mén)的立項(xiàng)方向。

一、AI醫(yī)學(xué)優(yōu)勢(shì):

(一)適合非高校的醫(yī)院的科研:

1、絕對(duì)大部分非高校直屬的醫(yī)院,少有獨(dú)立的生物學(xué)實(shí)驗(yàn)室,生物學(xué)實(shí)驗(yàn)室的維護(hù)成本極高。而人工智能醫(yī)學(xué)研究,算是一種輕資產(chǎn),最為核心的研究環(huán)節(jié)就是算法的構(gòu)建、算力的運(yùn)用。固然,有專(zhuān)門(mén)的軟件和公司提供服務(wù),也可以采取醫(yī)院自建的模式,投入最大的是智力和精力。在經(jīng)費(fèi)上投入不算多,因?yàn)槭怯糜诳茖W(xué)研究,對(duì)于信息安全等級(jí)要求不高,也沒(méi)有多少維護(hù)費(fèi)用。

2、跟蛋白組學(xué)、基因組學(xué)研究類(lèi)似,人工智能醫(yī)學(xué)的研究,其算法是對(duì)于臨床各個(gè)科室是通用的??蓱?yīng)用于影像組學(xué)的核心算法也可以用于構(gòu)建彩超圖像的模型。隨機(jī)森林、決策樹(shù)不僅可應(yīng)用于預(yù)測(cè)心肌梗死的預(yù)后,也可以應(yīng)用于護(hù)理的跌倒風(fēng)險(xiǎn)評(píng)估,甚至可擴(kuò)展到醫(yī)院行政管理。

3、目前,大部分醫(yī)院均實(shí)現(xiàn)電子病歷,產(chǎn)生海量的數(shù)據(jù)。而人工智能醫(yī)學(xué)的基礎(chǔ)在于數(shù)據(jù)。研究的設(shè)計(jì)簡(jiǎn)單地歸納為兩個(gè)部分,① 臨床數(shù)據(jù)采集和需求、② 模型構(gòu)建和運(yùn)行。臨床數(shù)據(jù)收集、臨床需求的確定,這個(gè)對(duì)于絕對(duì)部分醫(yī)院來(lái)說(shuō),是完全沒(méi)有問(wèn)題的。而其中問(wèn)題最大的是模型構(gòu)建和運(yùn)行。而這塊跟高校的計(jì)算機(jī)實(shí)驗(yàn)室恰恰相反,他們?nèi)鄙俚氖桥R床數(shù)據(jù)和需求。

4、做好人工智能醫(yī)學(xué)研究,可以有幾個(gè)方式。與高校的計(jì)算機(jī)實(shí)驗(yàn)室合作、第三方集成平臺(tái)。但經(jīng)過(guò)實(shí)踐,再加上絕大部分代碼均可以在github上找到。以及論文的發(fā)表需要調(diào)參和提供原始代碼,醫(yī)院完全可以獨(dú)立開(kāi)發(fā)算法和模型。構(gòu)建自己的人工智能醫(yī)學(xué)實(shí)驗(yàn)室。

(二)軟件編程技能培養(yǎng):

目前人工智能的主流編程語(yǔ)言為python。近幾年P(guān)ython流行起來(lái),除了在人工智能領(lǐng)域的應(yīng)用,它在資料收集、數(shù)據(jù)分析方面實(shí)在強(qiáng)勢(shì)。

只需要幾行簡(jiǎn)短的代碼,它就可以:

● 網(wǎng)絡(luò)爬蟲(chóng),一鍵爬取全網(wǎng)公開(kāi)資料

● 對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行數(shù)據(jù)分析,讓觀點(diǎn)更科學(xué)嚴(yán)謹(jǐn)

● 批量處理上百個(gè)Excel、Word、PDF文件

● 生成可視化圖表,成果展示更專(zhuān)業(yè)……

工欲善其事,必先利其器。大數(shù)據(jù)時(shí)代,科研人想要如魚(yú)得水,學(xué)會(huì)Python應(yīng)當(dāng)提上日程。

當(dāng)前,醫(yī)院為了質(zhì)控控制和流程改造。院內(nèi)上線了各類(lèi)系統(tǒng),并且還在不斷增加,醫(yī)療信息化建設(shè)是必然趨勢(shì)。

對(duì)信息系統(tǒng)使用和優(yōu)化,單純依賴信息科會(huì)導(dǎo)致迭代周期變慢。熟悉和了解編程原理,這對(duì)使用院內(nèi)信息系統(tǒng)有極大的幫助。更好服務(wù)于臨床工作。

(三)研究方向:

醫(yī)學(xué)人工智能從應(yīng)用場(chǎng)景角度,可以有以下領(lǐng)域:

① 機(jī)器學(xué)習(xí)(深度學(xué)習(xí))決策系統(tǒng):

基于一些復(fù)雜數(shù)據(jù)的結(jié)果預(yù)測(cè)。例如,手術(shù)結(jié)局預(yù)測(cè),死亡風(fēng)險(xiǎn)預(yù)測(cè)。

以手術(shù)成敗,死亡作為target,臨床診療過(guò)程中的所有因素做為Feature。流程為① 環(huán)境搭建 ② 數(shù)據(jù)預(yù)處理 ③ 選擇算法 ④ 算法訓(xùn)練 ⑤ 生成模型 ⑥ 模型測(cè)試(結(jié)果輸出)。這其中“選擇算法”可以選擇多種算法,對(duì)不同算法的結(jié)果進(jìn)行比較;結(jié)果預(yù)測(cè)一般涉及機(jī)器學(xué)習(xí)(machine learning)。

“結(jié)果輸出”的指標(biāo):precision,ROC,F(xiàn)1, recall。

② 視覺(jué)識(shí)別(圖像識(shí)別):

屬于無(wú)監(jiān)督學(xué)習(xí)。對(duì)醫(yī)療圖像進(jìn)行標(biāo)簽,主要涉及深度學(xué)習(xí)(deep learning)。就發(fā)表論文的成功概率來(lái)說(shuō),圖像識(shí)別更容易發(fā)表論文。

③ 自然語(yǔ)言處理:

可用于對(duì)病歷文本的數(shù)據(jù)分析和處理。

④ 語(yǔ)音處理:

適用于臨床問(wèn)診和溝通。

(四)可投稿期刊列表:

1、Ann Transl Med

2、Math Biosci Eng

3、 Sci Rep

4、artificial intelligence in medicine(IF=5.3)

5、Journal of Digital Health

二、零基礎(chǔ)入門(mén)步驟:

(一)名詞與關(guān)系:

1.名詞解釋?zhuān)?/span>

人工智能:人工智能(Artificial Intelligence),英文縮寫(xiě)為AI。它是研究、開(kāi)發(fā)用于模擬、延伸和擴(kuò)展人工智能的理論、方法、技術(shù)及應(yīng)用系統(tǒng)的一門(mén)新的技術(shù)科學(xué)。

人工智能是計(jì)算機(jī)科學(xué)的一個(gè)分支,它企圖了解智能的實(shí)質(zhì),并生產(chǎn)出一種新的能與人類(lèi)智能相似的方式做出反應(yīng)的智能機(jī)器,該領(lǐng)域的研究包括機(jī)器人、語(yǔ)言識(shí)別、圖像識(shí)別、自然語(yǔ)言處理和專(zhuān)家系統(tǒng)等。

機(jī)器學(xué)習(xí):機(jī)器學(xué)習(xí)(ML, Machine Learning)是一門(mén)多學(xué)科交叉專(zhuān)業(yè),涵蓋概率論知識(shí),統(tǒng)計(jì)學(xué)知識(shí),近似理論知識(shí)和復(fù)雜算法知識(shí),使用計(jì)算機(jī)作為工具并致力于真實(shí)實(shí)時(shí)的模擬人類(lèi)學(xué)習(xí)方式,并將現(xiàn)有內(nèi)容進(jìn)行知識(shí)結(jié)構(gòu)劃分來(lái)有效提高學(xué)習(xí)效率。

機(jī)器學(xué)習(xí)還有下面幾種定義:

(1)機(jī)器學(xué)習(xí)是一門(mén)人工智能的科學(xué),該領(lǐng)域的主要研究對(duì)象是人工智能,特別是如何在經(jīng)驗(yàn)學(xué)習(xí)中改善具體算法的性能。

(2)機(jī)器學(xué)習(xí)是對(duì)能通過(guò)經(jīng)驗(yàn)自動(dòng)改進(jìn)的計(jì)算機(jī)算法的研究。

(3)機(jī)器學(xué)習(xí)是用數(shù)據(jù)或以往的經(jīng)驗(yàn),以此優(yōu)化計(jì)算機(jī)程序的性能標(biāo)準(zhǔn)。

深度學(xué)習(xí):深度學(xué)習(xí)(DL, Deep Learning)是機(jī)器學(xué)習(xí)(ML, Machine Learning)領(lǐng)域中一個(gè)新的研究方向,它被引入機(jī)器學(xué)習(xí)使其更接近于最初的目標(biāo)——人工智能(AI, Artificial Intelligence)。

深度學(xué)習(xí)是學(xué)習(xí)樣本數(shù)據(jù)的內(nèi)在規(guī)律和表示層次,這些學(xué)習(xí)過(guò)程中獲得的信息對(duì)諸如文字,圖像和聲音等數(shù)據(jù)的解釋有很大的幫助。它的最終目標(biāo)是讓機(jī)器能夠像人一樣具有分析學(xué)習(xí)能力,能夠識(shí)別文字、圖像和聲音等數(shù)據(jù)。深度學(xué)習(xí)是一個(gè)復(fù)雜的機(jī)器學(xué)習(xí)算法,在語(yǔ)音和圖像識(shí)別方面取得的效果,遠(yuǎn)遠(yuǎn)超過(guò)先前相關(guān)技術(shù)。

Python:一種流行的計(jì)算機(jī)編程語(yǔ)言。

2. 名詞關(guān)系:

人工智能是一個(gè)比較大的概念,更多是面向公眾。機(jī)器學(xué)習(xí)是人工智能實(shí)現(xiàn)的一個(gè)具體方法,而深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個(gè)分支,難度更高。而目前實(shí)現(xiàn)機(jī)器學(xué)習(xí)、深度學(xué)習(xí)的編程,主流還是應(yīng)用python語(yǔ)言。有很多也使用R語(yǔ)言來(lái)做機(jī)器學(xué)習(xí)的研究。

(二)工作環(huán)境的搭建:

安裝:目前主流推薦Anaconda。其具體步驟可以按照知乎的這個(gè)教程:

① Anaconda安裝
https://zhuanlan.zhihu.com/p/339690068

② Anaconda安裝
https://zhuanlan.zhihu.com/p/432043531

說(shuō)的是Anaconda安裝好后,就包含了python了。不過(guò),我也沒(méi)理清之間的關(guān)系,保險(xiǎn)一點(diǎn)可以把Python也安裝了。

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

費(fèi)用:以上軟件商用是要收費(fèi)的,不過(guò),安裝的時(shí)候選擇個(gè)人使用是免費(fèi)的。

(三)編輯器選擇:

編輯器就是我們編寫(xiě)代碼的地方,安裝好Anaconda會(huì)有多種編輯器。具體哪一種更好,我也正在摸索。

(四)基礎(chǔ)知識(shí):

Python也是一種編程語(yǔ)言,編程語(yǔ)言都有一些規(guī)則。比如,什么是字符串,引號(hào)是什么意思,怎么輸出結(jié)果。由于Python應(yīng)用于各個(gè)領(lǐng)域,厲害的Python大神都是各大公司搶著要的,我們跨界過(guò)去也不可能那么多精力,就主要學(xué)習(xí)最基本的框架和主要用于醫(yī)學(xué)領(lǐng)域的。這里推薦一個(gè)B站教學(xué)視頻:

https://www.bilibili.com/video/BV1rg411G7mp\”>

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

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

1、Python內(nèi)部環(huán)境部署:

1.1 python庫(kù)的安裝:

python庫(kù)的安裝有四個(gè)方法,主要分為在線安裝和離線安裝。

在線安裝:使用Anaconda prompt 界面 > pip install XXX

離線安裝:

1)在Python Extension Packages for Windows – Christoph Gohlke (uci.edu) 下載輪子>使用Anaconda prompt 界面 > cd 工作目錄 >pip install 輪子路徑 輪子名稱(chēng)

2)github上下載源碼,對(duì)于醫(yī)學(xué)人工智能,最需要用到feature-selector的庫(kù), 而這個(gè)庫(kù)只有g(shù)ithub上有。

WillKoehrsen/feature-selector: Feature selector is a tool for dimensionality reduction of machine learning datasets (github.com)github.com/WillKoehrsen/feature-selector

我在這個(gè)問(wèn)題上卡了很久。下好源碼后,解壓壓縮包。使用Anaconda prompt 界面 > cd 工作目錄 >python setup.py install

1.2 機(jī)器學(xué)習(xí)環(huán)境部署標(biāo)準(zhǔn)三聯(lián):

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

常用語(yǔ)法和邏輯:

1)對(duì)于Python而言,冒號(hào)和縮進(jìn)是一種語(yǔ)法。它會(huì)幫助Python區(qū)分代碼之間的層次,理解條件執(zhí)行的邏輯及先后順序?!咀ⅲ嚎s進(jìn)是四個(gè)空格或一個(gè)Tab鍵】

2)注意大小寫(xiě):name 'Fs' is not defined,F(xiàn)s,沒(méi)有被定義。最后發(fā)現(xiàn)是大小寫(xiě)錯(cuò)誤。前后代碼的大小寫(xiě)一定要一致,否則會(huì)報(bào)錯(cuò)。

3)使用jupter的時(shí)候,由于賦值的問(wèn)題,需要重頭開(kāi)始運(yùn)行。如果,在某個(gè)代碼段運(yùn)行報(bào)錯(cuò),有可能出現(xiàn)賦值錯(cuò)誤。

1.3 ROC曲線的制作:

ROC曲線的全稱(chēng)是“受試者工作特性”曲線(Receiver Operating Characteristic),源于二戰(zhàn)中用于敵機(jī)檢測(cè)的雷達(dá)信號(hào)分析技術(shù)。是反映敏感性和特異性的綜合指標(biāo)。它通過(guò)將連續(xù)變量設(shè)定出多個(gè)不同的臨界值,從而計(jì)算出一系列敏感性和特異性,再以敏感性為縱坐標(biāo)、(1-特異性)為橫坐標(biāo)繪制成曲線,曲線下面積越大,判別的準(zhǔn)確性越高。在ROC曲線上,最靠近坐標(biāo)圖左上方的點(diǎn)為敏感性和特異性均較高的臨界值。

## 輸出高清圖像

%config InlineBackend.figure_format = 'retina'

%matplotlib inline

ROC曲線做出來(lái)是一個(gè)圖像,所以,需要matplotlib這個(gè)庫(kù),這個(gè)庫(kù)是python里面非常有用的庫(kù)。還可以做直方圖、散點(diǎn)圖、折線圖。也就不必另外用統(tǒng)計(jì)圖軟件了。

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 *

這其中,sklearn.metrics 就是我們用來(lái)數(shù)據(jù)歸回/分類(lèi)評(píng)估的核心庫(kù)。這個(gè)import*,后面這個(gè)*要注意,是包含所有模塊,但是使用有爭(zhēng)議,暫時(shí)也沒(méi)有找到其他代碼,先用著吧。

2、數(shù)據(jù)處理:

2.1、數(shù)據(jù)格式與提?。?/span>

我們就可以數(shù)據(jù)預(yù)處理。Python是可以支持CSV、Excel的數(shù)據(jù)庫(kù)格式,CSV可以直接從醫(yī)院的HIS系統(tǒng)導(dǎo)出,如果對(duì)于海量數(shù)據(jù)還是要選擇這種格式。用EXCEL比較適合大部分醫(yī)療從業(yè)者。

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 numpy as npimport pandas as pdplt.rc('font',family='Times New Roman')a = 'C:/Users/46685/Desktop/科研數(shù)據(jù)//腎內(nèi)科/DKD數(shù)據(jù)庫(kù)給韜哥5.xlsx'dataset= pd.read_excel(a,sheet_name = 'Sheet1')dataset.head() #顯示前幾排數(shù)據(jù)x=dataset.iloc[:,0:49] # iloc 定位到列y=dataset.iloc[:,49]print(x)print(y)

2.2數(shù)據(jù)結(jié)構(gòu):

數(shù)組(Array)是由相同類(lèi)型的元素(element)集合組成的固定長(zhǎng)度(Size)的一種數(shù)據(jù)結(jié)構(gòu)。

2.3 數(shù)據(jù)處理:

這里用了泰坦尼克號(hào)的數(shù)據(jù)案例:

train = pd.read_csv("data/Titanic處理后數(shù)據(jù).csv")

# 將字符串類(lèi)型的分類(lèi)變量進(jìn)行重新編碼

label = LabelEncoder()

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

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

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

Python的符號(hào)格式有三種:字符串、整數(shù)、浮點(diǎn)數(shù),那么,像臨床常用的基線數(shù)據(jù),“姓名”“性別”就需要轉(zhuǎn)換為Python可識(shí)別的數(shù)據(jù)。以上代碼就是轉(zhuǎn)換用。

3、模型構(gòu)建:

# 確定目標(biāo)變量和自變量,目標(biāo)變量:我們要研究的目標(biāo)。例如,我如果想研究息肉切除后出現(xiàn)風(fēng)險(xiǎn),就可以定義為:

Target= [“bleed”]

# 定義模型的自變量名

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

也可以表述為自己提取對(duì)應(yīng)的數(shù)據(jù):

x=dataset.iloc[:,0:17]y=dataset.iloc[:,17]print(x)print(y)

使用feature_selector進(jìn)行,feature篩選。累積權(quán)重不同,可以影響最后結(jié)果輸出的效果。

##將訓(xùn)練集切分為訓(xùn)練集和驗(yàn)證集

from sklearn.model_selection import train_test_split #導(dǎo)入樣本劃分的庫(kù)x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2,random_state=0) # 樣本進(jìn)行劃分

機(jī)器學(xué)習(xí)的數(shù)據(jù)要分為兩個(gè)部分:訓(xùn)練集、驗(yàn)證集。這句代碼就是把數(shù)據(jù)進(jìn)行分割。不過(guò),一般都是2:8分。20%用來(lái)驗(yàn)證。

下面的程序中使用RandomForestClassifier()函數(shù)建立了包含100個(gè)決策樹(shù),最大深度為5的隨機(jī)森林模型,針對(duì)訓(xùn)練好的模型并計(jì)算出其它訓(xùn)練集和驗(yàn)證集上的預(yù)測(cè)精度。

## 使用隨機(jī)森林對(duì)泰坦尼克數(shù)據(jù)進(jìn)行分類(lèi)

rfc1 = RandomForestClassifier(n_estimators = 100, # 樹(shù)的數(shù)量

max_depth= 5, # 子樹(shù)最大深度

oob_score=True,

class_weight = "balanced",

random_state=1)

rfc1.fit(X_train,y_train)

4、結(jié)果輸出:

## 輸出其在訓(xùn)練數(shù)據(jù)和驗(yàn)證數(shù)據(jù)集上的預(yù)測(cè)精度

rfc1_lab = rfc1.predict(X_train)

rfc1_pre = rfc1.predict(X_val)

print("隨機(jī)森林的OOB score:",rfc1.oob_score_)

print("訓(xùn)練數(shù)據(jù)集上的精度:",accuracy_score(y_train,rfc1_lab))

print("驗(yàn)證數(shù)據(jù)集上的精度:",accuracy_score(y_val,rfc1_pre))

但是,為了讓論文更好發(fā)表,最好有圖片。

## 可視化在驗(yàn)證集上的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) # 計(jì)算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("隨機(jī)森林ROC曲線")

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

plt.show()

最后得出這么一個(gè)ROC結(jié)果。

三、常用python算法庫(kù):

1)Scikitlearn:是一個(gè)常用的算法庫(kù):相關(guān)代碼可參考:
https://mp.weixin.qq.com/s/c-Sl7n_ceawz6AHm5Mtw0w

2)機(jī)器學(xué)習(xí)常用算法:

eXtreme Gradient Boosting (XGBoost),

Adaptive Boosting(AdaBoost),

Decision Tree (DT),

Support vector machines (SVM),

Random Forest (RF)

Gradient Boosting Decision Tree (GBDT)

LogisticRegression(LR)

四、未完待續(xù):

除了預(yù)測(cè)類(lèi)的機(jī)器學(xué)習(xí),還有結(jié)合深度學(xué)習(xí)的影像組學(xué),難度更高,但真實(shí)世界中的應(yīng)用場(chǎng)景更多,更有利于轉(zhuǎn)化,可以參考:
https://www.madao33.com/post/7/

該教程文檔不斷更新,版本號(hào)越高,就是最新版,上面很多代碼在運(yùn)行中還有很多bug,希望更多同行進(jìn)行交流,互相提供代碼和教程,目前跟朋友一起合作了一篇文章,相關(guān)代碼分享在ganbingliangyi (taoliang梁韜) (github.com)

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。