原文發(fā)表于:數(shù)據(jù)競(jìng)賽:厄爾尼諾預(yù)測(cè)第5名方案和代碼
歡迎關(guān)注微信公眾號(hào):YueTan
背景
照例先感謝國家,國家提倡就地過年抄瑟、沒讓回家,只好找個(gè)有意思的事情庆冕、才找了這個(gè)比賽做的。過年期間就是一邊循環(huán)播放三體、一拳超人、賭博默示錄匙握,另一邊就一直做比賽,大概累計(jì)出門了兩次陈轿。年夜飯:
對(duì)于下一次認(rèn)真參加的比賽圈纺,想找個(gè)能穩(wěn)定線下驗(yàn)證的。認(rèn)真參加了兩個(gè)比賽麦射,都抖蛾娶,反而靠運(yùn)氣連拿兩個(gè)獎(jiǎng)杯,終究不是長久之計(jì)啊潜秋。
Roadmap
小故事:大年初一那天蛔琅,開始第一次嘗試提交,當(dāng)天還在論壇里寫了一篇docker提交錯(cuò)誤的總結(jié)和應(yīng)對(duì)峻呛,那篇帖子的最后我說接下來去研究時(shí)間序列模型了罗售,給了兩個(gè)參考鏈接就有我最終使用的模型,當(dāng)時(shí)的我真的沒有想到钩述,其中的一個(gè)模型竟然那么有用寨躁。
- 方案一:使用24個(gè)LightGBM模型來分別預(yù)測(cè)未來24個(gè)月的指數(shù)。A榜最高分?jǐn)?shù): -20
- 方案二:時(shí)空預(yù)測(cè)模型牙勘,應(yīng)用ConvLSTM等時(shí)空信息职恳,依據(jù)空間和時(shí)間信息來預(yù)測(cè)未來,主要就是在baseline基礎(chǔ)上進(jìn)一步優(yōu)化方面。A榜最高分?jǐn)?shù):32
- 方案三:時(shí)間序列模型放钦,利用dynamic decoding的方式分別預(yù)測(cè)24個(gè)月的值。A榜最高分?jǐn)?shù):39恭金,B榜第一次提交時(shí)的分?jǐn)?shù)41.97操禀,最后排行榜可以排第8,優(yōu)化后的最終方案也就是最終成績排第5
方案介紹
答辯現(xiàn)場(chǎng)聽下來蔚叨,我的模型是最簡單的床蜘,用簡單模型大概是我做數(shù)據(jù)挖掘留下的職業(yè)病。線上訓(xùn)練加預(yù)測(cè)只有半小時(shí)蔑水,應(yīng)該也是最快的。嘛時(shí)候能做到最簡單扬蕊、最快搀别、效果還最好才是最終目標(biāo)。
數(shù)據(jù)上主要有效的操作一個(gè)是采樣尾抑,一個(gè)是截?cái)嘈浮:苓z憾的是雖然我很喜歡PPT上說為什么進(jìn)行這個(gè)采樣頻率蒂培,但實(shí)際我是先做了采樣,后面在寫PPT的時(shí)候才想起來把這兩件事關(guān)聯(lián)起來的榜苫,算是一個(gè)構(gòu)造的故事护戳。
特征主要來自氣象和時(shí)間特征,PPT上很清楚了垂睬,也可以看代碼媳荒。
月份信息對(duì)于預(yù)測(cè)很關(guān)鍵,可以看出每個(gè)月指標(biāo)增加或減小的分布并不相同驹饺。dynamic decoding的方式有用的關(guān)鍵一環(huán)也可能是可以加入月份信息钳枕。
我對(duì)于數(shù)據(jù)的選取其實(shí)不夠robust,但A榜和B榜本身卻很穩(wěn)定赏壹,可能是運(yùn)氣好吧鱼炒。以前學(xué)力學(xué)的時(shí)候,一個(gè)俄國人開創(chuàng)了一門新的分支蝌借,關(guān)于穩(wěn)定平衡與不穩(wěn)定平衡的研究昔瞧,我覺得自己這里就不穩(wěn)定。發(fā)生在這個(gè)比賽里菩佑,我是不相信每次我初始選擇的幾個(gè)參數(shù)恰好就是局部最優(yōu)的硬爆,但關(guān)于數(shù)據(jù)的選取上,不管增大或減小都會(huì)降分擎鸠。
答辯完缀磕,和大家吃了個(gè)飯就去玄武湖公園了,劃了一個(gè)小時(shí)船后火車回了劣光。
未解之謎
數(shù)據(jù)是一個(gè)實(shí)驗(yàn)學(xué)科袜蚕,還是應(yīng)該多嘗試的。中間我想嘗試teacher forcing和sample scheduling的時(shí)候绢涡,只嘗試了teacher forcing后降分了牲剃,就沒嘗試sample scheduling了,從幾個(gè)隊(duì)伍的表現(xiàn)來看這個(gè)是有用的雄可。另外我對(duì)框架從pytorch換成tensorflow這個(gè)降分點(diǎn)凿傅,一直沒弄明白。
最后:
代碼開源如下:https://github.com/LongxingTan/Data-competitions/tree/master/tianchi-enso-prediction
后記:
發(fā)現(xiàn)了我前面有人作弊数苫,一下?lián)p失好多錢:https://www.zhihu.com/question/4357