記事「ニューラルネットワークが簡単に(第16部):クラスタリングの実用化」についてのディスカッション

 

新しい記事「ニューラルネットワークが簡単に(第16部):クラスタリングの実用化」はパブリッシュされました:

前回は、データのクラスタリングをおこなうためのクラスを作成しました。今回は、得られた結果を実際の取引に応用するためのバリエーションを紹介したいと思います。

EAの性能を評価するために、前回の記事で訓練して、前回のテストで使用した500クラスタのクラスタリングモデルを使ってテストをおこないました。訓練グラフは以下の通りです。

学習過程の損失関数の値のグラフ

ご覧の通り、訓練グラフは非常に滑らかです。モデルの訓練には、Adamのパラメータ最適化手法を用いました。最初の20エポックは、損失関数が徐々に減少していることを示しており、これはモーメントの蓄積に関連しています。そして、損失関数の値がある最小値まで急激に減少するのが目に見えています。これまで得られた教師ありモデルの訓練グラフでは、損失関数の折れ線が目立っていました。

作者: Dmitriy Gizlyk

 


2022.05.30 21:57:27.477 kmeans (WDO$,H1) 800 モデルエラー inf

2022.05.30 22:00:23.937 kmeans (WDO$,H1) 850 モデルエラー inf

2022.05.30 22:04:22.069 kmeans (WDO$,H1) 900 モデル誤差 inf

2022.05.30 22:08:04.179 kmeans (WDO$,H1) 950 モデル誤差 inf

2022.05.30 22:10:56.190 kmeans (WDO$,H1) 1000 モデル誤差 inf

2022.05.30 22:10:56.211 kmeans (WDO$,H1) ExpertRemove() 関数が呼び出されました。

このエラーを解決するには?


 
Rodrigo Pagani #:
2022.05.30 21:57:27.477 kmeans (WDO$,H1) 800 モデルエラー inf

このエラーを解決するには?


これはプログラムの実行エラーではありません。この行はモデル誤差(クラスタの中心までの平均距離)を表示します。しかし、inf - 計算精度を超えた値が表示されています。元の値をスケールしてみてください。例えば、10,000で割る

 
Dmitry Gizlyk # :

これはプログラムの実行エラーではありません。この行はモデル(クラスタの中心からの距離)の誤りです。値 - 値の正確さについて説明します。元の値の次元を決める必要があります。例えば、10.000で割る。

それでも解決策は見つからなかった。

 
Rodrigo Pagani #:

それでも解決策は見つからなかった。

data[shift] = NormaliseDouble((open - Rates[bar].low)/100,2);
data[shift + 1] = NormaliseDouble((Rates[bar].high - open)/100,2);
data[shift + 2] = NormaliseDouble((Rates[bar].close - open)/100,2);
data[shift + 3] = NormaliseDouble(RSI.GetData(MAIN_LINE, bar)/100,2);
data[shift + 4] = NormaliseDouble(CCI.GetData(MAIN_LINE, bar)/100,2);
data[shift + 5] = NormaliseDouble(ATR.GetData(MAIN_LINE, bar)/100,2);
data[shift + 6] = NormalizeDouble(MACD.GetData(MAIN_LINE, bar)/100,2);
data[shift + 7] = NormalizeDouble(MACD.GetData(SIGNAL_LINE, bar)/100,2);