トレーディングにおける機械学習:理論、モデル、実践、アルゴトレーディング - ページ 375

 

1) データセットをトレーニング、バリデーション、テストに分割する意味を正しく理解していますか?

a) トレーナーで教える
b) バリデーションでの誤差を確認し,トレーナーでの誤差よりはるかに大きい場合は,誤差が同じになるまで,1に戻る(同じとはどの程度か-全体の誤差の5%か)。例:チュートリアルで15%、バリデーションで20%)
c) テスト用でチェックし、最初の2つのセットと誤差が同じなら(どの程度同じか?)、モデルは安定しているので実行可能、そうでないなら忘れてもよい、とする。そして、他の予測因子を探す、フィルタリングを変更する、などです。

2) ところで、トレーニング/バリデーション/テストの誤差はどの程度を目安にすればよいのでしょうか?15/20/20%か、5/10/15%か、その他か?

3)なぜトレーニング例を混ぜることが推奨されているのか、よく理解できないのですが?とにかく各例を処理します。

 
エリブラリウス

ところで、トレーニング/検証/テストでは、どの程度の誤差を狙えばよいのでしょうか?15/20/20%か、それとも5/10/15%か、その他か?

以前は、そう、そんな感じでした。

エラーに関しては、仕様によります。例えば、MOやNSがトレードのエントリーを決定するのであれば、50%の誤差で十分かもしれません。例えば、成功した取引では平均2〜3pの利益を得ることができ、失敗した取引では1pの損失を得ることができます。この場合、0.5は悪い確率ではありません。

 
ユーリイ・アサウレンコ

前作は、そうですね、なんとなく。

エラーに関しては、仕様によります。例えば、MOやNSがトレードのエントリーを決定するのであれば、50%の誤差で十分かもしれません。例えば、成功した取引では平均2〜3pの利益を得ることができ、失敗した取引では1pの損失を得ることができます。この場合、0.5は悪い確率ではありません。

0.5では小さすぎるような...。実際に(他のNSの問題ではなく、トレーディングのために)どのような値を目指していけばいいのでしょうか?
10%までは覚えたいかもしれませんが、この数字が非現実的だと、自分の時間とCPUの時間を無駄にすることになります。例えば - あなたが達成した最高のエラーは何ですか?どのレベルで停止し、改善を求めないことができますか?
 
エリブラリウス
0.5はちょっと小さすぎるかも...。そして、自分が目指すべき価値観は何か、実践で本当に到達できるものは何か(他のNSの仕事ではなく、トレードのために)。
なぜなら、10%までは覚えたいが、この数字が非現実的であれば、時間とCPUを浪費することになるからだ。例えば - あなたが達成した最高のエラーは何ですか、そしてどのレベルで停止し、改善を求めないことが可能なのでしょうか?

0.5では物足りない?ふざけんなよ)ポーカーの勝率は1/9~1/6で、上手い人は必ず黒字になる、という例です。

そして、私のシステムはすべて、~0.5の確率で動作し、常にプラスになっていたのです。私の知る限り、多くのTSは0.5に近い確率で動作します。特に、オートトレードのカンファレンスで言及されました。

"それ以外は10%までトレーニングしたいが、非現実的な数字であれば" - 現実的か非現実的かは、特定のタスクに依存します。例えば、NSにMAをクロスさせることを教えたので、ほぼ100%信頼できます))。

 
ユーリイ・アサウレンコ

0.5では物足りない?ふざけんなよ)ポーカーの勝率は1/9~1/6で、上手い人は必ず黒字になる、という例です。

そして、私のシステムはすべて、~0.5の確率で動作し、常にプラスになっていたのです。私の知る限り、多くのTSは0.5に近い確率で動作します。特に、オートトレードのカンファレンスで言及されました。

"それ以外は10%までトレーニングしたいが、非現実的な数字であれば" - 現実的か非現実的かは、特定のタスクに依存します。例えば、NSにMAをクロスするように教えたことがありますから、ほぼ100%信頼できます))。

実際、何も予測することはできません。

 
ヴァシリー・ペレペルキン

実際、何も予測することは不可能です。FX市場で価格がどこに行くかは誰にも分かりませんが、それを知っているのはインサイダー、操り人形師だけです。

実は可能なんです。予想で0.5を使い、ストップよりテイクアウェイが高いのはありえないと思う、50/50と神頼みとは違うのでは)- すなわち、予測なし。全く別のコインをひっくり返しているのです))
 
エリブラリウス

1) データセットをトレーニング、バリデーション、テストに分割する意味を正しく理解していますか?

a) トレーナーで学ぶ
b) バリデーションでの誤差をチェックし,トレーニングでの誤差よりずっと大きい場合は,誤差が同じになるまでステップ1に戻る(同じとはどの程度か,全体の誤差の5%か).例:チュートリアルで15%、バリデーションで20%)
c) テスト用でチェックし、最初の2つのセットと誤差が同じなら(どの程度同じか?)、モデルは安定しているので実行可能、そうでなければ忘れてもいい。そして、他の予測因子を探す、フィルタリングを変更する、などです。

2) ところで、トレーニング/バリデーション/テストの誤差はどの程度を目安にすればよいのでしょうか?15/20/20%か、5/10/15%か、その他か?

3)なぜトレーニング例を混ぜることが推奨されているのか、よく理解できないのですが?とにかく各例を処理していきます。


1)すべてではなく、これは基本的なことです。

1つの大きなファイルを撮影します。不等辺に2分割する。

大きいほうは、おっしゃるように分かれています。ほぼ等しいはずの誤差を得ることができる。

その後、ファイルの2番目の部分でモデルを確認します。この部分の誤差は、またしてもあまり変わらないはずです。

これは、ペロブチネス(過剰適合)がないことの最も重要な証明である。


誤差の大きさは?これは、予測変数の集合から導かれる定数の一種で、モデルのタイプに適合させることで削減することができる。


例えば、こんな感じです。

4つの誤差がすべて35%前後だとすると、モデルを選択することで、神に誓って誤差を30%に減らすことができます。


PS.

10%以下の誤差は、明らかにオーバートレーニングのサインです。このようなエラーが発生した場合は、100回ほどダブルチェックをする必要があります。

 

ALGLIBのバリデーションセクションで早い段階で停止しているのを発見しました。

早期停止を用いたニューラルネットワークの学習(基本アルゴリズム - 正則化付きL-BFGS)。
...
検証セットの誤差が長く続くと、アルゴリズムが停止します。
が十分であるか、ステップサイズが十分小さいか(このようなタスクがあります)
の検証セットは永遠に減少する可能性があります)。いずれにせよ、解決策
は、検証セット誤差の最小値に相当する。

コードから判断すると、学習部と検証部の誤差を比較せず、検証部で誤差が最小になるように検索しているようです。そして、30回繰り返してより良いものが見つからなかった場合、あるいはすべての繰り返しが経過した場合に停止します。

でも、この方法がいつもより良いのか/正確なのか、よくわからない...。トレーニングのサイクル数を数倍にしない限りは...。

これが、私たちが手に入れたものです。

学習時の平均誤差(80%)=0.535 nLearns=200 NGrad=142782 NHess=0 NCholesky=0 codResp=6
検証時の平均誤差(20%) section =0.298 nLearns=200 NGrad=142782 NHess=0 NCholesky=0 codResp=6
フルプロット(トレーニング+バリデーションプロット)。
平均学習誤差=0.497 nLearns=200 NGrad=142782 NHess=0 NCholesky=0 codResp=6
テスト時の平均誤差(20%) section =0.132 nLearns=200 NGrad=142782 NHess=0 NCholesky=0 codResp=6

検証プロットへの適合があったように感じます。テストの方は概ね成功しているのですが、トレーニング中ではなかったので比較されておらず、おそらく偶然でしょう。
このFはアンサンブルを数えていて、2/3分割で両方のプロットですべてが混在しているのですが、私もそうしてみようと思います......。
シャッフルした。

学習時の平均誤差(60%) area =0.477 nLearns=10 NGrad=10814 NHess=0 NCholesky=0 codResp=6
検証時の平均誤差(40%) section =0.472 nLearns=10 NGrad=10814 NHess=0 NCholesky=0 codResp=6
フルプロット(トレーニング+バリデーションプロット)。
平均学習誤差=0.475 nLearns=10 NGrad=10814 NHess=0 NCholesky=0 codResp=6
テスト時の平均誤差(20%区間) =0.279 nLearns=10 NGrad=10814 NHess=0 NCholesky=0 codResp=6

ミキシングにより、トレーニング部とバリデーション部で誤差が均等化される。

実際の取引では、バーは独自の順序で進み、1時間前や1日前のバーと混ざらないのに、何かおかしいと思う。
そして、市場の「本質」が変われば、私たちは学び直したり、新しいNSモデルを探したりしなければならないということです。

 
ユーリイ・アサウレンコ
実は可能なんです。予測やテイクで0.5と、神の意思で50/50は違う))- すなわち、予測なし。全く別のコインをはじいているのです))
ランダムに開いて、例えば2倍以上のストップロスを取れば、それだけで統計的に利益が出るので、例えば10ポイントの利益で100トレード、5ポイントの損失で100トレード、結果的に500ポイントの利益が出れば、予想は必要ないのです。
 
サンサニッチ・フォメンコ


1)全てではなく、基本的なことです。

1つの大きなファイルを撮影します。不等辺に2分割する。

大きい方のパーツを、ご説明した方法で分割します。ほぼ等しいはずの誤差を得ることができる。

その後、ファイルの2番目の部分でモデルのチェックが行われます。この部分の誤差は、またしてもあまり変わらないはずです。

これは、フェザリング(オーバーフィット)がないことの最も重要な証明です。

4つのプロットが判明?トレーニング/検証/test1/test2 ?

トレーニング/バリデーションのサイクルは何回必要ですか?どこにも情報がないんだけど...。合計で1サイクル?- その直後に、予測因子セットやネットワークスキームの何かを承認したり変更したりするのですか?より正確には、Nサイクルのトレーニングのために、我々は1つの最高のものを表示されます。