原標題:Kaggle機器學習之模型融合(stacking)心得 雷鋒網(wǎng) AI科技評論按,本文作者吉他 雷鋒網(wǎng) AI科技評論按,本文作者吉他手,雷鋒網(wǎng) AI科技評論獲其授權(quán)發(fā)布。 在學習過程中感謝@貝爾塔模型融合方法,以及如何在 Kaggle 首戰(zhàn)中進入前 10%這篇文章(作者是章凌豪)。對于兩位提供的信息,感激不盡。同時還有Kaggle上一些關(guān)于ensemble的文章和代碼,比如這篇()。 本文適用于被stacking折磨的死去活來的新手,在網(wǎng)上為數(shù)不多的stacking內(nèi)容里,我已經(jīng)假設(shè)你早已經(jīng)看過了上述所提到的那幾篇有用的文章了。但是,看完之后內(nèi)心還是臥槽的。我希望下面的內(nèi)容能成為,你在學習stacking的曲折道路上的一個小火把,給你提供一些微弱的光亮。 本文以Kaggle的Titanic(泰坦尼克預測)入門比賽來講解stacking的應用(兩層。。 而數(shù)據(jù)的列數(shù)就看你保留了多少個feature了,因人而異。我自己的train保留了 7+1(1是預測列)。 如果一下子看不懂,就麻煩了,在接下來的一段時間內(nèi),你就會臥槽臥槽地持續(xù)懵逼...... 因為這張圖極具‘誤導性’。(注意!我沒說這圖是錯的,盡管它就是錯的。!但是在網(wǎng)上為數(shù)不多教學里有張無碼圖就不錯啦,感恩吧,我這個小弱雞)。 這樣的動作走5次! 長度為178 的預測值 X 5 = 890 預測值,剛好和Train data長度吻合。這個890預測值是Model 1產(chǎn)生的,我們先存著,因為,一會讓它將是第二層模型的訓練來源。 重點:這一步產(chǎn)生的預測值我們可以轉(zhuǎn)成 890 X 1 (890 行,1列),記作 P1 (大寫P) 接著說 Test Data 有 418 行。(請對應圖中的下層部分,對對對,綠綠的那些框框) 每1次的fold,713行 小train訓練出來的Model 1要去預測我們?nèi)康腡est Data(全部!因為Test Data沒有加入5-fold,所以每次都是全部。。此時,Model 1的預測結(jié)果是長度為418的預測值。 這樣的動作走5次!我們可以得到一個 5 X 418 的預測值矩陣。然后我們根據(jù)行來就平均值,最后得到一個 1 X 418 的平均預測值。 重點:這一步產(chǎn)生的預測值我們可以轉(zhuǎn)成 418 X 1 (418行,1列),記作 p1 (小寫p) 最后 ,放出一張Python的Code,在網(wǎng)上為數(shù)不多的stacking內(nèi)容里, 這個幾行的code你也早就看過了吧,我之前一直卡在這里,現(xiàn)在加上一點點注解,希望對你有幫助: |
關(guān)于我們|吹牛吉他網(wǎng) ( 蜀ICP備19038617號-2 )
GMT+8, 2024-4-26 14:58
Powered by Discuz! X3.4
© 2010-2018 www.wcnp.cn