1. 程式人生 > >詳解stacking過程

詳解stacking過程

之前一直對stacking一知半解,找到的資料也介紹的很模糊。。所以有多看了幾篇文章,然後來此寫篇部落格,加深一下印象,順便給各位朋友分享一下。

stacking的過程有一張圖非常經典,如下:

雖然他很直觀,但是沒有語言描述確實很難搞懂。

上半部分是用一個基礎模型進行5折交叉驗證,如:用XGBoost作為基礎模型Model1,5折交叉驗證就是先拿出四折作為training data,另外一折作為testing data。注意:在stacking中此部分資料會用到整個traing set。如:假設我們整個training set包含10000行資料,testing set包含2500行資料,那麼每一次交叉驗證其實就是對training set進行劃分,在每一次的交叉驗證中

training data將會是8000行,testing data是2000行。

每一次的交叉驗證包含兩個過程,1. 基於training data訓練模型;2. 基於training data訓練生成的模型對testing data進行預測。在整個第一次的交叉驗證完成之後我們將會得到關於當前testing data的預測值,這將會是一個一維2000行的資料,記為a1。注意!在這部分操作完成後,我們還要對資料集原來的整個testing set進行預測,這個過程會生成2500個預測值,這部分預測值將會作為下一層模型testing data的一部分,記為b1。因為我們進行的是5折交叉驗證,所以以上提及的過程將會進行五次,最終會生成針對testing set資料預測的5列2000行的資料a1,a2,a3,a4,a5,對testing set的預測會是5列2500行資料b1,b2,b3,b4,b5。

在完成對Model1的整個步驟之後,我們可以發現a1,a2,a3,a4,a5其實就是對原來整個training set的預測值,將他們拼湊起來,會形成一個10000行一列的矩陣,記為A1。而對於b1,b2,b3,b4,b5這部分資料,我們將各部分相加取平均值,得到一個2500行一列的矩陣,記為B1。

以上就是stacking中一個模型的完整流程,stacking中同一層通常包含多個模型,假設還有Model2: LR,Model3:RF,Model4: GBDT,Model5:SVM,對於這四個模型,我們可以重複以上的步驟,在整個流程結束之後,我們可以得到新的A2,A3,A4,A5,B2,B3,B4,B5矩陣。

在此之後,我們把A1,A2,A3,A4,A5並列合併得到一個10000行五列的矩陣作為training data,B1,B2,B3,B4,B5並列合併得到一個2500行五列的矩陣作為testing data。讓下一層的模型,基於他們進一步訓練。

以上即為stacking的完整步驟!

相關推薦

stacking過程

之前一直對stacking一知半解,找到的資料也介紹的很模糊。。所以有多看了幾篇文章,然後來此寫篇部落格,加深一下印象,順便給各位朋友分享一下。 stacking的過程有一張圖非常經典,如下: 雖然他很直觀,但是沒有語言描述確實很難搞懂。 上半部分是用一個基礎模型進

Cloudera Manager 5.12.0圖文安裝過程

這裡介紹的是cdh5的離線安裝方式,需要的檔案提前準備好,安裝過程會快一些。 安裝前提:機器配置記憶體一定要高,我這裡安裝的虛擬機器均是redhat7:記憶體分別是6G,4G,4G。 準備的檔案: mysql-connector-java-5.1.38.jar clou

Hadoop1.x: Shuffle過程---map和reduce資料互動的關鍵

文章來源: Shuffle描述著資料從map task輸出到reduce task輸入的這段過程。  個人理解: map執行的結果會儲存為本地的一個檔案中: 只要map執行 完成,記憶體中的map資料就一定會儲存到本地檔案,儲存這個檔案有個過程 叫做spi

阿里雲系列——7.阿里雲IIS系列過程+通用+最新)

先講IIS系列,Linux部署以後再繼續講 先開啟主機管理平臺,確認域名繫結  2.net版本設定一下 3.資料庫建立(兩種方法:1,平臺,2,SQLServer遠端連線) 使用者名稱之類的看主機管理頁面的顯示 4.網站釋出後上傳ftp伺服器 5

模型融合Stacking/Stacking與Blending的區別

stacking的過程有一張圖非常經典,如下: 雖然他很直觀,但是沒有語言描述確實很難搞懂。 上半部分是用一個基礎模型進行5折交叉驗證,如:用XGBoost作為基礎模型Model1,5折交叉驗證就是先拿出四折作為training data,另外一折作為testin

MapReduce:Shuffle過程

/**  * author : 冶秀剛  * mail     : [email protected]  */          Shuffle過程是MapReduce的核心,也被稱為奇蹟發生的地方。要想理解MapReduce, Shuffle是必須要了解的。我看

Nginx實現集群的負載均衡配置過程

post 發現 forward too strong eight glin 內容 請求 Nginx實現集群的負載均衡配置過程詳解 Nginx 的負載均衡功能,其實實際上和 nginx 的代理是同一個功能,只是把代理一臺機器改為多臺機器而已。 Nginx 的負載均衡

使用HeartBeat實現高可用HA的配置過程

接口 dea ive for 64位 doc 主機名 停止 enforce 使用HeartBeat實現高可用HA的配置過程詳解 一、寫在前面 HA即(high available)高可用,又被叫做雙機熱備,用於關鍵性業務。簡單理解就是,有2臺機器 A 和 B,正常

OC學習小結之ios運行過程

for cat 用戶 with res nbsp c學習 launch cati 1)ios核心類 UIView 視圖,屏幕上能看得見的東西都是視圖,例如:按鈕、文本標簽、和表格等 UIViewController:內部默認有個視圖(UIView),負責管理UIView的

storm集群部署和配置過程

多少 帶來 進程 創建 使用 命令 介紹 aml 可能 ---恢復內容開始--- 先整體介紹一下搭建storm集群的步驟: 設置zookeeper集群 安裝依賴到所有nimbus和worker節點 下載並解壓storm發布版本到所有nimbus和worker節點 配置s

結合http基於域名的虛擬主機訪問詳細原理及過程

linux服務器如何響應[[email protected]/* */ blog]# netstat -lntup|grep 80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN

TCP協議的3次握手與4次揮手過程

進行 發送數據 不存在 信息 隊列 協議 標識 方式 ar9 所謂三次握手(Three-Way Handshake)即建立TCP連接,就是指建立一個TCP連接時,需要客戶端和服務端總共發送3個包以確認連接的建立。所謂四次揮手(Four-Way Wavehand)即終止TCP

轉-Linux啟動過程(inittab、rc.sysinit、rcX.d、rc.local)

dha mage 模塊 都是 交換 如何配置 mas 完全 打開 http://blog.chinaunix.net/space.php?uid=10167808&do=blog&id=26042 1)BIOS自檢2)啟動Grub/Lilo3)加載內

TCP數據傳輸過程

握手 ron 布爾 位域 fcm 打開 數據段 2個 處理 在學習三次握手的時候,我們知道其中有seq、ack兩個序列號。 如果不仔細了解,那麽可能只知道發回去的時候要加一。 下文將著重介紹,關於序列號的傳輸過程。 最關鍵的一句話:序列號為當前端成功發送的數據位數,確認號為

嵌入式開發學習(2)<S5PV210啟動過程>

nan ios eight img 啟動方式 margin 需要 外部 啟動 基本概念: 內存:   SRAM 靜態內存 特點:容量小、價格高,優點:不需要軟件初始化,上電就能用。   DRAM 動態內存 特點:容量大、價格低,缺點:上電不能用,需要軟件初始化。  

linux--系統啟動及安裝過程

linux啟動先通過一張圖來簡單了解下整個系統啟動的流程,整個過程基本可以分為POST-->BIOS-->MBR(GRUB)-->Kernel-->Init-->Runlevel本文出自 “運維自動化” 博客,請務必保留此出處http://shower.blog.51cto.co

HBase寫過程

family region -s ont 流程 size 詳解 put 時機 1基本流程 (1)客戶端發起PUT請求 (2)Zookeeper返回hbase:meta所在的region server (3)去(2)返回的server上,根據rowkey查詢寫操作所在的reg

JVM類加載機制(一)JVM類加載過程

進行 虛擬機啟動 類加載的時機 bsp 參與 tro ext 環境 java代碼 首先Throws(拋出)幾個自己學習過程中一直疑惑的問題: 1、什麽是類加載?什麽時候進行類加載? 2、什麽是類初始化?什麽時候進行類初始化? 3、什麽時候會為變量分配內存? 4、什麽時候會為

Mysql 存儲過程實例

ima 這一 har odi cat image 來講 過程 相同 存儲過程和函數是事先經過編譯並存儲在數據庫中的一段SQL語句的集合,存儲和和函數的區別在於函數必須有返回值,而存儲過程沒有,存儲過程的參數可以使用IN、OUT、INOUT類型,而函數的參數只能是IN類型。存

Mysql加鎖過程

插入記錄 控制 uniq null 詳細 server 讀者 index 理論知識 1、背景   MySQL/InnoDB的加鎖分析,一直是一個比較困難的話題。我在工作過程中,經常會有同事咨詢這方面的問題。同時,微博上也經常會收到MySQL鎖相關的私信,讓我幫助解決一些死