演算法介紹最後一波,說一下Tree順便提一點ensemble(小知識,據說這字原音念[ㄤˇ森波]<--非英文)
決策樹在許多領域都已經被大量使用,因為決策樹的特性,讓人可以輕易地從建構出來的模型中了解模型預測的依據。演算法運作的機制:
1.計算各特徵的分數
2.選擇作為分類基準的特徵
3.生成節點,將資料分類
分數就是Evaluation的方法,例如:Entropy,Gini...。
決策樹最大的優點就是,人能夠很容易從模型中理解判斷標準。缺點則是針對單變數進行切割,對於多變數之間有相互影響的特徵表現較差。另外,決策樹很容易導致overfitting的狀況發生,因此需要用剪枝或設定樹的深度的最大值來減低此狀況的影響。
Ensemble的概念就是去集成多個模型,讓表現更好,如何集成有許多方式,這邊就介紹其中兩種較常見,也是普遍可以應用在不同演算法中的技巧。
隨機森林(Random Forest)就是藉由決策樹進行ensemble而產生的集成模型,然而又不僅僅直接使用ensemble的技巧,還有針對決策樹的特性進行改良,藉此獲得更佳的表現。
1.Bagging
2.Random Sample
每次要建立新的決策樹前,都對於Training set進行抽樣,而且通常這邊的抽樣是重複抽樣,也就是所謂取後放回的抽樣方式。因此,每棵樹都是針對Training set的抽樣子集進行訓練,為什麼要這樣做呢?如果從決策樹的演算法中分析,你會發現針對相同的Training set與參數設定之下,訓練出來的決策樹一模一樣,這樣進行Bagging便毫無意義了,所以,藉由抽樣Training set的方式得出新的子集合訓練,獲得相異的決策樹。
3. Random feature
除了針對Training set進行抽樣,針對決策樹單變數分割的特性,進行隨機的特徵選取,也就是不使用全部的特徵,只用隨機的幾項進行訓練。這樣的好處可以避免某些特徵在Training set中過於容易被分類,導致訓練出來的決策樹之間差異過小。
隨機森林常常能夠顯著提升決策樹的不足,獲得更超群的結果。然而,其中也是有些缺點,除了計算量大、模型儲存空間變大以外,最重要的犧牲在於無法像之前決策樹那樣藉由模型的結構理解分類的依據,畢竟,隨機森林動輒幾百顆決策樹,要去從結構中解析分類的策略非常困難。