cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Choose Language Hide Translation Bar
機器學習入門:通俗易懂解讀決策樹

當今製造業的競爭激烈,企業需要不斷尋求創新的方法來提高效率、降低成本並保持產品品質。在這個動態且複雜的環境中,統計分析工具成為了業界的一大利器,而其中一個廣泛應用的工具就是決策樹。決策樹是一種強大的統計模型,能夠幫助製造業解決各種問題,從產品缺陷分析到生產效率優化,再到供應鏈管理和品質控制。在這篇文章中,我們將探討何謂決策樹,其有哪些應用場景與使用技巧,以應對日益變化的市場需求。

什麼是決策樹?

決策樹是一種機器學習方法,每次根據某個規則,選擇一個特徵,並以該特徵的某個值作為閾值,把訓練樣本遞歸的分為若干子樹,以同樣的規則遞歸拆分,最後得到一棵可用於決策分類的樹形分類器,其主要算法有:ID3、C4.5、CART等。決策樹是一種常用的分類方法,需要監督 (Supervised) 學習,監督學習就是給出一組樣本,每個樣本都有對應的變量和分類結果,在分類結果已知的前提下,透過學習這組樣本得到一顆決策樹,這顆決策樹就能夠對新的樣本進行預測分類。接下來,我們透過一個簡單的案例幫助大家理解決策樹的分析思維。

決策樹案例分享

給出如下一組數據,該數據包含了20個樣本,希望透過下圖(一) “今天是否週末”及“今天心情如何”來預測“是否外出看電影”。

JMP_Taiwan_0-1715413902937.png

圖(一)

 

然後用這一組附帶分類結果的樣本進行訓練,這裡為了簡化過程,我們假設決策樹為二叉樹,且類似於下圖(二):

2.png

圖(二)

 

透過樣本數據的學習,可以發現每個變量節點都有一個具體的判斷指標,如週末、非週末,心情好、一般、不好,我們將其稱之為「閾值」。如果是數值型的變量節點,則閾值一般為一個具體的值,如年齡是否超過30歲對結果進行判斷,則30稱為閾值。    

決策樹的生成一般分為兩步驟,透過學習已知樣本的分類結果來實現:

  1. 一般來說,變量的節點無法給出結果的判斷時,節點會一分為二,如果不是二叉樹則一分為多,直到分無可分。如該樣本數據中,“今天是否週末”無法直接判斷看或者不看電影,則加入新的變量節點“心情如何”再進行拆分,直至無法拆分為止;
  2. 選擇合適的閾值,可讓誤分類率最小。

 

常用的決策樹算法

前面介紹過,常用的決策樹算法有ID3、C4.5和CART(Classification And Regression Tree),其中CART分類效果優於其他算法,也是JMP所採用的方法。接下來我們分別進行介紹:

 ID3算法

採用資訊增益來評估拆分條件,對於一組樣本數據增益越大,說明分類效果越好。資訊增益的過程其實是一種熵降的過程,熵定義的是資訊混亂程度的大小,ID3建模的過程也是將資訊由混亂變單純的過程。

上面案例中提到兩個變量,是否週末、心情如何,我們看看每個變量節點分類效果如何:

  1. “今天是週末”來判斷決定“看電影”:其中11個樣本確定是週末,但最終決定看電影的樣本為10個,誤分類1個;
  2. “心情好”來判斷決定“看電影”:其中6個樣本確定是心情好,最終決定看電影的樣本為6個,誤分類0個;
  3. “心情一般”來判斷決定“看電影”:其中6個樣本確定是心情一般,但最終決定看電影的樣本為4個,誤分類2個。

最後發現“心情好”決定“看電影”的誤分類率最低,也就是資訊增益最大,所以ID3構建決策樹的時候會優先拆分“今天心情如何”這項變量。

C4.5算法

觀察上面ID3的算法會發現,水平數越多的拆分變量節點拆分時的誤分類率越低,熵也會隨之越小。假如使用“ID”作為拆分變量,則子集純度可以達到最高 (因為此時每個子集只有1個樣本),資訊增益最大。但顯然,這樣的拆分變量對於預測是毫無意義的,這也是所謂的過度擬合(Over Fitting)。

因此,為了避免拆分類別過多的“陷阱”,C4.5算法採用資訊增益率來評估拆分條件,資訊增益率的分母會隨著拆分水平數增加而增大,從而導致資訊增益率降低。如果按照C4.5算法進行拆分,雖然“今天心情如何”作為拆分變量可以得到更單純的子集,但是其擁有“心情好、一般、不好”三個水平,導致其資訊增益率反而低於“今天是否週末”這個變量,所以C4.5優先選擇的是“今天是否週末”為拆分變量。具體資訊增益率的算法本文就不做贅述。

CART算法

CART算法與C4.5算法思路是非常相似的,但是在具體實現和應用場景上略有不同:CART算法不僅僅能夠處理分類型的目標響應,同時也能處理連續型的目標響應,這也是其被稱作分類與回歸樹的原因;ID3算法只能處理分類響應,即只能建立分類樹。

CART可以是一個迴歸樹。理想地說每一個子節點裡都只有一個類別時分類應該停止,但是很多數據並不容易完全劃分,或者完全劃分需要很多次拆分,必然造成很長的運行時間,所以CART可以對每個子節點裡的數據分析其均值標準差,當標準差小於一定值可以終止拆分,從而降低計算成本。

 CART算法採用基尼指數 (分類樹) 及標準差(迴歸樹) 作為純度的度量;而ID3算法採用資訊熵作為純度的度量。兩者也有相似之處,總體內包含的類別越混亂,基尼指數就越大。CART算法只能建立二叉樹,而ID3、C4.5算法能夠建立多叉樹 (注:只能建立二叉樹並不是指響應變量只能選取二水平變量,CART算法會採用對多水平進行合併的原則,從而輸出二叉樹)。

CART存在一些細小分割,即過度擬合的問題,為了解決這一問題,對特別長的樹進行剪枝處理,直接剪掉。當然也可以採用一些交叉驗證的方法協助構建決策樹以防止出現過度擬合的問題。

利用JMP進行CART模型建立

利用JMP分析-預測建模-分割(即決策樹)可快速進行CART的模型建立,並形成樹。在JMP中針對分類樹採用的是G²(似然比卡方,與基尼指數類似),G²越小,純度越高,分類的效果越好。如下圖(三) 所示:

3.png

該圖(三)展示如何將響應變量與因子放置在分割平臺對話框中。

 

4.png

上圖(四) CART分類樹顯示,對於“是否看電影”這件事情的決定,“今天是否週末”是最重要的變量,也是使得G²下降最快的變量。再對“今天是週末”這個分支進行拆分,可以得到一個G²為0的子分支(是週末且心情好,即100%決定看電影),達到分無可分的目的,分類樹構建完成。這就是JMP構建決策樹的過程,希望對大家有所幫助。

 

>> 操作影片:利用JMP繪製決策樹

>> 瞭解更多:使用JMP進行預測建模與機器學習

>> 下載JMP:軟體試用 30 天

Last Modified: May 20, 2024 4:40 PM