Stacking/Ensembling 相關文章推薦

Rick Liu
4 min readSep 25, 2017

--

總共四篇,前兩篇屬於入門級:第一篇基本上就是體驗一下而已,第二篇我稱之為手把手實戰。第三篇就屬於說明為主,點到為止。第四篇應該算經典文了,必讀。最後補了一篇有 R 程式碼的。

體驗區

用 KNN 以及 SVM 兩個基礎模型作為例子,簡易說明了 Stacking 的整體流程,也提到了 Data Leakage 的問題。算是一個有實例、有效果的入門教學。

手把手實戰區

比上面那個高級了一點,用了五種模型,示範資料是鐵達尼資料集,完全不偷懶地用 python 一個步驟一個步驟做給大家看,時不時地還畫一下圖,讓大家感受一下。最後也推薦了下面 mlwave 的那篇文章。

延伸戰場

這篇跟前兩篇最主要的不同在於,範圍不只是在 Stacking,而擴展到 Ensemblig。開頭簡單說明 Bagging、Boosting、Stacking 的差異,接著個別實作,並用圖例以及數據顯示各種方法的效果。文中僅用 pseudo-code 說明算法,文末附上 github ipython notebook 連結,最後的推薦閱讀列了兩本書,MLxtend、scikit-learn 的教學,一則 Kaggle 討論,跟下面這篇。

最終戰場

重頭戲是這篇。從 Voting/Weighting、Averaging、Rank Averaging、Stacking/Blending,每段講解後,都用 Kaggle 競賽當例子,附上的程式碼,而且程式碼相當有誠意,是大家立刻可以用的那種,不用再自己改寫了,當然必須趕緊 fork 到 https://github.com/kaggletw/Kaggle-Ensemble-Guide

在 Stacking 的部分,分出好幾個小主題來說明,有討論 non-linear、linear、quadratic linear、classifiers 與 regressors 互用、unsupervised 等。

最後在 automation 的部分,作者也用了一點篇幅描述自己的想法,雖然作者自己的 Hodor-autoML 看來並沒有成形,但是跟作者曾經是戰友的 KazAnova 則是開發了 StackNet,也算是英雄所見略同。

code in R

這個貼給看得懂的人看,平衡一下寫 R 的讀者 XD

題外話

其實 Kaggle 官方網誌還有另一篇 [1] 有提到 Stacking,但由於主要是在介紹 StackNet 這個套件我本來沒打算列,不過裡面解釋的圖示滿可愛的的,有張圖也常被引用,所以我就寫一下怕別人覺得我沒看過(誤)

[1] http://blog.kaggle.com/2017/06/15/stacking-made-easy-an-introduction-to-stacknet-by-competitions-grandmaster-marios-michailidis-kazanova/

#Kaggle
#MachineLearning
#DataScience
#Stacking

--

--