熱線電話:13121318867

登錄
首頁精彩閱讀決策樹(專家藥物模型)操作案例
決策樹(專家藥物模型)操作案例
2016-12-25
收藏

決策樹(專家藥物模型)操作案例

依據常用案例專家藥物模型使用SmartMining桌面版,以決策樹算法為背景,說明大數據如何構建專家診病模型,以及如何通過可視化探索數據,實現決策樹同樣的計算結果!案例側重于大數據思維的形成和可視化探索在數據挖掘中重要作用有所體驗。專家預測模型工作流如下:

1)商業目標

業務理解:

該案例所用的數據是一份模擬醫生診病的數據,如下:

在處理一個陌生的業務時,一是直接從業務中學習,二是從數據中學習業務。從圖中可以看出,其中,年齡、性別、血壓、膽固醇、鈉、鉀是病人的指標,而藥物是醫生針對病人的情況開出的藥物。

確定業務目標:建立專家診病系統,當把病人的指標輸入到該系統時,系統會自動輸出該給此類病人開出的藥物。核心關鍵就是將業務目標轉化為數據挖掘目標。

數據挖掘目標:建立專家診病模型,該模型以病人的病例指標為輸入,以藥物為目標,建立預測模型,該模型可以根據輸入指標的值,計算預測值(藥物)。

操作實現:

2)新建工作流

可以點擊文件菜單下的“新建”開始創建工作流。點擊后會彈出以下向導界面:

輸入工作流的名字后即可完成創建:

3)導入數據

此時要根據數據存儲文件的格式選擇相應的導入節點。在這里由于數據源是CSV文件,因此可以選擇CSV導入節點(也可以使用可變文件)。左側節點庫中CSV導入節點拖到右側的工作流中。雙擊節點或者右鍵菜單中選擇“配置”,彈出如下配置窗口:

點擊<瀏覽>按鈕,選擇相應的數據文件。

注意,根據數據表的數據結構進行配置,此數據如圖配置即可。配置好之后點擊<確認>。

節點下方的預警符號從變為黃色說明配置正確,黃色表示節點可以執行。紅色表示節點尚未配置或者配置有誤,此時節點不可執行。單擊節點,點擊右鍵菜單的或者點擊工具欄的,即可執行工作流。執行完成后預警符號變成綠色。

點擊右鍵菜單的文件表可以查詢數據。

4)理解數據

使用統計學習菜單下的數據審核可以對數據進行描述,這是建模之前必須要做的工作,一方面是為了設計合理的實施方案,另外一方面也是為了更好的選擇合適的算法。

將數據審核節點與數據源節點連接,右鍵單擊執行,執行結束之后,右鍵點擊查看統計視圖。結果如下圖:

從中可以看出每種分類變量的取值及每種取值的個數。比如,從這里我們可以看出藥物字段一共包含五種取值,且出現最多的是Y藥物。在這里目標變量為分類型,因此只能選擇分類預測類模型,如決策樹、邏輯回歸等。

5)預建模

接下來便是嘗試建模,看看建模效果。

首先,從數據準備>列菜單下選擇類型轉換節點。由于性別、血壓、膽固醇三個字段實際存儲類型該是字符型,但這里是整型,因此為了便于以下分析,使用類型轉換節點將它們的類型從整型轉化為字符型。在數據挖掘過程匯總,一定要注意數據類型。配置如下:

其次,使用類型節點指定目標變量的角色,將藥物的角色設為目標。

在進行模型構建的時候一定要確定字段的角色,給算法以明確的指示。

然后,選擇分類預測節點,因為目標變量(藥物)為分類型。此處我們重點學習決策樹算法。節點連接如工作流所示,在決策樹節點配置中選擇目標變量藥物。其中,決策樹節點連接分區節點。決策樹訓練節點可以采用默認配置,無需修改配置,如下:

最后,使用評估節點評估模型的準確性,默認無需配置。評估結果:

從表3中可以看出,模型測試準確度為97.5%,誤判2.5%。但是測試數據的錯誤率達到了15%。一般我們通過分區節點將數據分為訓練數據和測試數據,這樣做主要的目標是檢測模型是否存在過度擬合,如果沒有測試數據集,單獨看模型的訓練結果很好,但是這樣的模型在實際中的適應性比較差。

恭喜你完成了一個簡化的數據預建模過程。

從本模型看,預測的準確性比較高,,但是模型的應用結果不好,我們繼續嘗試,看是否還有優化的可能。

6)數據探索

數據探索最核心的一項工作就是探索輸入變量與目標變量(自變量與因變量)的相關性。分析變量的相關性可以使用相關性計算,也可以使用圖形分析,而后者直觀常用。分析兩個分類型變量可以使用條形圖、散點圖或者直方圖。分析兩個數值型變量可以使用散點圖。分析一個數值型變量和一個分類型變量可以使用直方圖。分析兩個字符型變量的關系可以使用條形圖。

選擇交互條形圖進行字符串字段的可視化探索。(節點在可視化探索>交互視圖>交互條形圖)。分類字段選擇目標字段藥物,顏色標記選擇字符型的字段。通過觀察條形圖,我們來看藥物與幾個字段間的相關性。

通過分析,血壓和藥物字段有著強相關性,因為從圖中可以看出使用藥物B和藥物A的人都是高血壓(3表示高血壓,2表示正常,1表示低血壓),使用藥物C的人都是正常,這種很明細的規律反映出兩個字段間存在很強的相關關系,如下圖所示:

同理,膽固醇和選擇藥物之間也有一定相關性,而性別和選擇藥物相關性不大,如下圖所示:


接下來分析數值型字段的相關性,此時我們使用條形圖。從圖中可以看出血液中的鈉和鉀相關性很弱或者沒有。從圖形化的方式判斷相關性強弱的方法就是看圖形中的規律,規律越明顯,相關性就越強,否則越弱。

就此圖來說,散點圖中的每一個點表示一個病例,而我們最想知道的還不是鈉和鉀的相關性,而是兩者與藥物的相關性,因為藥物才是我們分析的目標。所以我們還想知道散點圖中的每個病例使用的什么藥物??梢暬剿鞯暮诵氖悄繕俗兞颗c輸入變量的關系,所以探索不能夠脫離目標變量。

因此,我們使用藥物作為顏色區分,重新修正散點圖。如下:

從圖中可見,下三角區都是深藍色,說明這部分病例使用的都是Y藥物。這是很明顯的規律,說明這里面有一種很強的關聯。用數學的語言來描述,就是鈉和鉀的比例與藥物有很強的相關性。因此,我們發現了一個很重要的變量就是鈉和鉀的比例。因此,我們可以派生一個變量:鈉鉀比。

7)優化輸入

首先,使用派生字段節點或者Java代碼段節點生成鈉鉀比字段。配置如下:

其次,使用過濾節點過濾鈉和鉀字段,嘗試在不適用鈉、鉀字段,而引入鈉鉀比字段的,通過以上的可視化探索,性別與藥物的相關性不強,也過濾掉。所以,配置如下:

過濾后預覽數據如下(右鍵執行,執行完成后,右鍵查看數據表):

8)重新建模

模型整體評估如下:

我們點擊決策樹節點右鍵查看變量重要性視圖。


結果如下所示:

從評估圖中可看出,模型精度從原來的85%提升帶了100%。當然實際中如果遇到預測精度為100%的情況一定就是錯的。

下面我們再來解讀一下得到的決策樹模型,可以直觀的了解決策樹算法。如下圖所示:

從整體來看,得此類病的人有大約一半的人(45%)選擇服用了Y藥物;

如果病人血液中鈉和鉀的比例大于14.8285,則選擇服用Y藥物,準確率為100%;

如果病人血液中鈉和鉀的比例不大于14.8285,若全部判成X藥物準確率只有47.5%,因此再看病人的另外一個指標血壓;

如果血壓(其值有1、2和3)為2,則全部判為X藥物,準確率為100%;

如果血壓為1,全部判為C藥物,準確率僅50%。再看另外一個指標膽固醇,若膽固醇的值為1,全部判為X藥物,則準確率為100%。若膽固醇的值為2,全部判為C藥物,則準確率為100%。

如果血壓為3,全部判為A藥物,則準確率僅56.8%。再看另外一個指標年齡,若年齡大于50.5歲,判為B藥物,則準確率100%。若年齡不大于50.5歲,判為A藥物,準確率為100%。

總結

第一,在建模中,應該注意過擬合問題。在商業中建模的目的是為了商業應用,因此不僅要保證模型的準確性,更要保證模型的穩定性。

第二,模型應用的核心是模型的風險控制。只有可以控制風險的模型才可以使用,否則不管理論模型建的多么漂亮都是沒有實際意義的。

第三,數據挖掘的成果并不只是數學模型,數據挖掘也不等價于高級模型(如決策樹、神經網絡等)。數據挖掘關鍵是實際應用與指導。

第四,數據挖掘的一個核心工作就是圖形化探索,貌似很簡單卻又最為重要。因為這是數據挖掘思路的源泉。


數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢