分類演算法

CART ( Classififcation and regression tree )

          每個節點分成兩條分支,每一分支資料量低同質性高(更pure),purity 通常是最大正確化 or 極小分類錯誤率,然而正確性愈高不代表達到 purity 的目的(若分枝條件範圍訂的愈細,可達最高正確率 ex.100筆data,設定99條分枝條件達100%分類,樹狀圖卻顯得過於繁雜且龐大)

使用 Gini Index : 1-p1^2-p2^2

          Gini小者表該attribute較適合作為node條件。∆info(資訊獲利):父節點分割前的不純度與子節點分割後的不純度差異,愈大者挑選為策是條件


Greedy algorithm

          Decision Tree Model 進行節點切割,從某點開始尋找最佳化解答,且以當下節點 (node) 進行最佳化分析,切割 (split) 完後產生新節點,不再回頭更改之前產生node的決策


Tree-based model 優點

  1. 模型建置容易,且易於理解
  2. 模型的邏輯特性,能有效處理各種型態變數(數值型/名目型),無須進行變數的清理或轉換( pre-process )
  3. 有效處理 missing data(NA)/how?是指有許多impute missing value的方法?/,自動進行篩選變數(feature selection),在許多實際建模問題中為一實用功能
  • 注意 : 建模時隱含 feature selection ,然而若原有兩個 predictors 是重要且高度相關,tree model 選擇時採隨機方式作為 split 變數,則兩變數相關性會弱化
  • Selection bias : Tree model 決定split變數時頃向選取有較多不一樣數值(distinct value)的變數                                                      →因有此 selection bias 特性,若數據中有過多missing value模型訓練時易受影響,先行填補缺                             失值 

Over-Fitting & Tree pruning

          發生over-fitting原因包含(1)屬性太多 : 演算法選擇到和類別/屬性有分明目、數值、時間、序列,是指選到像時間這類多level但不重要的屬性?/不相關的屬性(2)tree pruning將樹狀模型進行裁減,使深度(depth)縮減成合理大小,目標達極小化錯誤率,引近cp ( complexity parameter )
Gini index : Gini Index+cp*(可透過rpart中的control引數進行tree pruning, cp:決定模型和時停止split, minisplit:Node中最小sample數量 )

Decision Tree model缺點 

  1. Model Instability : 小部分 training data set 變數即可大幅改變數狀模型結構
  2. Less than optimal predictive performance : 受限於演算法的設計,將同質性結果數據架構於矩形區域框架內,若預測結果與預測變數關係無法用矩形空間定義,則錯誤率相較其他模型高出許多/描述系統的數學模式能同時描述系統狀態變數間的動態特性和代數關係,目前文獻大多是方型矩陣/

Bootstrap Aggregation

          Tree-base屬於high  variance 演算法(隨機一組training data分成兩組建模作預測,其test data 結果會有想當大的差距),Regression Model屬low variance
          Bootstrap aggregation又稱Bagging是一種降低variance的演算法,屬於Resampling技術

Bootstrap Sample 抽樣特點 :

  • 隨機抽出的data會再放回,供下次抽取隨機樣本with replacement
  • 樣本sample size與原始資料集一樣
  • 平均約63.2% data會被選到一次
  • 未被選到的 data 集稱為 "out of bag" sample。演算法依每次 Bootstrap Resampling演算法抽取的 data 建模,再對 out of bag sample 作 predict
Bagging 模型優點 :

  • 透過aggregation process降低預測結果的變異性。Decision Tree造成不穩定預測數據模型,匯聚多種 training set 能有效降低變化波動
  • 提升預測績效( predictive performance )
  • 提供內部估算預測績效( internal estimate of predictive performance )對 out of bag 預測值為 out of bag estimate,會整平均每次模型的績效可測出整個 ensemble 模型預測能力(out of bag estimate 和 cross validation 或 test set estimate有一定關聯性)
Bagging 模型缺點 :

  • 隨著 bootstrap sample增加,電腦運算成本與記憶體需求也上升,可藉由平行運算( parallel computing )改善
  • less interpretable 解釋模型能力下降

Random Forests

          假設有一訓練 data ,欄位變數和 response 之間關係可用tree model 建立,此些 data 所抽出 bootstrap samples 產生的 tree model 結構會非常類似,稱為「Tree correlation」,tree correlation 會造成 Bagging 演算法無法進一步優化預測 variance,因每個 bootstrap sample 的 model tree 作相似變數的 split,產生類似的預測整數值
          「Random Forest 」演算法目標降低tree models之間的關聯性(correlation),同 Bagging演算法, ensemble每個模型各自產生預測數據,預設方式依分析方法有所不同,分成regression (將m個預測數值平均)和classification(vote比例決定類別)。
           和Bagging相比,Random forests增加模型的隨機性,每次split隨機選取變數(一般用k值表示,regression: data變數的1/3,classification:data變數的平方根 ),有效降低 tree correlation
            Brieman(2001)驗證過Random forests不會有over-fitting的問題,因此模型預測績效不會因過多 tree model扭曲下降,實際須考慮的反而是運算效能。一般建議以1000個tree model進行評估,若cross validation績效在1000個tree model仍有顯著改善,可加入更多tree models
          由於模型合併(Ensemble)的架構,使得運用random forest模型時,無法獲得或解釋 predictors 和 response 之間的關聯性,但由於tree model仍是Ensemble的基礎元件,仍可以量化各個predictor對預測的影響程度        


Random Forest限制

  • training model 不能有 missing value
  • training model中的 factor 欄位最多只能到32個levels                                                                  ➤Solve : (1)使用unclass() function轉換factor程整數,演算法將此欄位視為continuous                             variable進行模型訓練

                           (2)手動降低levels數量














留言

這個網誌中的熱門文章

填補遺漏值(Missing Value)方法

Titanic資料分析#2

ggplot2 繪圖套件