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

 
vladavd #:

この場合の新しいものとは、ジグザグとそれに沿った水路である。

これがすべてではありません。

許されるのは5%だけです。)

lynxntech#:

最後の言葉とハンバーガーのようなものだ)

自分を正当化するチャンスは常に与えなければならない。

 

やあ、みんな!

どなたかアドバイスをお願いします。私は、"DecisionTreeClassifier "モデルを使用して、その日の通貨ペアの方向(上昇または下降)を予測しようとしています。

予測には5つの予測変数のみを使用し、予測結果は上昇トレンド(1)または下降トレンド(-1)です。データセットサイズ:999行6列(データセットを添付)。

しかし、"max_depth "を増加させると、トレーニング・サンプルとテスト・サンプルの精度が同時に増加し続けるという問題が発生しました。テストサンプルの精度は成長が止まり、max_depth=22で 一定となり 0.780000に等しくなります。max_depthの異なる値での結果:


1) clf_20=DecisionTreeClassifier(criterion='entropy', max_depth=3)

トレーニングセットでの精度: 0.539424 テストセットでの精度: 0.565000

2) clf_20=DecisionTreeClassifier(criterion='entropy', max_depth=5)

トレーニングセットでの精度: 0.579474 テストセットでの精度: 0.585000

3) clf_20=DecisionTreeClassifier(criterion='entropy', max_depth=7)

トレーニングセットでの精度: 0.637046 テストセットでの精度: 0.640000

4) clf_20=DecisionTreeClassifier(criterion='entropy', max_depth=9)

トレーニングセットでの 精度: 0.667084 テストセットでの精度: 0.700000

5) clf_20=DecisionTreeClassifier(criterion='entropy', max_depth=11)

トレーニングセットでの精度: 0.700876 テストセットでの精度: 0.710000

6) clf_20=DecisionTreeClassifier(criterion='entropy', max_depth=13)

トレーニングセットでの精度: 0.720901 テストセットでの精度: 0.720000

7) clf_20=DecisionTreeClassifier(criterion='entropy', max_depth=15)

トレーニングセットでの精度: 0.734668 テストセットでの精度: 0.740000

8) clf_20=DecisionTreeClassifier(criterion='entropy', max_depth=17)

トレーニングセットでの精度: 0.747184 テストセットでの精度: 0.760000

9) clf_20=DecisionTreeClassifier(criterion='entropy', max_depth=19)

トレーニングセットでの精度: 0.755945 テストセットでの精度: 0.765000

10) clf_20=DecisionTreeClassifier(criterion='entropy', max_depth=22)

トレーニングセットでの精度: 0.760951 テストセットでの精度: 0.780000


リトレーニングが可能なので、max_depthを 3-4以上使ってはいけないと聞いたことがあるので、この状況に非常に困惑しています。しかし、再学習時にモデルがこのような振る舞いをするのでしょうか?

このような状況で、どのような深さの決定木を選択するのか、どのようなモデルを選択するのか、また、一般的に、この方向でさらに作業する価値があるのか、何かが欠けているのか(しかし、例えば、データセットは100行ではありません)、予測子を追加することが可能なのか、また、このようなデータセットのサイズで、さらにいくつ追加できるのか(私なら、さらに2-5個追加します)、理解できません。

コードは簡単なので、データセットと一緒に添付します:



ファイル:
 
Elvin Nasirov #:

というのも、再学習が可能なので、max_depthを 3-4以上使ってはいけないと聞いたからです。

このような状況で、どのような深さの決定木を選択するのか、どのようなモデルを選択するのか、また、一般的に、この方向でさらに作業する価値があるのか、何かが欠けているのか(しかし、データセットが100行ではないなど)、予測子をさらに追加することが可能なのか、また、このようなデータセットのサイズでさらにいくつ追加できるのか(私なら2-5個追加します)、理解できません。

コードは簡単なので、データセットと一緒に添付します:

こんにちは。

分割数が増える - メモリが増える = サンプルを学習するリスクが増える。

私はpythonに精通しているわけではありませんが:

1.ミキシングせずにサンプルを分割してみる。

2.2.やはり、縮小されたサンプルではなく、サンプル全体で学習しているようだ。

 
Aleksey Vyazmikin #:

こんにちは。

スプリットの数が多いほど、メモリが多いほど、サンプルを学習するリスクが高くなる。

私はpythonに精通していませんが:

1.ミキシングせずにサンプルを分割してみる。

2.縮小したサンプルではなく、サンプル全体を使ってトレーニングしているようですね。

ありがとうございます!その通りだと思います。

上のコードの "clf_20.fit(X, y) "を "clf_20.fit(X_train, y_train) "に置き換えてみたところ、ほぼ半々くらいになりました。

 
Elvin Nasirov #:

ありがとう!その通りだと思う。

上のコードの "clf_20.fit(X, y) "を "clf_20.fit(X_train, y_train) "に置き換えてみたところ、ほぼ半々になりました。

このような結果が出るのは普通のことだ。あまりに良い結果は、常にコードのバグを探し始める理由となる。

 
Aleksey Vyazmikin #:

このような結果が出るのは普通のことだ。あまりに良い結果は、常にコードのバグを探し始める理由となる。

もうひとつ質問があります。

最高の結果はmax_depth=1で達成され、以下のようになります:

トレーニングセットでの精度:0.515021 テストセットでの精度:0.503333

これは非常に悪い結果で、コインを裏返す確率に等しい。それとも、これは良い結果であり、FXの動きの確率と結果の確率をコインをはじく確率で平準化できる定式化を見つけたと結論づけることができるだろうか?

つまり、予測変数の各組み合わせに対して、市場の動きには上か下かという2つの等価なバリエーションがあるような状況であり、したがって、現在の組み合わせでも上か下かを指定できるようなものでデータセットを補完する必要がある。

 
Elvin Nasirov #:

もうひとつ質問がある。

最良の結果はmax_depth=1で達成され、次のようになることが判明した:

トレーニングセットでの精度:0.515021 テストセットでの精度:0.503333

これは非常に悪い結果で、コインを裏返す確率に等しい。それとも、これは良い結果であり、FXの動きの確率とコインの裏返しの確率を平準化できる定式化を見つけたと結論づけることができるでしょうか?

つまり、予測変数の各組み合わせに対して、市場の動きには上か下かという2つの等価なバリエーションがあるような状況であり、したがって、現在の組み合わせでも上か下かを特定できるようなものでデータセットを補完する必要がある。

トレーニングの結果を評価するための他のメトリクス、Recall (完全性)とPrecision (正確性)について最初に読んでください。戦略は、正しい結果と正しくない結果が同じ確率で、分類にプラスの財務結果をもたらすことかもしれません。

より複雑だが論理的な目標マークアップを考えてみよう。一日の始値に対して終値がどうなるかを判断することは、その日の始値に対して何%かの上昇と下落の確率を判断することよりも難しい - 日中パターンを特定する確率がある。

私にとっては、サンプルが少なすぎる。

市場を説明できる予測因子を作ることを考える。私の考えでは、予測因子の指標から、チャートを見ずにチャート上の状況を復元することができるはずです。

トレーニングのためにCatBoostを試してみることをお勧めします。CatBoostは素早くモデルを構築し、MT5で松葉杖なしで動作するようにモデルをコードに転送する問題が解決されます。

 
Elvin Nasirov #:

max_depth=1のときに最良の結果が得られることがわかり、以下のようになる:

トレーニングセットでの精度:0.515021 テストセットでの精度:0.503333

また、最良の結果がdepth=1であることもよく見かけますが、これは1つの特徴に対して1つの分割しか行われていないことを意味します。これ以上ツリーを分割すると、トレーニングでオーバートレーニングになり、テストでは結果が悪くなります。

 
elibrarius #:

また、最良の結果が深さ=1であることもよく見かけますが、これは特徴の1つに対して1つの分割しか行われていないことを意味します。これ以上ツリーを分割すると、トレーニングがやり直しになり、テスト結果が悪化します。

昨日結果をチェックしたところ、すべてのケースでモデルは平均して "1 "の予測を与え、したがって半々であることが判明した。このモデルはなくても大丈夫だ。

 
プロのプロトレーダーとしての取引
https://youtu.be/RS9jRVmW1j4

私の理解では、サポート・レベルとレジスタンス・レベルとはこういうものだ。

すべての人が理解できるわけではないが、もし理解できたとしたら、それは称賛に値する...。

EARNING SEASON KICKS OFF - Trading Futures Live
EARNING SEASON KICKS OFF - Trading Futures Live
  • 2023.01.13
  • www.youtube.com
Join our FREE Discord community https://discord.gg/zhvUwUUhFirst 5 days of January bullish were followed by Full-year gains 83% of the time since 1950.Earnin...
理由: