集成學習(Ensemble Learning)主要分爲三類:
- 用於減少方差的
Bagging
(可並行生成) - 用於減少偏差的
Boosting
(存在強依賴關係必須串行生成) - 用於提升預測結果的
Stacking
1)Bagging + 決策樹 = 隨機森林
2)AdaBoost + 決策樹 = 提升樹
3)Gradient Boosting + 決策樹 = GBDT
這個說法對嗎??
1.Bagging
套袋法,算法流程:
- 在訓練樣本集中使用
Bootstraping Sampling
採樣n個樣本,總共進行k輪抽取,得到k個訓練集; - 分別訓練k個訓練集得到k個模型(
基學習器
) - 如果是分類問題,可使用
投票
得到分類結果;如果是迴歸問題,可取k個模型輸出的均值
作爲最後結果。
解釋Bootstrap Sampling
:自助採樣法,它是一種有放回
的抽樣方法。
爲什麼要有放回採樣呢?如果每個基學習器的訓練樣本都不一樣,那麼訓練出來的效果差異就大,一個強的集成的學習器是要確保下面的基學習器不能太弱。
對於Bagging需要注意的是,每次訓練集可以取全部的特徵進行訓練,也可以隨機選取部分特徵訓練,例如隨機森林就是每次隨機選取部分特徵。
Random Forest(隨機森林)
Random Forest
是Bagging
的變體,基學習器是決策樹
,屬於樹模型
。
樹模型和線性模型的區別:樹模型
是一個一個特徵進行處理,線性模型
是所有特徵給予權重相加得到一個新的值。
解釋決策樹
決策樹是一種基本的分類與迴歸方法,學習通常包含兩個步驟:特徵選擇
和剪枝
。
決策樹常見的三個算法:
- ID3算法:選擇
信息增益
最大的特徵 - C4.5算法:用
信息增益比
來選擇特徵 - CART算法:用
基尼指數
來選擇特徵
- 特徵選擇 :使用滿足劃分準則的特徵不斷的將數據集劃分爲純度更高,不確定性更小的子集的過程。
有三種方式:
1.1 信息增益:信息增益越大,表示用屬性a來進行劃分帶來的信息越多,該屬性越重要。
公式:
D表示樣本集合,Ent表示信息熵,a表示屬性a,V表示屬性a的取值集合,|Dv|表示屬性a、取值v包含的樣本數。
信息熵:在信息論和概率統計中,熵是表示隨機變量不確定性的度量。熵越大,隨機變量的不確定性就越大。其實信息熵就是信息的期望值,所以我們可知,信息熵越越小,信息的純度
越高,也就是信息越少,在分類領域來講就是裏面包含的類別越少,所以我們可以得出,與初始信息熵的差越大分類效果越好。
pk表示樣本集合D中第k類樣本所佔的比例。
舉個例子:p=0.5相當於投硬幣正反兩面的概率都是0.5,熵爲1,說明不確定性的程度很大。
缺點:
信息增益僅僅能考察特徵對整個系統的貢獻,而不能詳細到某個類別上,這就使得它僅僅適合用來做所謂“全局”的特徵選擇(指全部的類都使用同樣的特徵集合)。而無法做“本地”的特徵選擇(每一個類別有自己的特徵集合,由於有的詞。對這個類別非常有區分度。對還有一個類別則無足輕重)。
1.2 信息增益比(增益率)
因爲信息增益對取值數目多的屬性有所偏好,爲減輕這種偏好帶來的不利影響,故引入信息增益比。
其中IV(a)稱爲a的固有值,屬性a的可能取值數目越多,IV(a)的值通常會越大。
1.3 基尼指數:反映了隨機抽取兩個樣本,其類別標記不一致的概率。
屬性a的基尼指數定義爲
優化
舉個例子去理解:
第一種情況:0.1,0.1,0.8 和 0.1,0.1,0.8 ,基尼指數是0.34
第二種情況:0.1,0.1,0.8 和 0.3,0.3,0.4 ,基尼指數是0.69
分類優化的目標顯然是第二種情況,把ground truth對應那一類的得分儘可能擡高,其它類壓低,基尼指數越小,不確定性越小,說明該屬性越重要。
- 剪枝:決策樹算法對抗
過擬合
的主要手段。
剪枝的兩種方式:
預剪枝
:(從上而下)在決策樹生成過程中,對每個節點劃分前先進行估計,如果劃分不能帶來性能提升,則停止劃分將當前節點標記爲葉子節點。
特點: 這是一種貪婪的做法,即使當前劃分不能帶來性能提升,後續子樹的劃分仍可能帶來性能提升,容易導致欠擬合
。
後剪枝
:(從下而上)生成一棵完整的決策樹後,從下而上,對非葉子節點進行估計,若將該節點的子樹替換爲葉子節點能帶來性能提升,則將該節點的子樹替換爲葉子節點。
特定:欠擬合的風險比預剪枝小,預剪枝是在訓練過程中完成,後剪枝在訓練之後完成,時間開銷更大
。
決策樹學習:採用自頂向下的遞歸的方法,基本思想是以信息熵爲度量構造一棵熵值下降最快的樹,到葉子節點處熵值爲0(葉節點中的實例都屬於一類)。
2.Boosting
AdaBoost
GBDT
XGBoost
Lightgbm
3.Stacking
Ref
信息增益的特徵選擇方法