iT邦幫忙

2024 iThome 鐵人賽

DAY 23
0
AI/ ML & Data

ML/DL-新手選手村系列 第 23

day23_ML的集成演算法:ensemble learning

  • 分享至 

  • xImage
  •  
  • 要完成一件具有富有挑戰性且複雜的工作,是「孤軍奮戰」還是「團隊合作」來得輕鬆且容易完成目標。相信如果讓您選擇,應該會選擇後者。好比您現在準備要參加學測,如果有二個選擇讓你選,一個是獨自一人訂定考試計畫,自己唸書。一個則是有個讀書會,有幾個同學參加,大家可以彼此鼓勵,加油打氣,在特定的時間,還可以彼此討論讀書心得,互相指導彼此不熟悉的地方,進步了會得到稱讚,退步了會得到同學的幫助找出痛點,成績進步的幅度還會比較明顯。相信大家會選擇團隊合作。工作上,也是如此,你不是一個人,是要跨部門互相溝通,彼此協調合作,工作才有可能順利完成。

  • ML的集成演算法:ensemble learning,就是這個概念,單純只使用一種分類演算法的效能,絕對不會比用多個演算法計算出來的成果佳。

  • 今天我們要談的是:

  • ensemble learning的種類:袋裝法bagging,強化法boosting

  • 袋裝法bagging的原理:

    • 原理和random forest是由許多棵的decision tree來的類似,是採用隨機取出放回「replacement」。而random forest就是bagging的一種。
  • 袋裝法bagging的程式碼:

from sklearn.ensemble import BaggingClassifier
from sklearn.metrics import precision_score
tree = DecisionTreeClassifier(criterion='entropy', random_state=18, max_depth=10)
BaggingClassifier(base_estimator=tree, n_estimators=200)

y_train_pred = tree.predict(X_train)
y_test_pred = tree.predict(X_test)

tree_train = precision_score(y_train, y_train_pred)
tree_test = precision_score(y_test, y_test_pred)

  • 在入descion tree model。

  • n_estimators=200,max_depth=10,用200棵高度為10的決策樹

  • 強化法boosting,我們介紹Adaboost,其原理:

  • 對於複雜很難的分類datasets,我們讓眾多的分類演算法,從誤判樣本中學習,藉此提高整體效能。


  • Adaboost 程式碼:

from sklearn.ensemble import AdaboostClassifier

tree = DecisionTreeClassifier(criterion='entropy', random_state=18, max_depth=10)
AdaboostClassifier(base_estimator=tree, n_estimators=200,random_state=18)
  • 接下來,到了快結束尾聲,我們將會補充ML的相關知識,並簡單介紹NLP與DL,讓同學有個概念,敬請期待。

上一篇
day22_ML的supervised learning 效能評估
下一篇
day24_自然語言處理Natural Language Processing (NLP)概論
系列文
ML/DL-新手選手村30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言