集成学习(期末复习)
集成學習
參考:
機器學習-淺談隨機森林的幾個tricks:https://zhuanlan.zhihu.com/p/29408863
機器學習算法之Boosting:https://www.biaodianfu.com/boosting.html
GBDT:https://blog.csdn.net/weixin_42933718/article/details/88421574?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161908832116780357256091%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=161908832116780357256091&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v29-1-88421574.pc_search_result_cache&utm_term=GBDT&spm=1018.2226.3001.4187
集成學習–bagging、boosting、stacking:https://blog.csdn.net/zwqjoy/article/details/80431496
1:集成學習原理
- 原理:將多個個體學習分類器組合在一起,形成一個新的分類器
- 是一個預測模型的元方法
- 特點
- 多個分類器集成在一起,以提高分類的準確性
- 由訓練數據構建基分類器,然后根據預測結果進行投票
- 集成學習本身不是一種分類器,而是分類器組合方法
- 集成學習分類器的性能會好于單個分類器
- 單個性能好,差異性較大,就能夠很好的提升性能,起正向的作用
- 單個性能好,差異性不大,不能夠更好的提升性能,基本不起作用
- 單個性能差,差異性較大,不能提升性能,起副作用
- 舉例分析
- 以多數投票法為結合方法,每個二分類器的分類正確率是p
- 則集成分類器的分類正確率是 分類T次, P > 0.5 則
- 求和(T/K) pk(1-p)(T - K) K = T/ 2 + 1
- 當 p > 0.5,且 T 趨向于正無窮,上市為 1
- 準確性和多樣性之間的矛盾???
- 核心問題
- 序列集成法
- 基學習器之間有依賴關系,后面的依賴前面生成的學習器
- 減小偏差 bias,中心點選的好
- 并行集成法
- 基學習器是獨立的,并行生成
- 減小方差variance,減小波動
- 序列集成法
- 學習和結合策略
- 結合
- 平均(回歸)
- 簡單平均,或者是加權平均
- 投票法(分類)
- 絕對多數
- 相對多數
- 加權投票
- 學習法(stacking)
- 平均(回歸)
- 學習
- 數據層面
- 輸入樣本的擾動,構建基學習器
- 屬性層面
- 隨機選擇部分屬性
- 參數層面
- 算法模型參數的擾動
- 數據層面
- 結合
2:bagging 和隨機森林
- 基本原理
- 數據擾動
- 有放回的采樣方法,統計的目的是得到統計量的分布以及置信區間
- 從訓練集中采用有放回的抽樣方法得到多個子訓練集,用子訓練集訓練得到各自的模型,將所有的基模型結合起來,對測試集進行綜合的預測。
- 算法
- 隨機森林RF
- 用N來表示訓練樣本的個數,M表示特征的數目,輸入特征數目為m,用于確定決策樹上一個節點的決策結果;其中m應該遠遠的小于 M
- 我們有10000 個訓練樣本,特征數目 是100,輸入特征數目是3,
- 用N來表示訓練樣本的個數,M表示特征的數目,輸入特征數目為m,用于確定決策樹上一個節點的決策結果;其中m應該遠遠的小于 M
- 過程
- 從N個訓練樣例中以有放回抽樣的方式,抽樣N次,形成一個訓練集(bagging)抽樣,并用米有抽到的用例做預測,評估其誤差。
- 對于每一個節點,隨機選擇m個特征(通常為M的均方根),根據這m個特征,計算其最佳的分裂方式
- 每棵樹都會完整成長而不會剪枝,這有可能在建完一顆正常樹狀分類器后會被采用幾個
- 以上結果做多次,以產生足夠多的隨機樹
- 分析
- 讓我們考慮一個回歸問題,并且設計每個基算法為 b1(x),b2(x),bn(x),假設存在為所有輸入定義的一個真實答案y(x),也就是我們的目標函數,并且數據的分布為p(x),那么我們可以表達每一個回歸函數的誤差是 bi(x) - y(x)
- 則均方誤差Ex(bi(x) - y(x))]^ 2 = Ex[誰他x]^2
- 然后所有的回歸函數的平均誤差如下
- 為E1 = 1/n 均方誤差
- 我們假設所有的誤差是無偏差的,并且不相關的
- 則 E(誰他x) = 0
- E(誰他i(X)誰他j(x)) = 0
- 現在讓我們構建一個新的回歸函數
- a(x) = 1 / n (bi(x)求和)
- 我們找到他的均方誤差
- 1/ n E1
- 所有基模型的平均誤差
- 整體模型的準確率和基模型的準確率相差無幾,整體模型的方差收到基模型方差,相關系數和基模型個數的影響,基模型的個數越大,可以降低過擬合。降低基模型之間的相關性,也可以降低模型的過擬合,這既是為什么隨機森林采用行和列隨機的方式構成樹
- 對于boosting來說,基模型的訓練集抽樣是強相關的,模型的相關系數近似為1,boosting降低bias,增加基模型的個數逼近目標,但是我們也發現boosting的方差是隨著基模型的個數逐漸增大的。所以方差也會逐漸的增高。
- bagging優點
- 降低分類器方差,改善泛化
- 其性能主要依賴于基分類器的穩定性,如果基分類器穩定,則誤差主要由bias來決定
- 采樣概率相同,bagging并不側重任何特定的實例
- 隨機森林
- 隨機森林RF
3:boosting 和GBDT,XGBoost
-
PAC學習理論
- 同等條件下,模型越復雜,泛化性能越差
- 能夠從假設空間H中學習到一個好的假設h
- 近似正確:泛化性能E(h)足夠小
- 可能正確:以多大概率接近近似正確
- 強分類器和弱分類器
- 強分類器和弱分類器等價
- 可通過boosting將弱分類器轉化為強分類器
-
Boosting集成學習框架
- 將訓練集中所有的數據訓練得到基學習器1
- 將基學習器1分類正確的樣本減小權重,將基學習器分類錯誤的樣本增加權重,通過數據得到基學習器2
- …………
- 再講所有的基學習器進行整合,預測測試集
- 提升樹
- 初始化f0(x) = 0
- 對于m = 1,2,……M
- 計算殘差 rmi = yi - fm-1(x) ,i = 1,2,3,4,……N
- 擬合殘差rmi 學習一個回歸樹,得到hm(x)
- 更新fm(x) = f(m - 1)(x) + h m(x)
- 得到回歸問題提升樹
- fM(x) = 求和 【1,M】 hm(x)
- 殘差
- f(t - 1)(x) -> L(y,f(t-1)) -> ht(x) -> L(y.ft(x)) = L(y,f(t-1)(x) + ht(x))
- 采用平方損失的時候
- L(y,f(t-1)(x) + h(t)(x)) = (y - f(t-1)(x) -h(t)(x))^2
- =(r -ht(x))^2
- 推廣到一般的損失,第t輪第i個樣本的負梯度
- 梯度提升樹GBDT
- 無論是分類還是回歸,采用的都是回歸樹,分類問題是將擬合值轉變為概率來進行分類
- 初始化弱分類器
- 循環
- 對每個樣本計算負梯度
- 構建新的樣本集合
- 根據對樹的約束,構建CART樹
- 計算葉子區域的最佳擬合數值
- 更新得到強學習器
- 得到最終的強學習器
- 例子
- 樣本0:年齡5,體重20,升高1.1
- 樣本1:1:7,30,1.3
- 樣本2:21,70,1.7
- 樣本3:30,60,1.8
- 預測樣本:52,65,??米
- 學習的參數:學習率0.1,迭代的次數為5,樹的深度是3
- 1:初始化弱分類器,把他設置為均值,為(1.3 + 1.7 + 1.8 +1.1) / 4 = 1.475
- 2:根據殘差,構造新的樣本集合
- 樣本0: - 0.375
- 樣本1:-0.175
- 樣本2:0.225
- 樣本3:0.325
- 構造CART樹
- 開始是年齡 < 21 和 >= 21
- 年齡小于7,和大于等于7,年齡小于30,大于等于30
- 擬合殘差,rj = 求和(L(yi,f0(xi) + r)
- 更新強學習器
- f1(x) = f0(x) + 阿爾法求和(四個 *I)
- 最后一步f5(x) = f0(x) + m從1到5 ,j從1到4 rjm*I
-
XGBoost
- 是GBDT的一種高效實現
- 目標函數是通過二階泰勒展開式做近似
- 定義了樹的復雜度,并且應用到目標函數中
- 分裂節點處通過結構打分和分割損失動態生長
- 分裂節點的候選集合可以通過一種分布式的Quantile Sketch得到
- 可以處理稀疏,缺失數據
- 可以通過特征的列采樣放置過擬合
- 公式推導:略
4:Adaboost
- 綜述
- 訓練樣本集合為{(x1,y1),(x2,y2),(x3,y3),(……,……)}
- 第K個弱分類器的輸出樣本權重是D = (wk1,wk2,wkn) w ij = 1 / m
- 最開始的時候,權重都是相等的,都是 1/ m
- 以分類問題為例,分類器的誤差率和權重系數
- 第K個弱分類器Gk(x) 在訓練集上的加權錯誤率是
- ek = 求和wki * I(Gk(xi) 不等于 yi)
- 第K個弱分類器Gk(x)的權重系數是 ak = 1/ 2 log(1 - ek / ek)
- 則第K + 1 個弱分類 G(k+1)(x)的樣本權重是 錯誤的就大,正確的就小
- adaboost采用加權來表決 sign(從1到k 樣本權重系數 參數權重系數)*
5:其他
- 學習法,stacking算法原理
- 對于model1,將訓練集D分為K份,對于每一份,用剩余的數據集訓練模型,然后預測出這一份的結果
- 重復上述的步驟,直到每一份都預測出來,得到次級模型的訓練集
- 得到K份測試集,平均后得到次級模型的測試集
- 上述重復N次,得到model1,model2,modelM,得到M維的數據
- 選定次級模型,進行訓練預測,一般這一層最后一層使用LR(邏輯回歸)
- 例子
- 訓練集有1000個樣本,分為10份,0-99,100-199……,900-999
- model1:用100-999作為訓練集,用0-99做測試集,得到結果
- 重復上面的行為,直到每一份都被預測出來~得到次級模型的訓練集?
- 堆棧泛化
- 使用第一階段level0的預測作為下一層預測的特征,比起相互獨立的預測模型能夠有更強的非線性表述能力,降低泛化誤差
- 他的目標是同時降低機器學習模型的bias - variance
- 學習器
- 統計方法:投票,平均
- 容易解釋的學習方法類:LR,C45/CART
- 非線性學習算法類:SGVOOST
- 加權一次/二次線性模型
- 其他復雜類:在線學習,深度學習,群體智能
總結
| bagging | variance | 有放回的隨機抽樣 并行 | 不相關的 | 投票=分類 平均= 回歸 |
| boosting | bias | 序列化的,有依賴關系 | 相關的弱學習器 | 投票 |
| stacking | bias & variance | 多樣的 | 相關的強學習器 | 元學習器 |
總結
以上是生活随笔為你收集整理的集成学习(期末复习)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IOC AOP
- 下一篇: jupyter notebok 调用本目