第四章 研究結果
第一節 連續性依變數資料集
國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
18
第四章 研究結果
本節中將詳述 Cluster-while-regression with tree hierarchy、Hierarchical group-lasso regularization、Lasso 迴歸與集成樹演算法隨機森林及梯度提升機於連續及類別依變數資 料集的實驗方式,與其於可於公開平台取得,可受公證的兩個連續依變數資料集,分別 是Shmueli et al. (2011)所使用的 Toyota Corolla 資料集和 De Cock (2011)提供的 Ames 房 屋資料集,以及私有的二元依變數應付帳款違約與否資料集的預測表現並加以比較。
第一節 連續性依變數資料集
首先關於資料前處理的部分,為比較各自變數間對依變數的影響力大小及方向性,
連續性自變數與依變數原則上依演算法特性於 Lasso 迴歸、Hierarchical group-lasso regularization 及 樹 結 構 中 包 含 數 個 Lasso 迴 歸 的 Cluster-while-regression with tree hierarchy 皆會依訓練資料集變數為基準標準化,依變數亦標準化是為加快演算法收斂速 度,不受變數尺度影響的隨機森林及梯度提升機則否,並將資料集依70%、30%分為訓 練及測試資料集,接著是各演算法的實驗實現流程,Cluster-while-regression with tree hierarchy 演算法於實作時為將連續自變數納入分割依據考量並決定,若全部變數遍歷所 有可能性,所需花費的計算時長相較計算結果不符比例原則,因此將連續變數可能分割 點簡化為連續變數第二十五百分位數、中位數、第七十五百分位數,與類別變數各類別 皆為分割依據,並因整棵樹的變數切割點組合過多故使用基因演算法以演算法目標函式 (12a)迭代選擇,當整棵樹子葉數為四時,流程如下:
1. 為選擇由基因演算法所選出的變數切割點組合,由訓練資料集再以60%、40%
分為本演算法所用訓練資料集及驗證資料集。
2. 以訓練資料集的未標準化連續變數第二十五百分位數、中位數、第七十五百分 位數和類別變數各類別為基準,檢視製作每筆資料是否滿足各變數分割點。
3. 建構將資料集分為數群的樹狀結構,樹的深度包含根部為三層,以訓練資料集 分到各子葉中的資料訓練交叉驗證層數為3 的 Lasso 迴歸模型,子葉中資料筆
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
數不可小於訓練資料集筆數固定百分比。
4. 上述樹狀結構各節點分割點選擇則是透過基因演算法選出目標函數(12a)最小 的組合,使用的函數為R 語言的 gramEvol 套件中的 GeneticAlg.int,迭代數設 為50,其餘皆為預設值。
5. 選出以基因演算法擇出的組合目標函數值最小前三者,將驗證資料集放入各組 合樹狀結構,以各子葉Lasso 迴歸模型預測誤差平方(SSE)總合最小者為最終確 定的樹狀結構。
其中步驟四以樹結構有四個子葉為例,染色體長度因結構中共有三個節點,長度為 三,染色體內的數字稱為密碼子,數字大小範圍為步驟二各變數分割點總數,故數字需 為整數,表示以某分割標準為依據分群,染色體示意圖如圖3,當中的數字具有順序性,
由左至右為第一到第三個節點的分割依據代表數字,若子葉數為二時,則步驟四中改為 遍歷所有可能切割點,不使用基因演算法挑選可能切割點組合,因只有單一切割點需決 定,大幅度降低整棵樹切割點組合數,而若子葉數為三,則步驟三改為於分出四個子葉 後,分別將左側及右側結點消除,即左側兩個子葉合併,子葉總數為三為一個可能,右 側兩個子葉合併為另一個可能,因此共有兩個樹狀結構,而步驟四改為兩個樹狀結構各 計算出Lasso 迴歸模型預測訓練資料集的預測誤差平方(SSE)與各群中 Lasso 迴歸模型係 數絕對值合乘以懲罰參數(λ)相加總合,兩者中最小者為目標函數,所以即使樹狀結構中 切割點排列組合依舊為三個節點,但以最終選出的最佳樹狀結構來看,只有兩個節點存 在,子葉總數為三。
圖 3 染色體示意圖
而下表則為實作Lasso 迴歸、Hierarchical group-lasso regularization、隨機森林及梯 度提升機演算法所使用的R 語言套件與函數、函數中交叉驗證層數以及有優化的超參數
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
20
名稱,優化方式為嘗試不同的超參數組合,其中隨機森林與梯度提升機所嘗試的超參數 組合中皆不包含樹的數量(ntree/n.trees),梯度提升機樹的數量設定為超參數組合於訓練 資料集交叉驗證的平均預測誤差(MSE)時最小 MSE 出現的棵數,隨機森林則為交叉驗 證誤差最小超參數組合以訓練資料集訓練後最小 MSE 出現時的棵數,未提及超參數為 預設值。
表 1 演算法於連續變數資料集實作細節表
演算法種類 套件 函數 交叉驗證層數 優化的超參數名稱
Lasso 迴歸 glmnet cv.glmnet 10 s(lambda) Hierarchical
group-lasso regularization
glinternet cv.glinternet 10 lambda
隨機森林 randomForest randomForest 5
(使用同套件內的 rfcv 函數,step 設 為0.9)
ntree nodesize mtry
梯度提升機 gbm gbm 5 shrinkage
interaction.depth n.minobsinnode n.trees
Toyota Corolla 資料集筆數共 1436 筆,為 2004 年夏末於荷蘭有交易紀錄的二手車 數據。依變數為二手Toyota Corolla 的售價,最小值 4350 元,最大值 32500 元,中位數 為9900 元,原資料集中共有 38 項自變數,本研究刪去對依變數未有影響的資料編號及 引擎汽缸數(資料沒變化),以及因訓練出的目標模型是依據車輛配備與特徵預測價格而
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
被剔除的車輛型號,剩餘的自變數有連續變數10 項,包含以月為單位紀錄的車齡(Age)、
累積里程數(KM)、重量(Weight)、季稅(Quarterly_Tax)、保險期數(Guarantee_Period)、製 造年份(Mfg_Year)、馬力(HP)、車門數(Doors)、排氣量(CC)和車檔數(Gears),類別變數 為 25 項,包含燃油種類、車輛顏色、製造月份、車輛是否有防鎖死煞車系統等車輛配 備。
首先比較將資料分群再以Lasso 迴歸模型預測的表現,瞭解將資料分別分為一到四 群對預測測試資料集的平均預測誤差平方(RMSE)有何變化,將資料分為一群等同於以 單一Lasso 迴歸模型預測,而二到四群則是以 Cluster-while-regression with tree hierarchy 演算法樹狀結構中的子葉數表現,且嘗試演算法時步驟三中子葉中資料筆數不可小於訓 練資料集筆數百分之五及百分之十,比較結果如圖4。
圖 4 Toyota Corolla 資料集群數預測誤差比較圖
從圖4 可以得知分群數為由一群分為兩群時誤差大幅下降,而後隨著群數增加大致 逐漸上升,但仍小於單一Lasso 迴歸模型預測結果,而將表現最好的兩群 Cluster-while-regression with tree hierarchy 演算法預測誤差與 Lasso 迴歸、Hierarchical group-lasso regularization、隨機森林、梯度提升機相比較,其中 Lasso 迴歸可挑選的自變數在類別變 數做獨熱編碼(One-Hot Encoding)後共 54 項,而 Hierarchical group-lasso regularization 在
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
22
包含自變數間一階交互項後為595 項(將類別變數視為單項),表格如下:
表 2 演算法於 Toyota Corolla 資料集預測誤差比較表 演算法種類 Lasso 迴歸
(一群)
Hierarchical group-lasso regularization
Cluster- while-regression with tree hierarchy(兩 群5%)
隨機森林 梯度提升機
平均預測誤 差平方 (RMSE)
1,337 1,342 1,066 1,090 1,021
從表 2 可以得知本研究所提出的 Cluster-while-regression with tree hierarchy 演算法 預測誤差值則可與集成樹演算法隨機森林相媲美,只略遜於梯度提升機,足可見其演算 法結合樹狀結構與Lasso 迴歸的邏輯大有可為,而 Lasso 迴歸與 Hierarchical group-lasso regularization 演算法的預測結果相差甚少且為五種演算法中表現較差者,代表此資料集 內 自 變 數 間 一 階 交 互 項 對 依 變 數 並 無 相 當 影 響 , 此 點 可 藉 由 以 下 Lasso 迴歸與 Hierarchical group-lasso regularization 演算法模型自變數表格相互印證,因兩者訓練資料 集內連續變數皆已經過標準化,而類別變數則為獨熱編碼,兩者尺度不同而無法混為一 談以係數判斷何者對依變數影響較重,所以將連續及類別變數分別討論。
‧
Hierarchical group-lasso regularization 模型內變數(依係數 認知,而在類別變數的部分,只有 Lasso 迴歸模型內有包含,Hierarchical group-lasso regularization 演算法模型並無,取而代之的是連續變數間的一階交互項,因尺度相同故 可與連續變數係數相比較,可以注意到交互項對依變數影響方向與其組成變數方向相乘 一樣。
而 在 以 上 兩 種 演 算 法 預 測 表 現 幾 乎 相 同 的 情 況 下 ,Hierarchical group-lasso regularization 演算法模型內變數數量較 Lasso 迴歸更少,以自變數間的一階交互項取代 其他自變數對依變數的影響力,代表在收集資料時可減少時間及人力上的成本,凸顯其 優勢。接著是Cluster-while-regression with tree hierarchy 演算法的模型及子葉中 Lasso 迴 歸模型內的重要變數,此模型候選分割點共有 74 種可能,訓練後的模型若車輛製造年 份小於等於2001 年,則進入左側子葉 Lasso 迴歸模型預測,若大於 2001 年,則進入右 側子葉 Lasso 迴歸模型中預測,而分群後群內預測值分布如圖 5,兩個子葉內 Lasso 迴 歸重要變數如表4。
‧
表 4 Cluster-while-regression with tree hierarchy 演算法於 Toyota Corolla 資料集的模型子 葉內重要變數 迴歸和 Hierarchical group-lasso regularization 演算法相同者可以看出對依變數的影響方 向是一致的,也表示三種演算法皆挑選出重複的自變數,所挑選出的變數確實對依變數 有重大影響。而單以Cluster-while-regression with tree hierarchy 演算法依據 Toyota Corolla
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
訓練資料集所訓練出的模型來看,可解釋為先將欲預測的資料分為兩群,以訓練資料集 製造年份的第七十五百分位為分群依據,若車輛製造年份小於或等於 2001 年,則車輛 有自動空調、燃油種類為汽油和製造年份越近對價格有正向影響,車輛年齡和累積里程 數反之,而若車輛製造年份大於 2001 年,則車輛重量越重、有收音機和製造年份越近 對價格有正向影響,車輛年齡和累積里程數反之。
若將兩個子葉內的 Lasso 迴歸模型與以整個訓練資料集所訓練的 Lasso 迴歸模型相 比較,可以發現前者的重要連續變數皆存在於後者,且左側的模型係數大小順序與後者 相同,右側則較不一致,而以類別變數來看,左側模型係數最大者與後者相同,但有挑 選到並沒有出現在後者模型的類別變數,右側模型也有相同情況。子葉內兩個Lasso 迴 歸模型所挑選的變數、訓練出的係數不同,造成如圖5 的效果,兩者所預測的車輛價值 左側模型結果明顯較右側低,分群後的Lasso 迴歸模型與分群前模型差異顯示了分群的
若將兩個子葉內的 Lasso 迴歸模型與以整個訓練資料集所訓練的 Lasso 迴歸模型相 比較,可以發現前者的重要連續變數皆存在於後者,且左側的模型係數大小順序與後者 相同,右側則較不一致,而以類別變數來看,左側模型係數最大者與後者相同,但有挑 選到並沒有出現在後者模型的類別變數,右側模型也有相同情況。子葉內兩個Lasso 迴 歸模型所挑選的變數、訓練出的係數不同,造成如圖5 的效果,兩者所預測的車輛價值 左側模型結果明顯較右側低,分群後的Lasso 迴歸模型與分群前模型差異顯示了分群的