孫嘉晨
摘要:在信息化時代隨著大數(shù)據(jù)滲透到人類生產(chǎn)生活中的各個環(huán)節(jié),醫(yī)療產(chǎn)業(yè)在人工智能技術(shù)中具有廣泛應(yīng)用和發(fā)展前景,研究人工智能技術(shù)在醫(yī)療科技中的應(yīng)用具有重大現(xiàn)實意義。文章通過使用基本SQL結(jié)構(gòu)化語句訪問和處理數(shù)據(jù)庫,配合數(shù)據(jù)庫軟件共同工作,使得處理醫(yī)療數(shù)據(jù)更加快捷。檢索出數(shù)據(jù)后,建立不同分類模型,運用樸素貝葉斯、支持向量機和決策樹三種算法完成分類任務(wù),觀察調(diào)整參數(shù)后對算法性能的影響,并通過分類器輸出的結(jié)果比較三種算法預(yù)測的準確率、召回率和速度。最后總結(jié)分析出不同疾病最適合的算法。該算法兼顧數(shù)據(jù)處理的精確率與速度,結(jié)果可靠,可為醫(yī)療數(shù)據(jù)處理提供參考。
關(guān)鍵詞:人工智能;SQL結(jié)構(gòu)化語言;樸素貝葉斯算法;決策樹;支持向量機;醫(yī)療科技
中圖分類號:R - 05;TP18
文獻標(biāo)識碼:A
文章編號:1672 - 9129( 2018) 12 - 0107 - 03
1 引言
全球人工智能行業(yè)發(fā)展迅速的今天,人工智能技術(shù)的應(yīng)用在各個行業(yè)逐漸興起,帶來了許多實際的商業(yè)價值,而在數(shù)據(jù)基礎(chǔ)方面較為突出的醫(yī)療領(lǐng)域與人工智能的結(jié)合已然變?yōu)槭袌鲫P(guān)注的焦點。由于醫(yī)療數(shù)據(jù)的海量性、多樣性、診斷性、時間性、不規(guī)范性和隱私性等,處理醫(yī)療大數(shù)據(jù)的任務(wù)繁瑣、難操作、不夠精準,將人工智能技術(shù)引入醫(yī)療領(lǐng)域,可以將其應(yīng)用在智能藥物研發(fā)、智能診療和智能健康管理系統(tǒng)等方面,從而大大提升醫(yī)生的診療效率和準確度、醫(yī)藥研發(fā)的速度等。本文主要在醫(yī)療數(shù)據(jù)的檢索和分類上進行實驗探究,首先根據(jù)醫(yī)生的不同要求編寫基本的SQL結(jié)構(gòu)化語句,取回和更新數(shù)據(jù)庫中的數(shù)據(jù),檢索出患者的電子病歷和基本信息,針對數(shù)據(jù)結(jié)果形成圖表,方便醫(yī)生參考與統(tǒng)計。接著分別運用樸素貝葉斯算法、支持向量機和決策樹三種常見的機器學(xué)習(xí)算法。其中樸素貝葉斯算法是基于貝葉斯定理和條件獨立假設(shè)的分類方法,使后驗概率最大化,期望風(fēng)險最小化;支持向量機是從先行可分情況下的最有分類面發(fā)展而來,把低維線性不可分的數(shù)據(jù)通過核函數(shù)映射到了高維空間;決策樹是運用分類的一種樹結(jié)構(gòu),其中每個內(nèi)部節(jié)點代表某個類或類的分布。三種算法各有特點,我們需要應(yīng)用算法實驗來證明不同數(shù)據(jù)集最適合的運算方法。
2 SQL實驗
SQL指結(jié)構(gòu)化查詢語言,即訪問和處理數(shù)據(jù)庫的計算機語言,使我們有能力訪問關(guān)系數(shù)據(jù)庫。SQL語句主要用于取回和更新數(shù)據(jù)庫中的數(shù)據(jù),配合數(shù)據(jù)庫軟件共同工作。
SQL語句的四種基本類型有增(INSERT)、刪(DELET)、改(UP-DATE)和查(SELECT)。本次試驗中,我們運用到了以下幾種基本語句:“Select * from”用來檢索所有行和列,“Order hy”語句的作用是排序檢索數(shù)據(jù),而“Where”語句用于過濾數(shù)據(jù)。主要運用到三種函數(shù):“COUNT函數(shù)”返回匹配指定條件的行數(shù),“SUM函數(shù)”返回數(shù)值列的總數(shù),“AVC函數(shù)”返回數(shù)值列的平均值。
2.1 醫(yī)療統(tǒng)計分析基礎(chǔ)
(1)統(tǒng)計卒中篩查數(shù)據(jù)表中總共包含多少檔案:
SELECT acid,COUNT (acid)| FROM archivescases
篩查結(jié)果為:acid=3887781,COUNT(acid)=10000。
(2)統(tǒng)計卒中篩查數(shù)據(jù)表中男性數(shù)量
SELECCT asex, COUNT (acid) FROM archivescases
aSex='男'
篩查結(jié)果為:aSex=男,COUNT( acid) =4996。
(3)統(tǒng)計卒中篩查數(shù)據(jù)表中女性數(shù)量
aSex, CcUNT(acid)
archivescases
aSex='女'
篩查結(jié)果為:aSex=女,COUNT( acid) =5004。
(4)分別統(tǒng)計卒中篩查數(shù)據(jù)表中年齡在“20 - 60”,“60以上和20以下”的人數(shù)
SELECT COUNT (acid)
archiverceses
acAge=20 AND acAge<=60|
SELECT COUNT(acid)
archivescases
acAge<20 OR| acAge>60
統(tǒng)計結(jié)果分別為:COUNT(acid) =5790;COUNT( acid) =4210。
2.2 醫(yī)療統(tǒng)計分析提高
(1)使用一條語句統(tǒng)計卒中篩查數(shù)據(jù)表中各有多少男性和女性,并畫出圖形比較,如圖1所示。
SELECT aSex,COUNT (acid) FROM archivescases
aSex|
(2)使用一條語句統(tǒng)計卒中篩查數(shù)據(jù)表中受教育程度的人數(shù)分布,并畫出圖形比較
SELECT acEdu, COUNT (acid)
archivescases GROUP BY acEdu|
統(tǒng)計結(jié)果為:acEdu=“小學(xué),初中,高中,本科,碩士,未填”,相對應(yīng)COUNT(acid)分別為“4837,2485,923,347,3,1405”,餅形統(tǒng)計圖如圖2所示。
(3)統(tǒng)計男性中吸煙人數(shù)
1 SELECT
2 dangerfactors.dfSmoking,
3 COUNT (dangerfactors,acid)
4 FROM
5 archivescases,
6 dangerfactors
7WHERE
8 archivescases. acid = dangerfactors. acid
9 AND archivescases.aSex ='男'
10 AND dangerfactors.dfSmoking='1'| 統(tǒng)計結(jié)果為:男性中吸煙人數(shù)為:1024。
(4)統(tǒng)計女性中高血壓人數(shù)
1 SELECT
2 dangerfactors.dfHypertension,
3 COUNT (dangerfactors.acid)
4 FROM
5 archivescases,
6 dangerfactors
7 WHERE
8 archivescases.acid = dangerfactors. acid
9 AND archivescases.aSex ='女'
10 AND dangerfactors.dfHypertension='1'|
統(tǒng)計結(jié)果為:女性中高血壓人數(shù)為:1153。
2.3 醫(yī)療統(tǒng)計分析實際應(yīng)用
統(tǒng)計既往腦卒中在各個年齡段的分布(按照10歲作為一個年齡段)
1 SELECT B.dfStroke,sum(CASE WHEN CAST(A,acAge AS DECIMAL) BETWEEN 0 AND 39 THEN 1 ELSE 0 END) AS '[0-39l',
2 sum(CASE WHEN CAST(A,acAge AS DECIMAL) BETWEEN 40 AND 49 THEN 1 ELSE 0 END)AS '[40.49l',
3 sum(CASE WHEN CAST(A,acAge AS DECIMAL) BETWEEN 50 AND 59 THEN 1 ELSE 0 END ) AS '[50-59]',
4 sum(CASE WHEN CAST(A,acAge AS DECIMAL) BETWEEN 60 AND 69 THEN 1 ELSE 0 END ) AS '[60-69]',
5 sum(CASE WHEN CAST(A,acAge AS DECIMAL) BETWEEN 70 AND 79 THEN 1 ELSE 0 END ) AS '[70-79]',
6 sum(CASE WHEN CAST(A,acAge AS DECIMAL) >80 THEN 1 ELSE 0 END ) AS '[>80]' FROM dangerfactors B join archivescases A on B,acid=A,acid where B,dfStroke='l' ; 統(tǒng)計結(jié)果為:[0 -39] =0;[40 -49] =18;[50 -59]=56;[60 -69]=135;[70-79] =64;[>80] =14.
3 人工智能算法
3.1 樸素貝葉斯算法。貝葉斯算法是基于貝葉斯定理和條件獨立假設(shè)的分類方法,通過聯(lián)合概率建模,運用貝葉斯定理求解后驗概率,將后驗概率最大者對應(yīng)的類別作為預(yù)測類別,因為后驗概率最大化,使期望風(fēng)險最小化。
樸素貝葉斯算法相關(guān)公式為:
P(Y∣X)=PP(X,Y)/P(X)=P(X∣Y)P(Y)/∑YP(X∣Y)P(Y) P(X=x∣Y=ck)=n∏j=1 P(Xj=xj∣Y=Ck)j=1,2,…K
式中,j表示數(shù)據(jù)特征向量的維數(shù),Ck表示第k個類別。樸素貝葉斯算法由訓(xùn)練集樣本數(shù)據(jù)計算得到先驗概率分布P(Y= Ck)和條件概率分布P(X= XI Y=Ck),從而計算可得聯(lián)合概率分布P(X,Y)[1]。
3.2 決策樹。決策樹是運用分類的一種樹結(jié)構(gòu),其中每個內(nèi)部節(jié)點代表某個類或類的分布,貪心算法是決策樹的基本算法,算法計算的基本步驟為[2-3]:
(1)創(chuàng)建代表數(shù)據(jù)集的單個節(jié)點N。
(2)如果所有樣本都屬于同一個分類C,則該節(jié)點為葉節(jié)點,并以分類C進行標(biāo)記。
(3)否則,選擇屬性列表中最有分類能力的屬性作為測試屬性。
(4)對所選屬性的每個已知值,創(chuàng)建一個分支,并按此將樣本集合劃分為若干個數(shù)據(jù)集。
(5)算法采用相同的過程,遞歸生成各數(shù)據(jù)集上的樣本決策樹。
(6)遞歸劃分過程當(dāng)下列條件之一成立時停止:①給定節(jié)點的所有樣本屬于同一分類;②屬性列表中所有屬性處理完,沒有剩余屬性可用來進一步劃分樣本;③節(jié)點上的數(shù)據(jù)集為空。
3.3 支持向量機。支持向量機是從現(xiàn)行可分情況下的最有分類面發(fā)展而來,把低維線性不可分的數(shù)據(jù)通過核函數(shù)映射到了高維空間,研究的問題主要是求解凸二次規(guī)劃[4],其基本原理是建立在vc維理論與結(jié)構(gòu)風(fēng)險最小原理基礎(chǔ)之上,根據(jù)有限樣本在模型復(fù)雜性和學(xué)習(xí)能力間尋求最優(yōu)折中值,從而獲得最佳推廣能力[5 -6]。
支持向量機是根據(jù)已有訓(xùn)練集
T={(x1,yl),(x2,y2),…(xl,yl),∈(X,Y)l}
尋找實數(shù)空間上的一個實值函數(shù)g(z),以此用函數(shù)f( xsgn(g(x))推斷任一模式x對應(yīng)y值的問題。
4 基于人工智能算法的醫(yī)療科技應(yīng)用
4.1 實驗步驟。
(1)在乳腺癌數(shù)據(jù)集上完成分類任務(wù),建立不同分類模型,通過調(diào)整三種算法的參數(shù)對數(shù)據(jù)對象進行分析,并對分類器的輸出結(jié)果進行比較和分析。
(2)記錄調(diào)整的參數(shù)與輸出結(jié)果,制成表格。
(3)預(yù)測的準確率與召回率比較。
準確率=檢索列的相關(guān)文件/所有檢索到的文件總數(shù)
召回率=檢索到的文件總數(shù)/所有相關(guān)的文件總數(shù)
(4)分類速度比較。
(5)分析與討論,得出最適合此疾病的算法。
4.2 人工智能算法在乳腺癌中的應(yīng)用。實驗發(fā)現(xiàn),樸素貝葉斯算法中,監(jiān)督離散化調(diào)為“false”時,準確率和召回率較高,時間較短,為樸素貝葉斯算法中最適合的調(diào)參方法;而在支持向量機算法中,懲罰系數(shù)為1時準確率和召回率較高,時間較短,我們還發(fā)現(xiàn)將懲罰系數(shù)改為10000時,計算運用時間較長,而懲罰系數(shù)調(diào)為0.0001時,會出現(xiàn)無法運算出結(jié)果的現(xiàn)象;在決策樹算法中,小幅度調(diào)整參數(shù)對結(jié)果并無過大影響,時間都較短,準確率、召回率較高。乳腺癌在樸素貝葉斯、支持向量機和決策樹三種算法中的結(jié)果對比如表1所示。
4.3 人工智能算法在心臟病中的應(yīng)用。在樸素貝葉斯算法中,只將監(jiān)督化離散調(diào)整為false時間較短,其余參數(shù)調(diào)整對實驗結(jié)果影響不大,時間也都較短;在支持向量機算法中,將懲罰參數(shù)調(diào)大實驗時間會過長,不適用于某些有時間需求的醫(yī)療方面;在決策樹算法中,置信系數(shù)為0.1,最少對象數(shù)目5時最為合適。心臟病在樸素貝葉斯、支持向量機和決策樹三種算法中的結(jié)果對比如表2所示。
4.4 結(jié)果分析。根據(jù)前面詳細分析與論述,由表1和表2可知:對于乳腺癌,最適計算方法為決策樹,調(diào)整參數(shù)為“置信系數(shù)0.1,最少對象數(shù)目5”。對于心臟病數(shù)據(jù)集,最適運算方法為支持向量機,調(diào)參為“懲罰系數(shù)1,多項式函數(shù)”。
參考文獻:
[1]鄒曉輝.樸素貝葉斯算法在文本分類中的應(yīng)用[J].數(shù)字技術(shù)與應(yīng)用,2017( 12):132 - 133.
[2]王知津,周鵬,韓正彪.基于決策樹算法的競爭對手識別模型研究[J].情報理論與實踐,2016,36(3):1-5.
[3]王保義.客戶關(guān)系管理中客戶細分的數(shù)據(jù)挖掘[D].西安:西安電子科技大學(xué),2009.
[4]汪海燕,黎建輝,楊風(fēng)雷.支持向量機理論及算法研究綜述[J].計算機應(yīng)用研究,2014,31(5):1281 -1286.
[5]張松蘭.支持向量機的算法及應(yīng)用綜述[J].江蘇理工學(xué)院學(xué)報,2016,22 (2):14 - 21.
[6]黃文,王正林.數(shù)據(jù)挖掘:R語言實戰(zhàn)[M].北京:電子工業(yè)出版社.2014.