ubiquant九坤量化金牌方案解讀
九坤投資ubiquant是目前國內成立最早、投資管理經驗最為豐富的多策略量化私募基金管理人之一。公司投研和技術團隊核心成員90%+畢業於清華、北大、上海交大、復旦、斯坦福等國內外知名院校,且在華爾街知名對衝基金、全球頭部科技公司、國內知名互聯網企業擁有多年工作經驗。
2022年1月,九坤聯合kaggle舉辦A股股票預測大賽,目的是預測股票未來短期的收益。比賽官網地址: Ubiquant Market Prediction | Kaggle 。
1)背景介紹
無論你的投資策略如何,金融市場都會出現波動。儘管存在這種差異,但專業投資者仍試圖估計其整體回報。風險和回報因投資類型和其他影響穩定性和波動性的因素而異。為了嘗試預測回報,金融市場交易有許多基於計算機的算法和模型。然而,有了新的技術和方法,數據科學可以提高定量研究人員預測投資回報的能力。
2)數據特點
這場比賽的數據是基於A股真實的交易數據,不過所有數據都做了匿名處理。數據乾淨無缺失,結構清晰且簡單,盡大可能的方便選手進行建模。
![](http://mdimg.wxwenku.com/getimg/356ed03bdc643f9448b3f6485edc229b5aa8d97a61b49737ed3e737d13c5f458e0a53be728eed2e84d473b5ee0370f71.jpg)
- 時間列表
time_id代表時間,0代表第0天,其它類似。時間雖是匿名的,不過時間0-1219代表2014-2018年。
- 股票列表
investment_id代表股票ID;比賽數據的股票數量隨着時間推移,股票數量是增多的,其原因是A股市場不斷增加新股。紅框數據的股票比較少,是因為九坤官方提出了部分不想要的股票數據。
雖説investment_id是匿名的,但還是有辦法破解的。利用A股真實交易數據,計算A股股票收益和九坤給出數據的target的相關性,每次匹配選出最相關的映射,剔除後再重新匹配,循環遍歷即可。 Ubiquant Market Prediction | Kaggle
![](http://mdimg.wxwenku.com/getimg/6b990ce30fa9193e296dd37902816f4bcdb8ba316a5952de8e0484c9f5fe1f9f46bc4f73602c25f13b581337f23c76c8.jpg)
- 因子特徵
九坤比賽給出了300個匿名的特徵,這些特徵我嘗試去破解,把alpha101因子庫和自己的因子庫和它的特徵去匹配,但是結果很沮喪,一個都沒匹配出來。這些特徵是匿名的,也是九坤對其研究成果的一個保護。
![](http://mdimg.wxwenku.com/getimg/ccdf080c7af7e8a10e9b88444af98393bf6e80d39455d7fdeec403dd381c6db8a85803727f46a7012c52dbba20239977.jpg)
- target
target也是匿名的,是對短期收益數據的變換,具體變換規則無從知曉。
![](http://mdimg.wxwenku.com/getimg/356ed03bdc643f9448b3f6485edc229b33f510e2c6bf9382c5f4efd16522707c014e6915d4f7d76518ca0de5d30de313.jpg)
![](http://mdimg.wxwenku.com/getimg/356ed03bdc643f9448b3f6485edc229b67f2186931407397e622c086eb665af4fd8612459a4c02873af3dcd421474b5e.jpg)
3)解決方案
這場比賽目前僅有少數隊伍公佈瞭解決方案,詳細解讀下供大家參考。
- 第一名方案
原始鏈接: Ubiquant Market Prediction | Kaggle
![](http://mdimg.wxwenku.com/getimg/6b990ce30fa9193e296dd37902816f4b5cad46984a8b1da2aecde40f18950d28adf9df5d2a474092dbc936b7e598ec4e.jpg)
特徵:原始的300匿名因子+100個按照time_id group的mean因子
features = [f'f_{i}' for i in range(300)] corr = train_df[features[:] + ['target']].corr()['target'].reset_index() corr['target'] = abs(corr['target']) corr.sort_values('target', ascending = False, inplace = True) best_corr = corr.iloc[3:103, 0].to_list() time_id_mean_features = [] for col in tqdm(best_corr): mapper = train_df.groupby(['time_id'])[col].mean().to_dict() train_df[f'time_id_{col}'] = train_df['time_id'].map(mapper) train_df[f'time_id_{col}'] = train_df[f'time_id_{col}'].astype(np.float16) time_id_mean_features.append(f'time_id_{col}') features += time_id_mean_features
採樣:使用訓練樣本的前2400000行
驗證:kfold和groupkfold
模型:lightgbm和tabnet
- 第三名方案
原始鏈接: Ubiquant Market Prediction | Kaggle
特徵:300原始特徵
模型:6層transformer,自定義的pearson loss函數,10epoches
數據:特徵維度上用0隨機替代;序列維度上隨機遮掩特徵
- 第五名方案
原始鏈接: Ubiquant Market Prediction | Kaggle
數據:使用timeid>599的樣本訓練,去除127個target異常的數值
特徵:300原始特徵
模型:4層mlp
驗證:purged cv, 20fold,gap為10
- 第七名方案
原始鏈接: Ubiquant Market Prediction | Kaggle
特徵:300原始特徵+600維作者基於經驗做的特徵工程,這裏作者表示不可泄露
模型:lightgbm
- 我們的方案
這場比賽我打了兩個月,花費了不少精力,最後和richard, lafoss大神組隊。最終排名86/2893,不太理想。總體感覺量化比賽比一般表格賽的難度要大,平穩性明顯差很多,更加考驗參賽者的建模能力。
數據:train+supplement
特徵:原始300維特徵
驗證:cpcv和timeseries split方法
模型:transformer、NN模型融合;lgb因為LB效果太差,放棄過早,沒有深入研究。
![](http://mdimg.wxwenku.com/getimg/ccdf080c7af7e8a10e9b88444af9839354ad37a5cadf48ffb115beab62317626bffc090207a299a011baaf64955464f0.jpg)
整理不易,供老師們參考,歡迎一鍵三連~
- PC端微博Vue-Recyclerview組件的分析與數據採集
- 數據科學在文本分析中的應用 :中英文 NLP(上)
- 如何分析網站監控中的數據報表,都有哪些關鍵信息?
- 前端監控穩定性數據分析實踐 | 得物技術
- 查詢性能較 Trino/Presto 3-10 倍提升!Apache Doris 極速數據湖分析深度解讀
- 雲小課|MRS數據分析-通過Spark Streaming作業消費Kafka數據
- 數據分析----Matplotlib
- 為了買房,我抓取了某家房源的成交數據(分析篇)
- 2023年五大趨勢預測 | 大數據分析、人工智能和雲產業展望
- 數據分析模型---AARR模型R和RFM模型
- 數據科學家賺多少?數據全分析與可視化 ⛵
- 跳躍表數據結構與算法分析
- 數據分析之必備技能---數據分析報告
- 噓!P站數據分析年報;各省市疫情感染進度條;愛奇藝推出元宇宙App;You推出AI聊天機器人;GitHub今日熱榜 | ShowMeAI資訊日報
- 下一個十年,我們需要一款什麼樣的分析型數據庫?
- Pandas數據分析:快速圖表可視化各類操作詳解 實例代碼(一)
- 【數據庫內核分析系列】:數據庫索引的創建過程
- 數據價值深度挖掘,分析服務上線“探索”能力
- 技術內幕 | 阿里雲EMR StarRocks 極速數據湖分析
- Android數據結構全面分析(中)