天天看點

【比賽總結】2022十四屆華中杯數學模組化比賽總結

好久沒寫部落格了,因為最近在忙别的事情,事情比較多就不想寫東西了

是以沒在比賽結束的時候直接寫總結,拖到了現在

最後的結果是忘記寫附錄、忘記送出代碼和附件了,最終隻有三等獎的成績,這裡沒有怪我隊友的意思,其實有隊員記錯比賽時間應該所有人都有責任的。

好了,正經說說我們的解法吧,要是覺得特别差勁請嘴下留情。

以下隻寫我給隊友的readme.txt的檔案的内容吧,其他的不放了,想要的可以聯系我。

我們選的是B題。

第一問是“數字經濟”闆塊的主要名額,我們用的是PCA的做法。

對于第一問我們做了資料的處理,并且使用PCA實作了主成分分析。

readme.txt:

有一個特征值叫ARBR 它後面缺失的比較多 就直接把這個特征值舍棄掉了
剩下的采用的SPSSPro裡面的按照線性趨勢填充缺失值
資料處理的時候要把“數字經濟版塊資訊”中的5min求平均到每一天指派
歸一化就是(a[i]-min)/(max-min)的值
然後用程式把有所有名額的日期都整理到一個表(final中),預處理結束。

PCA是調用的sklearn裡面的API,PCA求權重是用的SPSSPro
求權重的根據是這個連結
https://www.jianshu.com/p/f4d8597f3906
剩下要寫的可能要結合PCA的原理啥的了
           

第二問隊友找到了LSTM的模型,我發現是個多參數的求最值的問題,考慮用PSO(粒子群)算法,于是給出了pso-lstm的模型

readme.txt:

PSO(粒子群算法)不是可以解決像 f(x1,x2,x3)=****,其中x1∈(),x2∈(),x3∈()這種很多個變量的函數的最值嘛

變量:

可以給它設定7×47個xi,因為有7個名額嘛,每個名額又有47個5min間隔的時間組成,把第1個時間的這個名額的值設成附件中給的那個

形式化來說:xij表示第i個名額第j個時間間隔的變化率,j>=1&&j<=47,xi0=附件中給的資料

這樣就能把每5min的第i個名額的值求出來

函數:

不是題目給我們分了訓練集和驗證集嘛

我們其實可以把訓練集中再分出一部分做測試集,友善求函數的傳回值(看下文)

是以我們現在就有訓練集、測試集、驗證集三組資料

先用LSTM訓練訓練集的資料,之後再将測試集帶入到訓練完的LSTM模型中

可以用類似于方差的東西,把誤差求出來

這個誤差就可以表示為函數的傳回值,函數的輸入就是那7×47個變量的值嘛

訓練的資料:x:每5min每個名額的值的組合;y:第二問是成交量,第三問是收盤價

讓PSO求這個函數的最小值,疊代一段時間之後,PSO會傳回算出的最優的7×47個變量的值

最後再用這組資料帶入到LSTM模型中,帶入驗證集得到答案

(其他:
    我不排除可能存在哪裡複雜度偏高的情況,但是我覺得思路這麼想應該不會有大問題
    你們先看看有沒有問題或者疑問,沒問題的話論文裡先按照這個寫
)
           

第三問其實我覺得主要就是計算,讓隊友幫忙找了一下每個名額5min變化率的範圍,然後用這個反推出計算時需要的一些量的值

(說的不清楚嗎?敷衍嗎?因為已經半個多月了,我已經記不太清細節了ovo)

readme.txt:

1:

根據1月4号的市場總值,然後根據每一天的成交額可以算出每一天的市場總值(或者直接都查出來)

然後用成交額÷市場總值

2:

把中證500指數的每5min漲跌幅的一個數字特征 看作 當日中證500指數收益率

這樣就能算出來 資訊比率

3:

第一問知道了每天的收益率,就可以根據100w和傭金,算出每天的資産

直接代入公式求出 最大回撤率


           

不管咋說,吸取教訓,也吸取記錯時間的教訓,以後加油吧。

如果對其中有一部分有問題的或者有想要跟我交流的可以私信我,或者直接前往cls1277.com擷取我的聯系方式。

我還是個菜鳥,還在學習中,歡迎大家與我交流呀!

補充個我與隊友的聊天記錄哈哈哈

【比賽總結】2022十四屆華中杯數學模組化比賽總結

繼續閱讀