Optiver股票大賽Top2開源!
Optiver第二名方案解讀
簡介

?官網(wǎng)
https://www.kaggle.com/c/optiver-realized-volatility-prediction/rules
Optiver競賽已經(jīng)于今天結(jié)束了,競賽也出現(xiàn)了極端情況,中間斷崖式的情況,在Kaggle過往的競賽中,一般出現(xiàn)這種情況的情況有三種:
過擬合排行榜數(shù)據(jù),例如一些回歸問題中,極值的測試;
匿名數(shù)據(jù)中存在某些特定的關(guān)系,常見于數(shù)據(jù)被特殊處理的問題中,逆向特征工程;
特殊指標(biāo)的問題,一些后處理技巧等;
而本次比賽,也不例外,從賽后和前五的選手交流以及目前第二名選手的開源的來看,幾乎全部都涉及到了時間信息的逆向特征工程。本篇文章,我們就一起解讀一下該次競賽。
開源的代碼可以在后臺回復(fù):Optiver獲取,當(dāng)然也可以去kaggle code處尋找。
方案解讀

01
時間逆向特征
逆向的思路是:在本次競賽中,因為競賽數(shù)據(jù)是經(jīng)過匿名化的,但是我們可以使用tick size來恢復(fù)在匿名之前的真實價格;
tick size:是報價中最小的價格增量。https://en.wikipedia.org/wiki/Tick_size
使用計算得到的price,展開成下面的矩陣:
其中為time_id的個數(shù),S是股票的個數(shù),然后每個值是某個股票在某個時間點的price,剩下的就是基于該矩陣還原time_id的真實順序,該處直接使用了TSNE將其壓縮到qin

03
特征工程
3.1 特征構(gòu)建
如果我們能以非常高的精度得到我們的數(shù)據(jù)產(chǎn)出順序,那么未來階段的RV很明顯就是非常重要的特征,這邊,使用許都距離metric來尋找最近的N個時間并計算RV的平均值等特征。

3.2 特征處理
基于時間序列的對抗驗證,我們發(fā)現(xiàn)非常多的特征隨著時間的變化影響很大,例如order_count和total_volume這些,所以我們將其轉(zhuǎn)化為在某個時間點的rank進(jìn)行處理,與此同時,使用np.log1p對大的skew大的值進(jìn)行處理。
04
建模
模型處和開源的是類似的,1DCNN+MLP+LGB,其實我們發(fā)現(xiàn)TabNet在本次競賽中效果也非常不錯,不過考慮到時間原因,沒有再使用。

這些模型影響應(yīng)該不是非常大,應(yīng)該也不是核心。
參考文獻(xiàn)

public 2nd place solution
Public 2nd Place Solution - Nearest Neighbors
作者:杰少,轉(zhuǎn)載https://mp.weixin.qq.com/s/et0VzgI9F-7zxA9NbpTDOg
