王曉東,孫安琪,趙托亞,李佳欣,吳雅琴
(內(nèi)蒙古醫(yī)科大學(xué)計(jì)算機(jī)信息學(xué)院,內(nèi)蒙古 呼和浩特 010110)
健康醫(yī)療大數(shù)據(jù)已被國家列為重要的基礎(chǔ)性戰(zhàn)略資源進(jìn)行大力發(fā)展和推進(jìn)[1]。健康醫(yī)療大數(shù)據(jù)中蘊(yùn)含著大量非常有價(jià)值的信息,但是目前很多醫(yī)療衛(wèi)生機(jī)構(gòu)還沒有將這些大數(shù)據(jù)充分利用起來,無法完全發(fā)掘數(shù)據(jù)的潛在價(jià)值,導(dǎo)致數(shù)據(jù)資源浪費(fèi)。如何讓服務(wù)器中的數(shù)據(jù)發(fā)揮作用,這是很多管理者和科研工作者需要面對的問題。此外,目前對于疾病的診斷與治療很多情況下依賴于臨床醫(yī)師的經(jīng)驗(yàn),缺乏大量歷史病例提供的數(shù)據(jù)參考。根據(jù)國家癌癥中心發(fā)布的最新全國癌癥統(tǒng)計(jì)數(shù)據(jù)顯示,肺癌位居我國惡性腫瘤發(fā)病首位,死亡率最高[2],大約每5 位癌癥死亡患者中就有1 位死于肺癌[3]。肺癌預(yù)后較差,在我國人群中其5 年生存率仍不超過20%[4],其診治產(chǎn)生的醫(yī)療費(fèi)用對患者家庭和社會(huì)造成了嚴(yán)重負(fù)擔(dān)。檢驗(yàn)項(xiàng)目是可以反映疾病變化的重要檢測手段。探索檢驗(yàn)項(xiàng)目復(fù)雜組合與疾病之間的聯(lián)系,有利于優(yōu)化治療措施,避免患者承受更大的痛苦[5]。本研究針對肺癌患者在醫(yī)院診療期間檢驗(yàn)項(xiàng)目數(shù)據(jù)進(jìn)行采集、處理以及可視化,以圖形、圖表形式直觀呈現(xiàn)數(shù)據(jù)結(jié)果。使用FP-growth 算法構(gòu)建FP 樹,對數(shù)據(jù)集進(jìn)行關(guān)聯(lián)分析,遞歸挖掘頻繁項(xiàng)集,抽取肺癌患者檢驗(yàn)項(xiàng)目中相關(guān)數(shù)據(jù)實(shí)體及各實(shí)體間關(guān)系。
本研究使用Python 程序設(shè)計(jì)語言對數(shù)據(jù)集進(jìn)行處理分析,Python 版本3.8.2,采用Anaconda3 5.1.0(64-bit)的Jupyter Notebook 作為開發(fā)環(huán)境,導(dǎo)入xlrd、jieba、matplotlib、wordcloud、numpy、pandas、sklearn 等包完成Excel 數(shù)據(jù)讀取、分詞、繪圖、詞云圖、科學(xué)計(jì)算、統(tǒng)計(jì)、機(jī)器學(xué)習(xí)等功能。
以某醫(yī)院診斷結(jié)果為肺癌、肺癌術(shù)后、肺癌術(shù)后化療、肺癌轉(zhuǎn)移、肺癌晚期的54 例患者,在醫(yī)院診療期間(2017 年10 月16 日-2018 年10 月15 日)的檢驗(yàn)項(xiàng)目數(shù)據(jù)作為研究對象。
肺癌患者檢驗(yàn)項(xiàng)目原始數(shù)據(jù)保存于ORACLE數(shù)據(jù)庫中,相關(guān)數(shù)據(jù)涉及12 個(gè)數(shù)據(jù)表,使用表聯(lián)接和查詢操作后,生成的數(shù)據(jù)結(jié)果集含有47 個(gè)字段,同時(shí)對其進(jìn)行數(shù)據(jù)脫敏處理,保護(hù)患者隱私。為了便于使用Python 進(jìn)行數(shù)據(jù)處理和分析,將數(shù)據(jù)結(jié)果導(dǎo)出為Excel 文件。
3.1 數(shù)據(jù)歸約 在不影響數(shù)據(jù)完整性和數(shù)據(jù)分析結(jié)果正確性的前提下,根據(jù)本研究的數(shù)據(jù)特點(diǎn),對數(shù)據(jù)集進(jìn)行維歸約[6],降維后的數(shù)據(jù)集包含就診號(hào)、年齡、性別、檢驗(yàn)項(xiàng)目編號(hào)、檢驗(yàn)項(xiàng)目名稱、檢驗(yàn)項(xiàng)目結(jié)果值、檢驗(yàn)項(xiàng)目結(jié)果參考標(biāo)準(zhǔn)、所屬種類等21 個(gè)字段。
3.2 數(shù)據(jù)清洗 由于原始數(shù)據(jù)可能存在“臟數(shù)據(jù)”,故需構(gòu)建Python 數(shù)據(jù)檢測程序,過濾掉冗余數(shù)據(jù),將存在噪聲數(shù)據(jù)與缺失數(shù)據(jù)的記錄刪除。經(jīng)過數(shù)據(jù)清洗后,數(shù)據(jù)集共含有8921 條檢驗(yàn)項(xiàng)目數(shù)據(jù)記錄,此數(shù)據(jù)集記為“原始數(shù)據(jù)集”。
4.1 年齡性別數(shù)據(jù)集 構(gòu)建Python 程序,提取就診號(hào)、年齡和性別字段,過濾掉數(shù)據(jù)集內(nèi)重復(fù)記錄,生成年齡性別數(shù)據(jù)集。
4.2 關(guān)聯(lián)分析數(shù)據(jù)集 為了使用FP-growth 算法能夠準(zhǔn)確對肺癌患者檢驗(yàn)項(xiàng)目進(jìn)行關(guān)聯(lián)分析,構(gòu)建Python 程序?qū)υ紨?shù)據(jù)集按照以下標(biāo)準(zhǔn)進(jìn)行篩選與排除,處理后共計(jì)2174 條數(shù)據(jù)記錄,此數(shù)據(jù)集記為“關(guān)聯(lián)分析數(shù)據(jù)集”。
4.2.1 按檢驗(yàn)次數(shù)與其他基礎(chǔ)疾病檢驗(yàn)項(xiàng)目進(jìn)行篩選與排除 根據(jù)相同檢驗(yàn)項(xiàng)目求和得到總次數(shù)并降序排列,排除草酸鈣結(jié)晶、血氨等16 項(xiàng)檢驗(yàn)次數(shù)是1 的項(xiàng)目,排除肺癌患者其他基礎(chǔ)疾?。ㄈ缣悄虿?、高血壓等)的檢驗(yàn)項(xiàng)目,如空腹血糖、糖類抗原CA19-9、收縮壓、舒張壓等。
4.2.2 按檢驗(yàn)結(jié)果進(jìn)行篩選與排除 肺癌患者檢驗(yàn)項(xiàng)目數(shù)據(jù)集字段RESULT_FLAG(檢驗(yàn)結(jié)果)有H(高于標(biāo)準(zhǔn)值)、L(低于標(biāo)準(zhǔn)值)、M(介于標(biāo)準(zhǔn)值區(qū)間之內(nèi))3 個(gè)結(jié)果。排除結(jié)果為M 的檢驗(yàn)項(xiàng)目,即檢驗(yàn)結(jié)果為正常值的數(shù)據(jù)。保留結(jié)果值為H 和L 的檢驗(yàn)項(xiàng)目,即檢驗(yàn)結(jié)果為異常值的數(shù)據(jù)。
5.1 按性別、年齡統(tǒng)計(jì) 對年齡性別數(shù)據(jù)集中不同性別年齡字段的最大值、最小值和均值進(jìn)行統(tǒng)計(jì)計(jì)算。數(shù)據(jù)集中男34 例,女20 例。統(tǒng)計(jì)發(fā)現(xiàn)男性患者最低年齡45 歲,平均年齡63.9 歲;女性患者最低年齡48歲,平均年齡64.6 歲。男女患者平均年齡差別不大??傮w上男性罹患肺癌發(fā)病率高于女性,在高齡人群中表現(xiàn)更加明顯[7]。對本研究肺癌患者樣本數(shù)據(jù)集不同年齡段、不同性別人數(shù)進(jìn)行統(tǒng)計(jì),60 歲以下患者17 例,占樣本全部患者的31.5%。肺癌呈現(xiàn)低齡化態(tài)勢較為明顯,見圖1、圖2。
圖1 肺癌患者不同性別、年齡統(tǒng)計(jì)
圖2 肺癌患者不同年齡段人數(shù)統(tǒng)計(jì)
5.2 按檢驗(yàn)項(xiàng)目分類統(tǒng)計(jì) 統(tǒng)計(jì)數(shù)據(jù)發(fā)現(xiàn),原始數(shù)據(jù)集內(nèi)檢驗(yàn)項(xiàng)目分為尿液、靜脈血漿、痰液、胸水、靜脈全血、靜脈血清、動(dòng)脈血7 個(gè)大類,每個(gè)大類中又包含若干種檢驗(yàn)項(xiàng)目。按檢驗(yàn)項(xiàng)目分類統(tǒng)計(jì)結(jié)果見表1。
表1 按檢驗(yàn)項(xiàng)目分類統(tǒng)計(jì)結(jié)果
靜脈血清包含檢驗(yàn)項(xiàng)目種類最多,達(dá)到76 項(xiàng)。靜脈全血次之,包含檢驗(yàn)項(xiàng)目59 項(xiàng)。尿液包含35項(xiàng)。三者在肺癌患者所有體液檢驗(yàn)項(xiàng)目中占74.23%,檢驗(yàn)總次數(shù)占全部的94.95%??梢婌o脈血清、靜脈全血以及尿液等體液檢驗(yàn)項(xiàng)目是除了胸部X 線、CT、MRI、超聲、核素顯像、PET-CT 等影像學(xué)方法之外,對肺癌治療效果監(jiān)測及預(yù)后評(píng)估的有效手段。
5.3 檢驗(yàn)項(xiàng)目詞云圖 詞云圖可以將數(shù)據(jù)集中出現(xiàn)頻率較高的關(guān)鍵詞予以視覺化呈現(xiàn)[8]。設(shè)計(jì)Python程序,構(gòu)建自定義語料庫,對肺癌患者檢驗(yàn)項(xiàng)目數(shù)據(jù)集的檢驗(yàn)項(xiàng)目字段進(jìn)行分詞以及詞頻統(tǒng)計(jì),自動(dòng)過濾冗余無效內(nèi)容,設(shè)置詞云圖背景顏色、隨機(jī)生成狀態(tài)等參數(shù),生成檢驗(yàn)項(xiàng)目詞云圖。
檢驗(yàn)項(xiàng)目按出現(xiàn)次數(shù)從多到少有白細(xì)胞、紅細(xì)胞、血紅蛋白、紅細(xì)胞分布寬度SD、紅細(xì)胞壓積、平均血小板體積、淋巴細(xì)胞百分比等,白細(xì)胞在所有檢驗(yàn)項(xiàng)目中出現(xiàn)次數(shù)最多,為276 次。紅細(xì)胞次之,為215 次。對數(shù)據(jù)集所有檢驗(yàn)項(xiàng)目字段,經(jīng)去除重復(fù)項(xiàng)處理后得到186 種。肺癌患者檢驗(yàn)項(xiàng)目數(shù)據(jù)集出現(xiàn)次數(shù)最多的是白細(xì)胞,患者人均達(dá)到5.1 次。肺癌化療時(shí),外周血中的白細(xì)胞常常會(huì)出現(xiàn)異常[9,10]。紅細(xì)胞人均檢驗(yàn)達(dá)到3.98 次,紅細(xì)胞對于腫瘤細(xì)胞具有極強(qiáng)的親和作用[11,12],紅細(xì)胞的補(bǔ)體受體則對腫瘤細(xì)胞發(fā)揮黏附及攻擊作用[13]。檢驗(yàn)項(xiàng)目詞云圖見圖3。
圖3 檢驗(yàn)項(xiàng)目詞云圖
6.1 基本定義 從大規(guī)模數(shù)據(jù)集中尋找實(shí)體間的隱含關(guān)系被稱作關(guān)聯(lián)分析[14]。頻繁項(xiàng)集是指出現(xiàn)頻率較高實(shí)體的集合[15],關(guān)聯(lián)規(guī)則可以找出存在強(qiáng)關(guān)系實(shí)體之間的規(guī)則[16]。關(guān)聯(lián)分析是從大規(guī)模數(shù)據(jù)集中尋找事務(wù)之間的隱含關(guān)系。
關(guān)聯(lián)規(guī)則X?Y 的支持度記為support(X?Y),表示在所有事務(wù)中,項(xiàng)集X 和項(xiàng)集Y 同時(shí)出現(xiàn)的頻繁程度[17],如公式(1)所示。項(xiàng)集X 的支持度大于或等于預(yù)先設(shè)定的最小支持度閾值,則項(xiàng)集X 為頻繁項(xiàng)集。
關(guān)聯(lián)規(guī)則X?Y 的置信度記為confidence(X?Y),表示在事務(wù)數(shù)據(jù)庫Z 中,包含項(xiàng)集X 的事務(wù)中包含項(xiàng)集Y 的百分比[18],如公式(2)所示。關(guān)聯(lián)分析的目的就是找出同時(shí)滿足最小支持度閾值和最小置信度閾值的強(qiáng)關(guān)聯(lián)規(guī)則。
項(xiàng)集X 和項(xiàng)集Y 之間的提升度記為lift(X,Y),是表示項(xiàng)集X 和項(xiàng)集Y 的相關(guān)性度量[19],如公式(3)所示。
目前較常用的關(guān)聯(lián)分析算法有Apriori 算法和FP-growth 算法,Apriori 算法只要增加頻繁項(xiàng)集,就會(huì)重新掃描整個(gè)數(shù)據(jù)集。如果數(shù)據(jù)集規(guī)模很大時(shí),會(huì)顯著降低頻繁項(xiàng)集挖掘速度。FP-growth 算法相比較于Apriori 算法,采用了優(yōu)化的數(shù)據(jù)結(jié)構(gòu),只需要掃描兩次數(shù)據(jù)集[20],加快了挖掘速度。鑒于此,本研究采用FP-growth 算法進(jìn)行關(guān)聯(lián)分析。
6.2 主程序構(gòu)建與算法優(yōu)化 關(guān)聯(lián)分析之前,需要構(gòu)建Python 主程序,將關(guān)聯(lián)分析數(shù)據(jù)集內(nèi)每名肺癌患者若干條檢驗(yàn)項(xiàng)目數(shù)據(jù)記錄中的檢驗(yàn)項(xiàng)目字段轉(zhuǎn)化為列表形式,然后將所有肺癌患者檢驗(yàn)項(xiàng)目列表轉(zhuǎn)化為一個(gè)二維列表,作為FP-growth 關(guān)聯(lián)算法的輸入?yún)?shù)。主程序在調(diào)用FP-growth 算法運(yùn)行過程中,需要對算法的參數(shù)進(jìn)行調(diào)整和優(yōu)化。
6.3 關(guān)聯(lián)分析結(jié)果 設(shè)置支持度為50%,置信度為70%,使用FP-growth 關(guān)聯(lián)算法挖掘檢驗(yàn)項(xiàng)目數(shù)據(jù)集的頻繁項(xiàng)集。提升度大于1 的有16 個(gè)頻繁項(xiàng)集,其中頻繁二項(xiàng)集11 個(gè),頻繁三項(xiàng)集5 個(gè),使用上文6.1 的公式(1)(2)(3)計(jì)算各頻繁項(xiàng)集支持度、置信度、提升度。頻繁項(xiàng)集及結(jié)果見圖4。
圖4 頻繁項(xiàng)集及結(jié)果
提升度大于1 且值越高表明正相關(guān)性越高[21]。白細(xì)胞-淋巴細(xì)胞百分比、白細(xì)胞-尿膽原、血紅蛋白-紅細(xì)胞壓積、血小板壓積-淋巴細(xì)胞百分比、血小板壓積-尿膽原5 個(gè)檢驗(yàn)項(xiàng)目對在所有頻繁項(xiàng)集中出現(xiàn)的概率均為12.50%。提升度最高[lift(X,Y)=1.67]的頻繁二項(xiàng)集是血紅蛋白-紅細(xì)胞,其次為血紅蛋白-紅細(xì)胞壓積、中性粒細(xì)胞百分比-淋巴細(xì)胞百分比。提升度最高[lift(X,Y)=1.67]頻繁三項(xiàng)集是血紅蛋白-紅細(xì)胞壓積-紅細(xì)胞,其次為白細(xì)胞-尿膽原-血小板壓積、白細(xì)胞-淋巴細(xì)胞百分比-血小板壓積。
本研究將大數(shù)據(jù)處理與分析技術(shù)應(yīng)用于較少問津的檢驗(yàn)項(xiàng)目數(shù)據(jù),以某醫(yī)院肺癌患者在醫(yī)院診療期間檢驗(yàn)項(xiàng)目數(shù)據(jù)作為研究對象,深入挖掘了肺癌患者檢驗(yàn)項(xiàng)目內(nèi)在規(guī)律,實(shí)現(xiàn)檢驗(yàn)項(xiàng)目數(shù)據(jù)的知識(shí)發(fā)現(xiàn),希冀為肺癌臨床輔助診療提供參考,促進(jìn)精準(zhǔn)醫(yī)療、適度醫(yī)療。