iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 13
0
Google Developers Machine Learning

Machine Learning Day30系列 第 22

[Day22] 模型選擇-隨機森林

決策樹學習完畢,
就要來複雜化決策樹,
進行另一個樹模型「隨機森林」。

以下參考文章:

Random Forest

基本概念就是先 build 多棵 Decision Tree,
然後集合這些 Tree 的力量為一個 Forest, 再來做預測

在 training data 中, 從中取出一些 feature & 部份 data 產生出 Tree (通常是CART)
並且重複這步驟多次, 會產生出多棵 Tree 來
最後利用 Ensemble (Majority Vote) 的方法, 結合所有 Tree, 就完成了 Random Forest

自助法(bootstrap)

從樣本中有放回的抽样。

如果樣本集中有n個樣本,要自助法選出n個樣本,那麼一個樣本被選出的概率是0.632。

Bagging一種採樣方式, 假設全體 training data 有N筆, 你要採集部分資料,
但是又不想要採集到全體的資料 (那就不叫採集了), 要如何做?

一般常見的方式為: 從 N 筆 data 挑資料, 一次挑一筆, 挑出的會再放回去,
最後計算的時候重複的會不算(with replacement),

假設最後為y, N > y, 那 y 就是一次標準的 bagging sampling 樣本數

from sklearn.ensemble import RandomForestClassifier 
clf = RandomForestClassifier(
n_estimators=10, #決策樹的數量
criterion="gini",
max_features="auto", #如何選取 features
max_depth=10, 
min_samples_split=2,
min_samples_leaf=1)

隨機森林主要引用sklearn.ensemble集合模型,
決策樹的數量設定越多越不容易overfit,
但時間也會比較長。


以上,打完收工。


上一篇
[Day21] 模型選擇-決策樹
下一篇
[Day23] 模型選擇-梯度提升機
系列文
Machine Learning Day3026
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言