要完成一件具有富有挑戰性且複雜的工作,是「孤軍奮戰」還是「團隊合作」來得輕鬆且容易完成目標。相信如果讓您選擇,應該會選擇後者。好比您現在準備要參加學測,如果有二個選擇讓你選,一個是獨自一人訂定考試計畫,自己唸書。一個則是有個讀書會,有幾個同學參加,大家可以彼此鼓勵,加油打氣,在特定的時間,還可以彼此討論讀書心得,互相指導彼此不熟悉的地方,進步了會得到稱讚,退步了會得到同學的幫助找出痛點,成績進步的幅度還會比較明顯。相信大家會選擇團隊合作。工作上,也是如此,你不是一個人,是要跨部門互相溝通,彼此協調合作,工作才有可能順利完成。
ML的集成演算法:ensemble learning,就是這個概念,單純只使用一種分類演算法的效能,絕對不會比用多個演算法計算出來的成果佳。
今天我們要談的是:
ensemble learning的種類:袋裝法bagging,強化法boosting
袋裝法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的決策樹
對於複雜很難的分類datasets,我們讓眾多的分類演算法,從誤判樣本中學習,藉此提高整體效能。
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)