iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 26
0
Google Developers Machine Learning

Google Developers Machine Learning 學習系列 第 26

【Day 26】Launching into Machine Learning(Introduction to Practical ML-7)

前言

演算法介紹最後一波,說一下Tree順便提一點ensemble(小知識,據說這字原音念[ㄤˇ森波]<--非英文)

主題

Decision Tree

決策樹在許多領域都已經被大量使用,因為決策樹的特性,讓人可以輕易地從建構出來的模型中了解模型預測的依據。演算法運作的機制:
1.計算各特徵的分數
2.選擇作為分類基準的特徵
3.生成節點,將資料分類
分數就是Evaluation的方法,例如:Entropy,Gini...。
決策樹最大的優點就是,人能夠很容易從模型中理解判斷標準。缺點則是針對單變數進行切割,對於多變數之間有相互影響的特徵表現較差。另外,決策樹很容易導致overfitting的狀況發生,因此需要用剪枝或設定樹的深度的最大值來減低此狀況的影響。

Ensemble

Ensemble的概念就是去集成多個模型,讓表現更好,如何集成有許多方式,這邊就介紹其中兩種較常見,也是普遍可以應用在不同演算法中的技巧。

  1. Bagging
    此方法的想法很直觀,就是用多個模型進行投票,藉此得出最後的結果,優點是能夠降低overfitting的情形。
  2. Boosting
    此方法的想法有點類似"三個臭皮匠,勝過一個諸葛亮"的概念,是集合多個"弱模型(Weak model)",彼此互補不擅長的部份,達到更好的表現。

Random Forest

隨機森林(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中過於容易被分類,導致訓練出來的決策樹之間差異過小。
隨機森林常常能夠顯著提升決策樹的不足,獲得更超群的結果。然而,其中也是有些缺點,除了計算量大、模型儲存空間變大以外,最重要的犧牲在於無法像之前決策樹那樣藉由模型的結構理解分類的依據,畢竟,隨機森林動輒幾百顆決策樹,要去從結構中解析分類的策略非常困難。


上一篇
【Day 25】Launching into Machine Learning(Introduction to Practical ML-6)
下一篇
【Day 27】Launching into Machine Learning(Introduction to Optimization-1)
系列文
Google Developers Machine Learning 學習30

尚未有邦友留言

立即登入留言