ここで混同する必要はない
train_X, test_X, train_y, test_y = train_test_split(X, y, train_size = 0.5, test_size = 0.5, shuffle=True)
https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html のヘルプによると
分割前にデータをシャッフルするかどうか。shuffle=Falseの場合、stratifyはNoneでなければならない。
すなわち、テストのいくつかの例が訓練に含まれることになる。
総じて、私はこの記事が気に入った。トレーディングにAIを実装し使用することは非常に簡単であることを示している。
- scikit-learn.org
検証は悪化し、未知のデータでのテストは改善されるかもしれないね。
ここでかき回す必要はない
ヘルプによると https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html
データは分割する前に混合されます。つまり、testからのいくつかの例がtrainに含まれます。
一般的に、私はこの記事が気に入りました。トレーディングにAIを実装し、使用することは非常に簡単であることを示しています。
私は、サンプルを少し均等にするために、わざとこのようにしています。ミキシングをしないとテストは悪くなりますが、新しいデータにはほとんど影響しません。後で例を示します。
それが分からないんだ:
if dataset['close'][i] >= (dataset['close'][i + rand]): labels.append(1.0) elif dataset['close'][i] <= (dataset['close'][i + rand]): labels.append(0.0) else: labels.append(0.0)
決して機能しない条件は赤でマークされている。
それが分からないんだ:
決して機能しない条件は赤でマークされている。
条件を変えてもアーティファクトが発生する。
木は互いに独立に構築され,そして,勾配誤差が減少するように,葉でカウントが行われる(量化されていない予測変数による列挙).
木の構築と木の分割のために予測変数を選択する とき,ランダムな係数が使用され,理論的には,完全性(Recall)を増加させ,過剰訓練を防止することが可能である.
それは開発者に尋ねるのがよいでしょう
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
新しい記事「取引システムの開発における勾配ブースティング(CatBoost)素朴なアプローチ」はパブリッシュされました:
PythonでCatBoost分類器を訓練してモデルをmql5にエクスポートし、モデルパラメータとカスタムストラテジーテスターを解析します。Python言語とMetaTrader5ライブラリは、データの準備とモデルの訓練に使用されます。
コンパイルされたボットは、標準のMetaTrader 5ストラテジーテスターでテストできます。適切な時間軸(モデルの訓練で使用された時間軸と一致する必要があります)を選択し、look_backとMA_periodを入力します。これらは、Pythonプログラムのパラメータと一致する必要があります。訓練期間中のモデルを確認しましょう(訓練+検証サブサンプル)。
モデルのパフォーマンス(訓練+検証サブサンプル)
カスタムテスターで得られた結果と比較すると、これらの結果は、スプレッドの偏差を除いて同じです。それでは、今年の初めから、完全に新しいデータを使用してモデルをテストしてみましょう。
新しいデータでのモデルのパフォーマンス
新しいデータでは、モデルのパフォーマンスが大幅に低下しました。このような悪い結果は、客観的な理由に関連しています。これについては、さらに詳しく説明します。
作者: Maxim Dmitrievsky