理論加案例,一文讀懂數據分析中的分類建模

一、什么是分類

分類,是數據建模領域的重要分支,你每天也都會接觸。

手機垃圾短信過濾,就是分類算法給短信打的標簽,比如0代表正常短信,1代表垃圾短信。

1.png

在醫學領域,根據影像檢查判斷腫瘤是良性還是惡性。在工業領域,根據設備工作特征做故障診斷。在材料領域,根據配方快速預測新材料的特性是否符合要求。

前面這些例子大多是二分類,即只有兩個標簽,更細的還有多分類。

比如電子郵件分為正常郵件、廣告郵件、垃圾郵件或釣魚郵件。貸款風險評估,分類為高風險中風險低風險。工廠的質量控制,分類為一級品、二級品以及廢品。


二、分類算法

分類算法的核心邏輯是找到數據中特征與標簽之間的映射關系。簡單來說,就是找到一個“函數”,根據輸入數據的特征,準確地判斷數據所屬的類別。

2.png

根據算法原理和實現方式,分類算法可以分為線性算法,非線性算法和集成學習算法。這三類算法分別適合不同的建模場景,訓練出的模型復雜度一般也越來越高。

針對每一大類,數據建模軟件DTEmpower也內置了多種算法。

3.png

比如線性算法里的邏輯回歸算法Logistic,它的優點是簡單高效計算成本低,且可解釋性強,比如你能通過模型看出某個特征的重要性。

但線性算法更適合特征與目標變量之間存在線性關系的場景。所謂線性關系,就是因變量y可以寫成y=ax1+bx2+cx3...這種形式。

4.png

非線性分類算法里的比較著名的KNN,K近鄰算法。它的優點是原理簡單且能處理非線性數據,對異常值不敏感。但缺點就是計算效率低,處理大數據時比較慢,因此也更適合數據量不大且數據集維度不高的情況。

集成學習算法里,RandomForest隨機森林算法很有代表性,它最顯著的優點是抗過擬合能力強。

所謂過擬合,指的是模型在訓練數據上表現非常好,精度很高。但遇到新數據,精度就崩了。

除了抗過擬合,隨機森林算法的魯棒性也很強。如果數據存在異常值,模型也不會有明顯的精度下降。

當然凡事都有兩面性。隨機森林算法的缺點之一就是模型訓練過程的計算量大,而且得到的模型是一個黑箱模型。

相比線性模型,黑箱模型的可解釋性差多了,你給它輸入,它給你輸出。這個結果的精度可能很高,但如果我問你它為什么輸出這個結果,你很難解釋清的。

下面我列出常見分類算法的優缺點以及適用場景,就不逐個介紹了。

5.png

之所以不逐個介紹,第一是我怕你睡著

第二,即使你知道了每種算法的優缺點,當接觸一個新場景或者拿到一組新數據,你也還依然不知道用什么算法。

比如我給你一個數據集,你怎么會知道變量之間是線性還是非線性關系呢?

6.png

實際的算法選擇過程,都有一定的嘗試成分。從易到難,從簡到繁,最終在模型精度和計算量之間做權衡。

在實際操作時,我們推薦邏輯回歸和決策樹這兩個基線算法。它們操作簡單,易上手且性能尚可。當你不知道用什么算法時,就可以嘗試用基線算法。

7.png

如果基線算法不滿足要求,或者你想做更進一步的探索,可以再嘗試其它的進階算法。

比如集成學習算法里的Bagging算法,就可以作為首選的進階算法。這種算法操作簡單,且魯棒性高,在處理高維度數據時表現不錯。


三、分類模型可視化工具

你多次嘗試之后,關鍵的問題來了,如何判斷模型的好壞呢?

接下來介紹決策邊界、混淆矩陣和ROC 曲線三個可視化工具,它們構成了判斷模型精度的“黃金三角”。

第一個,決策邊界

假設你有一堆手辦,共分為兩種,一種會打籃球,一種不會。現在你畫一條線,把它們分成了兩類。這條線,就是我們今天要講的決策邊界。

8.png

簡單來說,決策邊界就是分類模型用來區分不同類別數據的“分界線”。

第二個,混淆矩陣

混淆矩陣其實是一個表格,展示了分類模型預測標簽和實際標簽之間的關系。

9.png

對于二分類,它就是一個2X2的表格,左上表示實際為正,預測也為正,預測對了,True Positive,簡稱TP。

右下表示實際為負,預測也為負數,也預測對了,True Negative, 簡稱TN。

那么另外兩個區域,就表示預測錯了,一個叫False Negative, FN。另一個叫False Positive, FP。

顯然,TP+TN通常越大越好。因此判定模型的好壞,也有一個定量指標叫準確率。另外還有精確率、召回率和F1分數這幾個指標,也都比較常用。

10.png

第三個,ROC曲線,全稱叫受試者工作特征曲線(Receiver Operating Characteristic Curve)。

ROC曲線所在坐標的橫軸叫假陽性率,也就是實際為負,但被預測為正的比例。縱軸是召回率,也就是實際為正,且被預測為正的比例。

11.png

下面說說這個曲線是如何生成的。

分類模型在做預測分類時,你覺得它對預測結果有百分百的信心嗎?顯然不會。

它實際是通過概率判斷的,比如計算發現某個樣本屬于A類的概率是70%,你如果設置閾值是50%,那么你就可以輸出結果判定這個樣本屬于A類。

當然,如果計算之后發現這個樣本屬于A類的概率只有40%,那你就能輸出結果,判定它不屬于A類。

所以,你設定的閾值不同,模型的表現也不同。

OK,下面做三件事。

第一,選擇一系列不同的閾值。

第二,對于每一個閾值,計算出當前的假陽性率和召回率。

第三,把這些點連起來,就得到了ROC曲線。

12.png

如果你不做數據建模,而是隨機猜測的,也就是分類正確的概率是50%,那么生成的ROC曲線就是從(0,0)到(1,1)的一條直線。

從ROC曲線的定義可知,這個曲線越靠近左上角,表示模型精度越高。所以ROC曲線也有個定量值,叫曲線下面積,簡稱AUC。顯然,曲線下的面積AUC越大,也表示曲線越靠近左上角。

13.png

介紹完三種工具,那么最終如何判斷呢?

通常情況下,你看混淆矩陣時,左上角和右下角的數越大越好。看ROC曲線時,曲線上方的面積越小越好。

為什么說通常情況下?因為分類模型好壞的判斷,必須要結合業務背景。

舉個例子,在地震預測時,我們希望盡可能預測到所有的地震,哪怕這些預測到的地震中只有少數真正發生了,這個時候我們就可以犧牲精確率。寧愿發出100 次警報但只對 10 次,也不希望預測了 10 次,但只有 8 次正確而漏掉2次,因為只要有 1 次地震沒預測到都會造成巨大的損失。這是一個 “寧可抓錯,不可放過” 的場景。

但另一個場景,垃圾郵件分類,我們雖然希望模型能夠找到所有的垃圾郵件,但一旦有一封正常郵件被分到了垃圾信箱里,你肯定很生氣。所以這時候寧可漏掉垃圾郵件,也不能把正常郵件分錯。這就是一個“寧可放過,不可抓錯” 的場景。

14.png

能體會出來吧?在不同的場合,我們在建模時需要根據實際情況,通過查看不同的參數指標來判斷分類模型質量。


四、分類建模案例

理論部分講解差不多了,下面做一個實際的數據建模分類案例。

工程背景是某種新材料的研制,這種材料由很多種配方組成,不同的組成對應不同的材料性能。

廠經過多年的積累,已經有了大量數據。其中前83列是原材料,后面幾列是配方對應的材料性能。而我們關心的是最后一列,耐彎折性。1表示耐彎折性達標,0表示不達標。

15.png

我們數據建模想做的事,是得到一個分類模型。基于這個模型,你輸入一種新的配方,讓模型判斷配方組成的新材料的耐彎折性是否達標,省去做實驗測試的過程。

開始操作。啟動DTEmpower,新建工程選擇專業模式,之后在畫布上依次拖入數據讀取、變量剔除、空值處理、變量設定、數據分割節點,然后依次連線,表示數據傳遞。

16.png

數據讀取、變量剔除就不解釋了,字面意思很簡單。

空值處理的作用是刪除存在空值的數據行,而數據分割是將數據分為訓練集和測試集,默認按照3:1的比例分割。訓練集用來訓練模型,測試集用來測試模型精度。

再然后,拖入分類算法節點。這里我拖入極端隨機樹算法,節點配置保持默認。

注意,軟件默認是打開交叉驗證的,交叉驗證是數據建模領域的一個重要概念,也是DTEmpower軟件的底層能力。

交叉驗證核心思想是:將數據集分成若干份,輪流使用其中一份作為驗證集,其余的作為訓練集,最后對模型進行多次的訓練和評估,以檢驗模型的泛化能力。當然,打開交叉驗證之后,也會增加訓練時間。

最后再拖入模型對比節點,模型對比節點能給出分類算法的定量精度值。而計算計算精度值時,基于的數據就是數據分割節點分出來的測試集。

17.png

模型訓練結束后,單擊得到的分類模型,能看到模型信息,包括決策邊界、ROC曲線以及混淆矩陣。

決策邊界,能看出來有一條曲線,把界面分成了兩部分,能大概展示模型對訓練集的擬合程度。

18.png

混淆矩陣,可以看出來實際為0且預測為0的數據有26個。實際為1預測也為1的值有36個。

19.png

ROC曲線,它繪制了兩條曲線,分別是0和1的。同時也給出了AUC的值,巧了,都是0.86。這個表現還不錯,說明模型具有良好的區分能力。

20.png

這就是我們用隨機樹算法訓練得到的分類模型,你如果感興趣的話,可以嘗試用其它算法試試,看能不能得到精度更高的模型。

歡迎前往天洑官網下載軟件,免費試用30天,即下即用。

21.png

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP