成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

集成學習算法(Ensemble Method)淺析

開發 開發工具 算法
個性化推薦系統是達觀數據在金融、電商、媒體、直播等行業的主要產品之一。在達觀數據的個性化推薦系統架構中,可 以簡單地分為5層架構,每層處理相應的數據輸出給下一層使用。

個性化推薦系統是達觀數據在金融、電商、媒體、直播等行業的主要產品之一。在達觀數據的個性化推薦系統架構中,可 以簡單地分為5層架構,每層處理相應的數據輸出給下一層使用,分別是:

  • 數據處理層

作為推薦系統***端的數據處理層,主要功能是首先將客戶上傳上來的一些無用的噪聲數據進行清理過濾,將推薦系 統所需要用到的數據導入到數據存儲層中;

  • 數據存儲層

對于item的數據一般存入在Mysql中,隨著數據量越來越大的item的數據,相比Mysql的擴展性來說,HBase和Hive 是一個更好的選擇,Hive可以方便離線分析時操作。而對于實時模塊,以及一些用進程同步相關的模塊,實時性要求 比較高的,redis就可以派上用場了,作為緩存,生產者生產數據寫入redis供消費者讀取;

  • 生成候選集

通過一系列的基礎算法如協同過濾,content-base,點擊反饋,熱門等數據給每個用戶生成個性化的候選集;

  • 融合候選集

將各個算法生成的候選集的item按照一系列規則進行融合過濾。

  • 重排序

將融合過濾后的item集合用一定的算法重新排序,將排序后的結果輸出到用戶,這邊主要常用到機器學習相關模型和 算法,如LR和GBDT。

本文將著重淺析一下重排序用到的集成學習算法(Ensemble Method)。

集成學習概述

集成學習算法本身不算一種單獨的機器學習算法,而是通過構建并結合多個機器學習器來完成學習任務。可以說是集百家 之所長,能在機器學習算法中擁有較高的準確率,不足之處就是模型的訓練過程可能比較復雜,效率不是很高。目前常見 的集成學習算法主要有2種:基于Bagging的算法和基于Boosting的算法,基于Bagging的代表算法有隨機森林,而基于Boosting的代表算法則有Adaboost、GBDT、XGBOOST等。

基于Bagging算法

Bagging算法(裝袋法)是bootstrap  aggregating的縮寫,它主要對樣本訓練集合進行隨機化抽樣,通過反復的抽樣訓練新的模型,最終在這些模型的基礎上取平均。

  • 基本思想

1.給定一個弱學習算法,和一個訓練集;

2.單個弱學習算法準確率不高;

3.將該學習算法使用多次,得出預測函數序列,進行投票;

4.***結果準確率將得到提高。

以隨機森林為例來詳解

  • 隨機森林基本原理

隨機森林由LeoBreiman(2001)提出,從原始訓練樣本集N中有放回地重復隨機抽取k個樣本生成新的訓練樣本集     合,然后根據自助樣本集生成k個分類樹組成隨機森林,新數據的分類結果按分類樹投票多少形成的分數而定。其實質 是對決策樹算法的一種改進,將多個決策樹合并在一起,每棵樹的建立依賴于一個獨立抽取的樣品,森林中的每棵樹   具有相同的分布,分類誤差取決于每一棵樹的分類能力和它們之間的相關性。特征選擇采用隨機的方法去分裂每一個   節點,然后比較不同情況下產生的誤差。能夠檢測到的內在估計誤差、分類能力和相關性決定選擇特征的數目。單棵   樹的分類能力可能很小,但在隨機產生大量的決策樹后,一個測試樣品可以通過每一棵樹的分類結果經統計后選擇最   可能的分類。

  • 隨機森林算法過程

1.從訓練數據中選取n個數據作為訓練數據輸入,一般情況下n是遠小于整體的訓練數據N的,這樣就會造成有一部 分數據是無法被取到的,這部分數據稱為袋外數據,可以使用袋外數據做誤差估計。

2.選取了輸入的訓練數據的之后,需要構建決策樹,具體方法是每一個分裂結點從整體的特征集M中選取m個特征構 建,一般情況下m遠小于M。

3.在構造每棵決策樹的過程中,按照選取最小的基尼指數進行分裂節點的選取進行決策樹的構建。決策樹的其他結點 都采取相同的分裂規則進行構建,直到該節點的所有訓練樣例都屬于同一類或者達到樹的***深度。

4.重復第2步和第3步多次,每一次輸入數據對應一顆決策樹,這樣就得到了隨機森林,可以用來對預測數據進行決 策。

5.輸入的訓練數據選擇好了,多棵決策樹也構建好了,對待預測數據進行預測,比如說輸入一個待預測數據,然后多 棵決策樹同時進行決策,***采用多數投票的方式進行類別的決策。

  • 隨機森林注意點

1.在構建決策樹的過程中是不需要剪枝的。

2.整個森林的樹的數量和每棵樹的特征需要人為進行設定。

3.構建決策樹的時候分裂節點的選擇是依據最小基尼系數的。

基于Boosting算法

提升算法(Boosting)是常用的有效的統計學習算法,屬于迭代算法,它通過不斷地使用一個弱學習器彌補前一個弱學習器 的“不足”的過程,來串行地構造一個較強的學習器,這個強學習器能夠使目標函數值足夠小。

  • 基本思想

1.先賦予每個訓練樣本相同的概率;

2.然后進行T次迭代,每次迭代后,對分類錯誤的樣本加大權重(重采樣),使得在下一次的迭代中更加關注這些樣本。

Boosting系列算法里***算法主要有AdaBoost算法和提升樹(boosting  tree)系列算法。提升樹系列算法里面應用最廣泛的是梯度提升樹(Gradient Boosting Tree)。

以AdaBoost算法作為代表算法來詳解

  • 基本原理

Adaboost(adaptive boosting: boosting + 單層決策樹)是boosting中較為代表的算法,基本思想是通過訓練數據的分布構造一個分類器,然后通過誤差率求出這個若弱分類器的權重,通過更新訓練數據的分布,迭代進行,直到達到   迭代次數或者損失函數小于某一閾值。

假設訓練數據集為

  • 算法過程

Bagging和Boosting算法異同

Bagging算法與Boosting算法的核心都是將一系列弱學習器的算法按照特定的結合策略組合成強學習器的過程。兩者之  間的區別在于以下幾點上:

1.樣本選擇:

  • Bagging:訓練集是在原始集中有放回選取的,從原始集中選出的各輪訓練集之間是獨立的.
  • Boosting:每一輪的訓練集不變,只是訓練集中每個樣例在分類器中的權重發生變化.而權值是根據上一輪的分類結果 進行調整。

2.樣例權重:

  • Bagging:使用均勻取樣,每個樣例的權重相等。
  • Boosting:根據錯誤率不斷調整樣例的權值,錯誤率越大則權重越大.

3.預測函數:

  • Bagging:所有預測函數的權重相等。
  • Boosting:每個弱分類器都有相應的權重,對于分類誤差小的分類器會有更大的權重。

4.并行計算:

  • Bagging:各個預測函數可以并行生成。
  • Boosting:各個預測函數只能順序生成,因為后一個模型參數需要前一輪模型的結果。

集成學習之結合策略

以上部分我們主要關注與學習器本身,對于學習器之間的結合策略并未涉及到,這一小節主要介紹常見的結合策略,主要 有平均法,投票法,學習法。

  • 平均法

對于數值類的回歸預測問題,通常使用的結合策略是平均法,也就是說,對于若干和弱學習器的輸出進行平均得到最 終的預測輸出。最簡單的平均是算術平均,也就是說最終預測為

  • 投票法

  • 學習法

上兩節的方法都是對弱學習器的結果做平均或者投票,相對比較簡單,但是可能學習誤差較大,于是就有了學習法這種方 法,對于學習法,代表方法是stacking,當使用stacking的結合策略時,我們不是對弱學習器的結果做簡單的邏輯處理,  而是再加上一層學習器,也就是說,我們將訓練集弱學習器的學習結果作為輸入,將訓練集的輸出作為輸出,重新訓練一 個學習器來得到最終結果。

在這種情況下,我們將弱學習器稱為初級學習器,將用于結合的學習器稱為次級學習器。對于測試集,我們首先用初級學 習器預測一次,得到次級學習器的輸入樣本,再用次級學習器預測一次,得到最終的預測結果。

總結

Bagging和Boosting都是把若干個分類器整合為一個分類器的集成學習方法,只是整合的方式不一樣,最終得到不一樣  的效果。下面是將決策樹與這些算法框架進行結合所得到的新的算法:

1.Bagging + 決策樹 = 隨機森林

2.AdaBoost + 決策樹 = 提升樹

3.Gradient Boosting + 決策樹 = GBDT

其中GBDT在達觀數據個性化推薦重排序層得到很好地應用。

作者:陳祥龍

達觀數據數據挖掘工程師,畢業于復旦大學計算機科學與技術專業,現主要負責大型私有化推薦項目部署工作。

 【本文為51CTO專欄作者“達觀數據”的原創稿件,轉載可通過51CTO專欄獲取聯系】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2024-08-12 00:00:05

集成學習典型算法代碼

2022-08-28 20:50:29

算法模型機器學習

2009-08-24 09:55:24

C#集成開發環境

2024-09-09 23:04:04

2012-07-02 09:59:35

IBM PureSys專家集成系統

2009-08-11 13:54:54

約瑟夫環算法C#算法

2009-07-03 09:08:23

JSP標記學習筆記

2009-07-03 09:08:23

JSP標記學習筆記

2009-08-27 17:33:51

Interface接口

2011-06-03 17:14:35

iphone Objective

2023-05-28 23:26:16

多模態機器學習大腦

2022-12-30 08:00:00

深度學習集成模型

2009-07-14 13:08:55

WebWork與Spr

2011-06-10 14:33:38

Qt VC.NET

2018-02-09 11:08:49

區塊鏈算法主流

2023-08-08 14:56:27

ParcelRustDemo

2009-08-11 09:19:52

C#選擇排序C#算法

2021-01-19 07:02:26

算法數據結構堆排序

2020-12-16 05:46:58

算法加密算法MD5

2009-12-31 13:45:32

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久精品一区二区三区 | 欧美综合一区二区三区 | av黄色免费| 波多野结衣一区二区三区在线观看 | 91在线精品一区二区 | 欧美一级片在线看 | 亚洲一区二区三区在线视频 | 久久综合久色欧美综合狠狠 | 精品久久久久久久人人人人传媒 | 欧美高清成人 | 日韩精品视频在线 | 日韩在线不卡 | 亚洲 欧美 另类 综合 偷拍 | 精品麻豆剧传媒av国产九九九 | 成人在线中文字幕 | 日韩欧美在线视频播放 | 欧美在线视频一区 | 国产99久久久国产精品 | 日韩在线欧美 | 欧美激情久久久 | 欧美精品一区二区三区视频 | 亚洲成人一区 | 成人一区二区三区在线 | 欧美精品tv | 91在线资源 | 中文字幕一区二区三区四区五区 | 99久久婷婷国产综合精品电影 | 最新国产精品视频 | 久久91精品久久久久久9鸭 | 国产精品一二三区在线观看 | 91精品国产综合久久久亚洲 | 天天干b| 国产激情精品视频 | 国产h视频| 小早川怜子xxxxaⅴ在线 | 精品久久久久久 | 成人动慢 | 亚洲天堂一区二区 | 国产特黄一级 | 成人福利在线 | 日韩一区二区三区精品 |