目錄
Bagging
自助聚集(bootstrap aggregation )。將數據分成很多的子集,然後隨機選取一些,用簡單的模型去訓練,再選擇一些數據用另外一個簡單的模型去訓練……最後將所有的簡單模型連接起來,連接的方式可以用投票的方式等,最後完成所有數據的訓練。
AdaBoost
自適應增強算法。第一次分類,分完之後懲罰那些錯誤的點,然後增加被懲罰點的大小,
數據權重
小例子:最開始左右點的權重是1,第一次分類,分類正確的點總權重是7,錯誤的是3,按照50:50的比例,將錯誤的點的權重變成7/3;第二次分類 ,正確的是11,錯誤的是3,錯誤的點的權重變成11/3。
權重公式:,這個公式可以變形,就是:正確的點 / 錯誤的點,然後再取對數。
如下圖這種極端模型,幾乎不可能發生,沒什麼可擔心的,但是爲了一致性檢查,仍然有必要,來分如下這種極端案例。
集合模型
下圖的做法,把右側的三張圖放到左側圖片中,對應的位置天上數字,圖與圖之間用加班做運算。
slearn中的Adaboost
>>> from sklearn.ensemble import AdaBoostClassifier
>>> model = AdaBoostClassifier()
>>> model.fit(x_train, y_train)
>>> model.predict(x_test)
超參數
當我們定義模型時,我們可以確定超參數。在實際操作中,最常見的超參數爲:
base_estimator
: 弱學習器使用的模型(切勿忘記導入該模型)。n_estimators
: 使用的弱學習器的最大數量。
比如在下面的例子中,我們定義了一個模型,它使用 max_depth 爲 2 的決策樹作爲弱學習器,並且它允許的弱學習器的最大數量爲 4。
>>> from sklearn.tree import DecisionTreeClassifier
>>> model = AdaBoostClassifier(base_estimator = DecisionTreeClassifier(max_depth=2), n_estimators = 4)
相關學習資源
AdaBoost 的優秀資源: