カオスにはパターンがあるのか?それを探してみよう!特定のサンプルを例にした機械学習。

 

リンクから ファイルをダウンロードすることをお勧めします。アーカイブには3つのcsvファイルがあります:

  1. train.csv - 訓練に必要なサンプル。
  2. test.csv - 補助サンプル。trainとマージするなど、トレーニング中に使用することができます。
  3. exam.csv - 訓練に参加しないサンプル。

このサンプル自体は,5581列の予測変数,5583列のターゲット "Target_100",5581列,5582列,5584列,5585列を含み,補助的なものです.

  1. 5581 列 "Time" - シグナルの日付。
  2. 5582"Target_P" - 取引の方向 "+1" - 買い / "-1" - 売り
  3. 5584"Target_100_Buy" - 買いによる財務結果。
  4. 5585"Target_100_Sell"-売りによる財務結果。

目標は、exam.csv サンプルで 3000 ポイント以上を「獲得」するモデルを作成することです。

解答は、試験を覗くことなく、つまりこのサンプルのデータを使用することなく作成する必要があります。

興味を維持するためには、そのような結果を得ることができた方法について話すことが望ましい。

サンプルは、対象サンプルの変更を含め、どのように変換してもかまいませんが、試験サンプルに純粋にフィットするものでないように、変換の性質を説明する必要があります。

 
Aleksey Vyazmikin:

リンクから ファイルをダウンロードすることをお勧めします。アーカイブには3つのcsvファイルがあります:

  1. train.csv - 訓練に必要なサンプル。
  2. test.csv - 補助サンプル。trainとマージするなど、トレーニング中に使用することができます。
  3. exam.csv - 訓練に参加しないサンプル。

このサンプル自体は,5581列の予測変数,5583列のターゲット "Target_100",5581列,5582列,5584列,5585列を含み,補助的なものです.

  1. 5581 列 "Time" - シグナルの日付。
  2. 5582"Target_P" - 取引の方向 "+1" - 買い / "-1" - 売り
  3. 5584"Target_100_Buy" - 買いによる財務結果。
  4. 5585"Target_100_Sell"-売りによる財務結果。

目標は、exam.csv サンプルで 3000 ポイント以上を「獲得」するモデルを作成することです。

解答は、試験を覗くことなく、つまりこのサンプルのデータを使用することなく作成する必要があります。

興味を維持するためには、そのような結果を得ることができた方法について話すことが望ましい。

サンプルは、ターゲットの変更を含め、どのようにでも変換できますが、試験サンプルへの純粋なフィッティングにならないように、変換の本質を説明する必要があります。

もちろん
 
spiderman8811 #:
もちろんあるさ。

それを証明したいのか?

 

CatBoostで箱から出して、以下の設定で呼び出されたものを、シード・ブルート・フォースでトレーニングすると、このような確率分布になる。

FOR %%a IN (*.) DO (                                                                                                                                                                                                                                                                            
catboost-1.0.6.exe fit   --learn-set train.csv   --test-set test.csv     --column-description %%a        --has-header    --delimiter ;   --model-format CatboostBinary,CPP       --train-dir ..\Rezultat\RS_8\result_4_%%a       --depth 6       --iterations 1000       --nan-mode Forbidden    --learning-rate 0.03    --rsm 1         --fold-permutation-block 1      --boosting-type Plain   --l2-leaf-reg 6         --loss-function Logloss         --use-best-model        --eval-metric Logloss   --custom-metric Logloss         --od-type Iter  --od-wait 100   --random-seed 8         --random-strength 1     --auto-class-weights SqrtBalanced       --sampling-frequency PerTreeLevel       --border-count 32       --feature-border-type Median            --bootstrap-type Bayesian       --bagging-temperature 1         --leaf-estimation-method Newton         --leaf-estimation-iterations 10                
catboost-1.0.6.exe fit   --learn-set train.csv   --test-set test.csv     --column-description %%a        --has-header    --delimiter ;   --model-format CatboostBinary,CPP       --train-dir ..\Rezultat\RS_16\result_4_%%a      --depth 6       --iterations 1000       --nan-mode Forbidden    --learning-rate 0.03    --rsm 1         --fold-permutation-block 1      --boosting-type Plain   --l2-leaf-reg 6         --loss-function Logloss         --use-best-model        --eval-metric Logloss   --custom-metric Logloss         --od-type Iter  --od-wait 100   --random-seed 16        --random-strength 1     --auto-class-weights SqrtBalanced       --sampling-frequency PerTreeLevel       --border-count 32       --feature-border-type Median            --bootstrap-type Bayesian       --bagging-temperature 1         --leaf-estimation-method Newton         --leaf-estimation-iterations 10                
catboost-1.0.6.exe fit   --learn-set train.csv   --test-set test.csv     --column-description %%a        --has-header    --delimiter ;   --model-format CatboostBinary,CPP       --train-dir ..\Rezultat\RS_24\result_4_%%a      --depth 6       --iterations 1000       --nan-mode Forbidden    --learning-rate 0.03    --rsm 1         --fold-permutation-block 1      --boosting-type Plain   --l2-leaf-reg 6         --loss-function Logloss         --use-best-model        --eval-metric Logloss   --custom-metric Logloss         --od-type Iter  --od-wait 100   --random-seed 24        --random-strength 1     --auto-class-weights SqrtBalanced       --sampling-frequency PerTreeLevel       --border-count 32       --feature-border-type Median            --bootstrap-type Bayesian       --bagging-temperature 1         --leaf-estimation-method Newton         --leaf-estimation-iterations 10                
catboost-1.0.6.exe fit   --learn-set train.csv   --test-set test.csv     --column-description %%a        --has-header    --delimiter ;   --model-format CatboostBinary,CPP       --train-dir ..\Rezultat\RS_32\result_4_%%a      --depth 6       --iterations 1000       --nan-mode Forbidden    --learning-rate 0.03    --rsm 1         --fold-permutation-block 1      --boosting-type Plain   --l2-leaf-reg 6         --loss-function Logloss         --use-best-model        --eval-metric Logloss   --custom-metric Logloss         --od-type Iter  --od-wait 100   --random-seed 32        --random-strength 1     --auto-class-weights SqrtBalanced       --sampling-frequency PerTreeLevel       --border-count 32       --feature-border-type Median            --bootstrap-type Bayesian       --bagging-temperature 1         --leaf-estimation-method Newton         --leaf-estimation-iterations 10                
catboost-1.0.6.exe fit   --learn-set train.csv   --test-set test.csv     --column-description %%a        --has-header    --delimiter ;   --model-format CatboostBinary,CPP       --train-dir ..\Rezultat\RS_40\result_4_%%a      --depth 6       --iterations 1000       --nan-mode Forbidden    --learning-rate 0.03    --rsm 1         --fold-permutation-block 1      --boosting-type Plain   --l2-leaf-reg 6         --loss-function Logloss         --use-best-model        --eval-metric Logloss   --custom-metric Logloss         --od-type Iter  --od-wait 100   --random-seed 40        --random-strength 1     --auto-class-weights SqrtBalanced       --sampling-frequency PerTreeLevel       --border-count 32       --feature-border-type Median            --bootstrap-type Bayesian       --bagging-temperature 1         --leaf-estimation-method Newton         --leaf-estimation-iterations 10                
catboost-1.0.6.exe fit   --learn-set train.csv   --test-set test.csv     --column-description %%a        --has-header    --delimiter ;   --model-format CatboostBinary,CPP       --train-dir ..\Rezultat\RS_48\result_4_%%a      --depth 6       --iterations 1000       --nan-mode Forbidden    --learning-rate 0.03    --rsm 1         --fold-permutation-block 1      --boosting-type Plain   --l2-leaf-reg 6         --loss-function Logloss         --use-best-model        --eval-metric Logloss   --custom-metric Logloss         --od-type Iter  --od-wait 100   --random-seed 48        --random-strength 1     --auto-class-weights SqrtBalanced       --sampling-frequency PerTreeLevel       --border-count 32       --feature-border-type Median            --bootstrap-type Bayesian       --bagging-temperature 1         --leaf-estimation-method Newton         --leaf-estimation-iterations 10                
catboost-1.0.6.exe fit   --learn-set train.csv   --test-set test.csv     --column-description %%a        --has-header    --delimiter ;   --model-format CatboostBinary,CPP       --train-dir ..\Rezultat\RS_56\result_4_%%a      --depth 6       --iterations 1000       --nan-mode Forbidden    --learning-rate 0.03    --rsm 1         --fold-permutation-block 1      --boosting-type Plain   --l2-leaf-reg 6         --loss-function Logloss         --use-best-model        --eval-metric Logloss   --custom-metric Logloss         --od-type Iter  --od-wait 100   --random-seed 56        --random-strength 1     --auto-class-weights SqrtBalanced       --sampling-frequency PerTreeLevel       --border-count 32       --feature-border-type Median            --bootstrap-type Bayesian       --bagging-temperature 1         --leaf-estimation-method Newton         --leaf-estimation-iterations 10                
catboost-1.0.6.exe fit   --learn-set train.csv   --test-set test.csv     --column-description %%a        --has-header    --delimiter ;   --model-format CatboostBinary,CPP       --train-dir ..\Rezultat\RS_64\result_4_%%a      --depth 6       --iterations 1000       --nan-mode Forbidden    --learning-rate 0.03    --rsm 1         --fold-permutation-block 1      --boosting-type Plain   --l2-leaf-reg 6         --loss-function Logloss         --use-best-model        --eval-metric Logloss   --custom-metric Logloss         --od-type Iter  --od-wait 100   --random-seed 64        --random-strength 1     --auto-class-weights SqrtBalanced       --sampling-frequency PerTreeLevel       --border-count 32       --feature-border-type Median            --bootstrap-type Bayesian       --bagging-temperature 1         --leaf-estimation-method Newton         --leaf-estimation-iterations 10                
catboost-1.0.6.exe fit   --learn-set train.csv   --test-set test.csv     --column-description %%a        --has-header    --delimiter ;   --model-format CatboostBinary,CPP       --train-dir ..\Rezultat\RS_72\result_4_%%a      --depth 6       --iterations 1000       --nan-mode Forbidden    --learning-rate 0.03    --rsm 1         --fold-permutation-block 1      --boosting-type Plain   --l2-leaf-reg 6         --loss-function Logloss         --use-best-model        --eval-metric Logloss   --custom-metric Logloss         --od-type Iter  --od-wait 100   --random-seed 72        --random-strength 1     --auto-class-weights SqrtBalanced       --sampling-frequency PerTreeLevel       --border-count 32       --feature-border-type Median            --bootstrap-type Bayesian       --bagging-temperature 1         --leaf-estimation-method Newton         --leaf-estimation-iterations 10                
catboost-1.0.6.exe fit   --learn-set train.csv   --test-set test.csv     --column-description %%a        --has-header    --delimiter ;   --model-format CatboostBinary,CPP       --train-dir ..\Rezultat\RS_80\result_4_%%a      --depth 6       --iterations 1000       --nan-mode Forbidden    --learning-rate 0.03    --rsm 1         --fold-permutation-block 1      --boosting-type Plain   --l2-leaf-reg 6         --loss-function Logloss         --use-best-model        --eval-metric Logloss   --custom-metric Logloss         --od-type Iter  --od-wait 100   --random-seed 80        --random-strength 1     --auto-class-weights SqrtBalanced       --sampling-frequency PerTreeLevel       --border-count 32       --feature-border-type Median            --bootstrap-type Bayesian       --bagging-temperature 1         --leaf-estimation-method Newton         --leaf-estimation-iterations 10                
)                                                                                                                                                                                                                                                                               

1.列車のサンプリング

2.サンプル・テスト

3.試験サンプル

見てわかるように、モデルはほとんどすべてのものをゼロで分類することを好む。

 

最後の4列

0クラスでは、どうやら両方のケースで損失が発生するはずだが?つまり、どちらの場合も-0.0007。あるいは、買い|売りのベットがまだ行われている場合、私たちは正しい方向に利益を上げるのでしょうか?

 
1/1の方向は別のロジックで選択される、つまりMOは方向選択に関与しない?私たちは0/1を学ぶだけで、トレードする/しない(方向が厳密に選択されている場合)ができるのでしょうか?
 
elibrarius #:

最後の4列

0クラスでは、どうやら両方のケースで損失が発生するはずだが?つまり、両方のケースで-0.0007。あるいは、買い|売りのベットがまだ行われている場合、我々は正しい方向に利益を上げるのだろうか?

評点がゼロの場合、取引に参入しないでください。

私は3つのターゲットを使用していました - 最後の2つの列が1つではなく、フィンの結果を持つ理由ですが、CatBoostで私は2つのターゲットに変更する必要がありました。

elibrarius#:
1/-1 の方向は別のロジックで選択されます。あなたは0/1トレード/ノートレード(方向が厳密に選択される場合)を学ばなければならないだけですか?

はい、モデルはエントリーするかどうかを決めるだけです。しかし、この実験の枠組みでは、3つのターゲットを持つモデルを学習することは禁じられていません。この目的のためには、エントリーの方向を考慮してターゲットを変換すれば十分です。

 
Aleksey Vyazmikin #:

クラスがゼロの場合 - 取引を入力しない。

以前は3つのターゲットを使用していました。そのため、最後の2つの列には1つではなく財務結果が表示されていましたが、CatBoostでは2つのターゲットに変更する必要がありました。

はい、モデルはエントリーするかどうかを決定するだけです。しかし、この実験の枠組みの中では、3つのターゲットでモデルを教えることは禁止されていません。この目的のためには、エントリーの方向を考慮してターゲットを変換するだけで十分です。

つまり、0クラス(エントリーしない)で、トレードの正しい方向が選択された場合、利益は出るのでしょうか、それとも出ないのでしょうか?
 
Aleksey Vyazmikin #:

クラスがゼロの場合 - 取引を入力しない。

以前は3つのターゲットを使用していました。そのため、最後の2つの列には1つではなく財務結果が表示されていましたが、CatBoostでは2つのターゲットに変更する必要がありました。

はい、モデルはエントリーするかどうかを決定するだけです。しかし、この実験の枠組みの中では、3つのターゲットでモデルを教えることは禁止されていません。この目的のためには、エントリーの方向を考慮してターゲットを変換するだけで十分です。

キャットバスタにはマルチクラスがある。

 
elibrarius #:
つまり、0クラス(エントリーしない)で取引の正しい方向が選択された場合、利益は出るのでしょうか、それとも出ないのでしょうか?

利益は出ません(再評価を行えば、0クラスでもわずかながら利益が出ます)。

1 "を"-1 "と "1 "に分割することによってのみ、ターゲットを正しくやり直すことができます。

エリブラリウス#:

キャットバスタにはマルチクラスがある。

ありますが、MQL5では統合されていません。

どの言語にもモデルのアンロードは全くない。

おそらく、DLLライブラリを追加することは可能でしょうが、私自身はそれを理解することができません。

 
Aleksey Vyazmikin #:

利益はない(再評価を行えば、ゼロでもわずかな割合の利益はある)。

そうなると、決算欄にはほとんど意味がない。また、0クラスの予測誤差が発生する(0ではなく1を予測する)。そして、その誤差の値段は不明である。つまり、バランスラインは構築されない。特に0クラスの誤差が70%もあるのですから。
3000点のことは忘れてよい。もしそうなれば、信頼性がなくなる。

つまり、問題を解く意味がない...。