林宗繆 尹雪萊
(1.上海市質量監督檢驗技術研究院 上海 201114)(2.上海交通大學醫學院附屬第九人民醫院 上海 200011)
隨著醫療數據的增長,醫療大數據在臨床醫學研究中得到了極大的發展。大數據技術在疾病的預防、治療、預后決策等方面有著很好的發展前景。醫生在治療中將更多的注意力放在了個體上,但往往很多疾病的產生存在著共性,如在遺傳史、生活環境以及某此臨床特征。那么大規模的收集相關的診療數據,可以分析出疾病的影響因素,更好地對疾病進行防控與治療。2010年起,美國臨床腫瘤學會(ASCO)牽頭了一項癌癥治療的大數據項目——cancerLinQ[1~2]。通過該項目醫生可以獲取到全球范圍的癌癥信息和分析數據,總結疾病規律,形成有效的治療策略。在數據智能化技術開發領域,2013年起IBM與Memorial Sloan-Kettering cancer center開展合作[3~4],通過超級計算機Watson建立人工智能模型,對腫瘤、肺癌、乳腺癌和前列腺癌等數萬份病歷和臨床研究數據進行大數據分析,并在實際醫療中為醫生提供診療解決方案。
頜骨囊性病變是指頜骨內出現的,由囊壁引起的含有液體的囊性腫物[5],包括頜骨囊腫(牙源性囊腫和非牙源性囊腫)、頜骨腫瘤(牙源性腫瘤和非牙源性腫瘤)和瘤樣病變等[6]。頜骨囊性病變患者大部分因牙齒疼痛移位或頜骨膨脹至醫院就診,部分患者沒有明顯臨床癥狀,僅因其他病因在影像學檢查時發現。患者就診后通過詢問病史,專科檢查,和影像學檢查進行初步診斷,再根據患者年齡、病變部位、病變范圍等確定治療方案。患者就診時即會詢問診斷準確率,各治療方式的優缺點、治愈率和并發癥發生幾率等。但并沒有關于頜骨囊性病變的診斷及治療指南給予醫生參考。
本文將基于22517例頜骨囊性病變的就診及治療隨訪數據,建立一個頜骨囊性病變的診斷、治療及預后分析系統,對診療大數據進行預處理,建立數據模型,通過深度的數據挖掘,對頜骨囊性病變進行輔助診斷、疾病分類、預測和預后決策提供支持。當新患者就診后,錄入患者相關信息及輔助檢查信息,系統即可通過大數據分析與模型計算給出初步診斷、診斷準確率、既往患者選擇的治療方式及各治療方法的治愈率、并發癥發生率等數據,能夠快速并直觀地給予醫生指導,有助于醫生與患者間溝通。隨著該系統逐步普及,將有更多就診患者診斷數據錄入,形成全國頜骨囊性病變的大數據庫,大數據應用將使該系統的診斷準確率更加完善,指導意義更明確。
云計算是一種可分配可調節的分布式計算技術。它最大的特點是計算可并行、資源可擴展、性能安全可靠。MapReduce[7]是一個用來處理大數據集的編程模型,它通過Map函數生成鍵值,Reduce函數合并相同鍵的值來實現云計算。Hadoop是基于MapReduce的一個開源運行環境的框架,為用戶提供了在服務器集群環境下處理數據能力,并通過分布式文件系統HDFS來存儲文件。Hadoop框架采用分布式、面向列的開源數據庫Hbase[8]存儲處理后的數據。Hadoop具有高容錯性、可伸縮性和高可靠性的特點,因此在云計算領域得到了廣泛的運用。
Spark[9~10]是一個面向大規模數據處理的統一分析引擎框架,采用最先進的DAG調度器,適合對批數據處理和流數據進行高性能處理。對此類數據的問題處理,Spark運行效率比Hadoop有顯著的提高。Spark可以和Yarn分布式集群資源框架來配合完成調度分配任務,以提高分布式資源管理效率。Yarn運行流程圖如圖1所示。調度框架的核心部分包括資源管理器和節點管理器。資源管理器調度配置系統中應用資源;節點管理器監控每個服務器的資源和計算任務,并把情況反饋給資源管理器。

圖1 Yarn運行流程圖
2.2.1 C4.5決策樹算法
決策樹是一種樹形決策模型,用于解決結構化決策分支問題。決策樹是一種基于布爾檢驗分支序列的預測模型,它使用已知的數據得出更準確的預測和分類。決策樹的主要組成部分包括由決策點的節點、動作和特定選擇表示的決策點。決策樹中的每個規則都是通過跟蹤從根到節點到下一個節點的一系列路徑來表示的,依此類推,直到達到某個操作為止。信息熵描述一個系統所有信息量的一種期望值。信息越復雜,出現情況越復雜,信息熵越大。信息增益是指數據分類前后所含信息熵的差值。決策樹的策略是使路徑上的信息熵盡量小。C4.5是決策樹的一種經典算法。
C4.5算法用增益率來選擇分裂屬性[11~12]。公式如下:

A屬性的信息增益率:

在分支節點選擇信息增益率最大的屬性作為分裂屬性,信息增益率在循環計算中逐漸變小,信息趨向確定。
2.2.2 BP神經網絡算法
人工神經網絡ANN[13]是一種基于生物神經網絡結構和功能的計算模型,具有大規模并行處理、分布式信息存儲、良好的自組織自學習能力。反向傳播算法是一種常用的訓練人工神經網絡的方法。BP[14]反向傳播算法是通過反向權值修正達到學習訓練的目的。BP網絡拓撲如圖2所示。

圖2 BP網絡結構圖
BP算法以網絡誤差為目標函數、采用梯度下降法來計算目標函數的最小值[15]。在反向傳播過程中反復訓練,從而對神經元的權值和閾值待續優化以減小誤差。BP算法非常適合進行機器學習,并在大數據分析中訓練模型。
采集22517例頜骨囊性病變患者收治、診斷、治療和預后的全過程數據,數據量約有2000G。對非結構數據進行處理,建立標準數據倉庫。包括數據清洗、分類,確定關鍵數據指標等。
采集頜骨囊性病變患者收治、診斷、治療和預后的全過程數據,從主治醫師已完成的住院病歷中提取住院患者的影像學信息和臨床信息。包括是否有頜骨膨隆、疼痛、牙髓活力喪失、咬合無力、牙齒移位、頜關系紊亂;性別、居住史、年齡、婚育史、吸煙史、飲食習慣、腫瘤史;全景片、牙CT、頜骨CT、MRI等影像學資料;手術方式、手術次數、并發癥、復發及轉移。
對非結構數據進行處理,建立標準數據倉庫。包括數據清洗、分類,確定關鍵數據指標等。根據對既往頜骨囊性病變信息的初步分析及參考文獻篩選出與診斷相關數據,制定診斷、治療及預后評估方案。
將決策樹算法用于頜骨囊性病變分類系統,提取頜骨囊性病變影像學信息,利用訓練數據中產生的決策樹模型,由一般到特定的共方差紋理特征進行囊腫,良性或惡性腫瘤的分類判斷。該方法顯示出了決策樹在區別頜骨囊性病變種類方面具有一定的可行性,能夠幫助醫生有效地對頜骨囊性病變進行分類。設立數據分析目標和對指標分類,建立最優數據模型。
1)首先提取病人的病史、手術、隨訪信息,進行數據清洗和分類;通過口腔頜面頭頸腫瘤科專家評分等方式提取影像學特征(8項特征,如表1所示)。經過綜合篩選,確定指標。
2)使用Fisher判別和Logistic回歸分析對指標進行篩選優化。
3)通過BP、決策樹C4.5等數據挖掘技術和Fisher判別分析對優化后的指標建立頜骨囊性病變分類診斷模型。

表1 影像學特征評分表
4)對預測結果的靈敏度、特異度、準確度、預測值等進行分析并反饋,大數據模型持續優化形成頜骨囊性病變診斷模型。
5)在頜骨囊性病變診斷模型基礎上建立頜骨囊性病變的診療及預后評估系統,對新的頜骨囊性病變進行助診斷、疾病分類、預測和預后決策,且不斷自我訓練完善診斷模型。
建立大數據云計算系統,基于云計算技術實現的數據挖掘服務。頜骨囊性病變診療與預后分析系統是基于云計算技術實現的醫療服務系統,采用分層設計的思想以及面向組件的設計思路。系統結構如圖4所示。系統分為四個階段:數據采集、數據存儲、數據處理、生成可視化的數據結果。
1)數據采集與預處理得到候選病史數據集。2)采用云計算技術,通過決策樹、線性回歸、人工神經網絡等算法發現患者現病史和診斷及治療預后間的關系。3)利用可視化映射方法實現概念關系的生成。4)將計算結果展示給用戶。
實驗設計將以C4.5決策樹建立算法模型用于頜骨囊性病變分類系統,提取頜骨囊性病變影像學信息,利用訓練數據產生的決策樹模型,由一般到特定的共方差紋理特征進行囊腫,良性或惡性腫瘤的分類判斷。該方法顯示出了決策樹在區別頜骨囊性病變種類方面具有一定的可行性,能夠幫助醫生有效地對頜骨囊性病變進行分類。

圖3 頜骨囊性病變數據模型訓練
設計思想是通過MapReduce計算病癥各屬性的信息增益率。方案設計如下,MapReduce:包含兩個階段,Map階段:主要任務是處理輸入的訓練樣本集,將每條記錄格式化為<key,value>鍵值對,具體格式為key=屬性X,value=<對應屬性X的值x,所屬類別c,記錄id>,再將相同的key的鍵值對分配到同一個Reduce節點上。Reduce階段:處理Map輸出的<key,value>鍵值對,對于具有連續值的屬性,先進行離散化處理,再分別計算各屬性的信息增益率和分枝點。
1)實驗數據:采用表5處理后的數據作為數據源。數據集有30個屬性,3309條為頜骨囊性病變記錄。數據收集診斷為頜骨囊性病變并隨訪五年以上的患者病例3309例,該數據診斷模型有30個屬性,共計3309條,第30位為診斷結果,數據示例(如表2)。
為使上述數據表能用于決策樹算法,需要對數據進行預處理,經過處理的數據如表3。

圖4 頜骨囊性病變診療與預后分析系統結構圖

表2 初始數據

表3 預處理數據
2)實驗環境:配置6臺R740XD/R730XD 2U機架式服務器。安裝Hadoop2.7.3、JDK1.8、Hadoop Yarn、Hbase、Redis等大數據計算環境。
3)實驗目的:測試運行效率和分類符合情況。
4)實驗結果:運行程序生成的決策樹部分如圖5所示。

圖5 經訓練頜骨囊性病變數據集得到的決策樹模型
其 中,7,surgery=had,9,family=yes,13,TT=had,18,bulge=had:->OKC表示第7個屬性為sur?gery=had,第9個屬性為family=yes,第13個屬性為TT=had,第18個屬性為bulge=had的樣本診斷分類為OKC。
我們設計了五個實驗小組,每個小組運行著不同節點數的MapReduce,并將3309條樣本數據進行復制,分別分配到5個實驗小組中進行測試。測試結果如表4。結果表明隨著集群節點的增加,處理結果的速度得到了較大提高。

表4 不同數據量和節點的運行結果
實驗結果總結:頜骨囊性病變的數據集可以在基于Hadoop大數據計算環境下進行決策樹算法并建模,且分類結果與實際診斷結果符合性較高,可以形成具有指導意義的決策模型。且Hadoop集群具有很好的伸縮性,可以為海量的醫療數據提供數據挖掘計算。但是實驗中存在幾個問題需要研究解決。一方面數據集的屬性值有效性,后續工作將結合Fisher判別和Logistic回歸對屬性進行過濾。另一方面對于數據模型需要進行“剪枝”及優化,另外在數據方面,將建立更細致全面的病人診療、影像、預后等數據庫,不斷優化模型。最后,我們將豐富算法庫建立人工神經網絡和多算法交差的模型庫,不斷探索和提高頜骨囊性病變決策模型的精確性和準確率。
本文研究設計了基于頜骨囊性病變大數據的診療及預后分析系統。該系統通過對頜骨囊性病變的臨床數據和影像數據進行篩選優化,建立頜骨囊性病變診斷模型,有助于對頜骨囊性病變進行臨床輔助診斷與預后決策。經過實驗證明該系統對病變診斷具有良好的診斷效果,且具有較好的計算效率和擴展性。