分類樹(Classification Tree)探討Baseball Data 2004 靜 宜 大 學 Data Mining 分類樹(Classification Tree)探討Baseball Data 應用數學系 姓 名:陳明豐 指導老師:于昌永
分類樹的介紹 分類樹是經常被使用的資料探勘工具,廣為應用在資訊科學、醫學、工商業上,主要原因有: 模式容易解釋。 可同時處理連續及類別變數。 較不受離群值(outlier)影響。 目的是利用分類樹找出和薪資相關的重要變數,並建立預測模式。
方法及過程 首先探討如何將薪資分類以應用分類樹。 以不同薪資分類應用R中的rpart程式。所採用之分割指數為Gini指數Σpi(1-pi)。 解釋不同分類樹模式的結果。 選取之最佳模式預測有缺失值之59名球員薪資。 總結。
如何將薪資分類以應用分類樹 薪資經log函數轉換和排序之曲線圖,顯然不是線性的
找出薪資分界將薪資分類 Min 1st Quartile Median Mean 3rd Quartile Max 67.5 193.0 430.0 542.2 750.0 2460.0 1.如果以平均值或中位數將薪資分成2類,看起來並不適當。 圖1 2.如果以第一分位數和第三分位數將薪資分成3類,看起來也不能很明顯的區分開來。如:圖2 因此,接下來以 SALARY 的 轉折點 來做為分類的標準.
Mean :red line Median:blue line 【圖1】以平均值或中位數將薪資分成2類 BACK
【圖2】以第一分位數和第三分位數將薪資分成3類 750 193 【圖2】以第一分位數和第三分位數將薪資分成3類 BACK
以轉折點分為兩類(高薪/低薪) 高薪(1) 750 低薪(0)
兩類的分類樹模式 低薪: 192 高薪: 71 重要解釋變數: 生涯打點、 1986上場次數。 >=317.5 <317.5 如果現在有一個數據C.RBI=400 AB=430 ER=3 ASS=410 則我們可以說他薪水應該是屬於高薪的部分(1)。 生涯打點 低薪: 44 高薪: 63 低薪: 148 高薪: 8 <424 >=424 低薪 1986年 上場次數 低薪: 30 高薪: 9 低薪: 14 高薪: 54 低薪 高薪
將薪水分成三類 高薪(2) 中薪(1) 1050 750 低薪(0) 237
2代表高薪、1代表中薪、0代表低薪。 26/7/2 表示: 26個0 7 個1 2 個2
三類的分類樹模式 此分類樹遠較上一模式複雜。 前兩重要變數是相同的,但 生涯打點的分割值不同。 防守變數在內,但不明顯。 低薪:192 中薪:45 高薪:26 <325.5 生涯打點 低薪:152 中薪:8 高薪:2 低薪:40 中薪:37 高薪:24 >=424 低薪 1986上場次數 低薪:26 中薪:7 高薪:2 低薪:14 中薪:30 高薪:22 此分類樹遠較上一模式複雜。 前兩重要變數是相同的,但 生涯打點的分割值不同。 防守變數在內,但不明顯。 >=93.5 低薪 1986得分 低薪:2 中薪:0 高薪:8 低薪:12 中薪:30 高薪:14 >=93 高薪 1986接殺 低薪:7 中薪:29 高薪:12 低薪:5 中薪:1 高薪:2 >=60 低薪 1986保送 低薪:1 中薪:9 高薪:10 低薪:6 中薪:20 高薪:2 <501 中薪 1986上場次數 低薪:1 中薪:8 高薪:4 低薪:0 中薪:1 高薪:6 中薪 高薪
缺失 排序後的薪資,分佈在低薪之下太過密集,而且平順,沒有明顯轉折點,如果相要細分下去,再來分段,只能在高薪部分去分,所以無法解釋密集部分的球員。 那麼該如何將薪資分類以應用分類樹比較好呢 ? ?
迴歸工具的分段方式 利用迴歸找出一個高相關係數的model如下: Logsalary與此model 相關係數達 0.8448994 Logsalary=3.206+0.01015*HIT1+0.3623*YEAR+0.006119* W+0.0002905*PO-0.01551*year2 Logsalary與此model 相關係數達 0.8448994 tree2=rpart(reg.fit~SALARY) plot(tree2);text(tree2,use.n=TRUE,cex=0.65) ★我們利用迴歸的分類樹幫我們分出區段 ~157.5~716.7~分成三類 ~157.5~312.5~716.7~分成四類
Log(SALARY) Fit模型後的log(SALARY) 由此圖可以看出二者有高度相關
三類的分類樹模式 低薪 52 中薪132 高薪 79 重要解釋變數: 生涯得分、 生涯安打、 1986安打。 低薪 9 中薪130 <81 生涯得分 低薪 9 中薪130 高薪 79 低薪43 中薪 2 高薪 0 <669 生涯安打 低薪 接下來看看四類的分類樹模型。 低薪 0 中薪40 高薪72 低薪 9 中薪90 高薪 7 <83.5 1986安打 中薪 低薪 0 中薪22 高薪 5 低薪 0 中薪18 高薪67 中薪 高薪
四類的分類樹模式 重要解釋變數: 生涯上場次數、 生涯得分、 生涯安打、 1986上場次數。 此分類樹將薪資分成四類 低薪52 中下54 中上78 高薪79 <1322 生涯上場次數 低薪 51 中下37 中上 2 高薪 0 低薪 1 中下17 中上76 高薪79 <81 <669 生涯得分 生涯安打 此分類樹將薪資分成四類 0~157.5、157.5~312.5、312.5~716.7、716.7以上 接下來我們試者以此分類樹來預測一些未知的資料。 低薪 0 中下 8 中上32 高薪72 低薪43 中下 2 中上 0 高薪 0 低薪 8 中下35 中上 2 高薪 0 低薪 1 中下 9 中上44 高薪 7 <412.5 低薪 中下 中上 1986上場次數 低薪 0 中下 7 中上21 高薪12 低薪 0 中下 1 中上11 高薪60 中上 高薪
→預測59筆未知SALARY資料 預測薪資在0~157.5(低薪): 共17筆
預測薪資在157.5~312.5(中下): 共10筆
預測薪資在312.5~716.7(中上): 共26筆
預測薪資在716.7~以上(高薪): 共6筆
總結 分類樹的跟一般統計方法不大相同,變數不需任何假設、或任何分配,很容易解釋變數,而且在現今多領域都相當實用。找到一個最佳 Model 後,此Model可以幫助我們判斷一筆新資料的歸屬,做出預測。 例如:一間醫院可以經由一筆資料做出最佳 Model ,以後到此醫院的病患,可以透過此 Model 判斷就醫的先後順序,及時搶救。 ~The End~