量化交易軟件:赫茲量化中暴力算法的 CatBoost 模型高級(jí)重采樣與選擇
我試圖提供一個(gè)關(guān)于主要機(jī)器學(xué)習(xí)模型創(chuàng)建步驟及其進(jìn)一步實(shí)際應(yīng)用的總體思路。在這一部分中,我想從簡(jiǎn)單的模型切換到具有統(tǒng)計(jì)意義的模型。由于創(chuàng)建一個(gè)基于機(jī)器學(xué)習(xí)的交易系統(tǒng)不是一個(gè)簡(jiǎn)單的任務(wù),我們將從一些數(shù)據(jù)準(zhǔn)備改進(jìn)開(kāi)始,這將有助于實(shí)現(xiàn)最佳結(jié)果。可以使用各種重采樣技術(shù)來(lái)改進(jìn)源數(shù)據(jù)的表示(訓(xùn)練示例)。本文將討論其中一種技術(shù)。
原始GIGO數(shù)據(jù)集分析
本文使用了前一部分中修改和改進(jìn)的函數(shù)。載入數(shù)據(jù):
LOOK_BACK = 5 MA_PERIODS = [15, 55, 150, 250] SYMBOL = 'EURUSD' MARKUP = 0.00010 TIMEFRAME = mt5.TIMEFRAME_H1 START_DATE = datetime(2020, 1, 1) TSTART_DATE = datetime(2015, 1, 1) STOP_DATE = datetime(2021, 1, 1) # make dataset pr = get_prices(START_DATE, STOP_DATE) pr = add_labels(pr, min=10, max=25, add_noize=0) res = tester(pr, plot=True) pca_plot(pr)
由于原始數(shù)據(jù)集的維數(shù)是20個(gè)特征(look_back*len(ma_periods))或任何其他大的特征,所以在平面上顯示它不是很方便。讓我們使用PCA方法,只顯示5個(gè)主要組件,這將允許以最少的信息損失壓縮特征空間:
如果您不熟悉PCA(主成分分析),請(qǐng)?jiān)?span id="s0sssss00s" class="nolink">谷歌中搜索。
def pca_plot(data): ? ?from sklearn.decomposition import PCA ? ?pca = PCA(n_components = 5) ? ?components = pd.DataFrame(pca.fit_transform(data[data.columns[1:-1]])) ? ?components['labels'] = data['labels'].reset_index(drop = True) ? ?import seaborn as sns ? ?g = sns.PairGrid(components, hue="labels", height=1.2) ? ?g.map_diag(sns.histplot) ? ?g.map_offdiag(sns.scatterplot) ? ?g.add_legend() ? ?plt.show()