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

 

2018.01.31から現在まで獲得しているモデルが届いたと言ったことを思い出して、このモデルが2018.03.05から現在までのこの2週間、どのようなパフォーマンスを見せてくれたかを紹介します。テスターの結果

40点満点で訓練して、1ヶ月半ほどOOSしているおばさんには、かなりいい感じです。

そして、これが2018.01.31からの彼女のフルOOSです。

それでも合ってると思うのか?スクリーンショットはOOSの部分を示していることを念のためお伝えします

 

私は、すべてが無駄話であることを示す計算をします。

  • 予測変数が目的変数に影響を与えるという正当な理由なしに
  • オーバートレーニング(過適合)は、トレーニング時間外のTIMEのファイルに対してのみ判断されます。

初期データです。

54の予測因子とトレンド反転のターゲット変数を持つ2つの連続したタイムファイル:ショートアウトロング

計算はrattleで行われ、最初のファイルR Rat_DF1aはtrain, test, validationの3つのパートに分かれています。分割はサンプルによって行われます。つまり、元のファイルのバーをランダムに選択します。

RF計算結果:500本の木、1ノードあたり7予測子。

モデル構築に使用した観測値数:2491個

欠測値補正が有効である。


コール

randomForest(formula = trainY ~ ,

data = crs$dataset[crs$sample, c(crs$input, crs$target)],

ntree = 500, mtry = 7, importance = TRUE, replace = FALSE, na.action = randomForest::na.roughfix)


ランダムフォレストの種類:分類

木の本数:500本

各スプリットで試した変数の数:7個


OOBによる推定エラー率: 1.61%。

コンフュージョンマトリックス。

-1 0 1 class.error

-1 498 5 2 0.01386139

0 3 1067 17 0.01839926

1 1 12 886 0.01446051

素晴らしい結果ですね。聖杯か!?なお、AOBは学習で使用されなかったファイルの一部です。

ここで、学習誤差も見てみると、500本は必要なく、50本、100本で十分なことがわかります。



テストコーナーで確認しよう

Rat_DF1a [test] における Random Forest モデルの誤差行列 (カウント数)。


予想

実績 -1 0 1 誤差

-1 110 3 0 2.7

0 3 221 2 2.2

1 0 2 194 1.0


Rat_DF1a [test] における Random Forest モデルの誤差行列 (比率)。


予想

実績 -1 0 1 誤差

-1 20.6 0.6 0.0 2.7

0 0.6 41.3 0.4 2.2

1 0.0 0.4 36.3 1.0


総合誤差:1.8%、平均クラス誤差:1.96667%。


ガラガラタイムスタンプ:2018-03-14 10:57:23ユーザー


トレーニング結果を確認する。グレイル!


検証の部分でもう一度再確認してみましょう。

Rat_DF1a [validate]のRandom Forestモデルの誤差行列(カウント数)。


予想

実績 -1 0 1 誤差

-1 105 1 0 0.9

0 1 218 2 1.4

1 0 1 205 0.5


Rat_DF1a [validate]のRandom Forestモデルの誤差行列(比率)。


予想

実績 -1 0 1 誤差

-1 19.7 0.2 0.0 0.9

0 0.2 40.9 0.4 1.4

1 0.0 0.2 38.5 0.5


総合誤差:0.9%、平均クラス誤差:0.9333333%


ガラガラタイムスタンプ:2018-03-14 10:59:52ユーザー


グレイル!マイクロファイナンスの会社に駆け込んで、いくらでも生地を借りることができるのです


ただし、ファイルの分割はランダムサンプリングで行われ、時間を増やすことで厳密な取引を行うことになります。

この年表が保存されているファイルを確認してみましょう。Rat_DF1bです。

そして、その結果がこれです。

Rat_DF1b の Random Forest モデルの誤差行列 (カウント数)。


予想

実績 -1 0 1 誤差

-1 0 324 237 100.0

0 0 633 540 46.0

1 0 152 697 17.9


Rat_DF1bのRandom Forestモデルの誤差行列(比率)。


予想

実績 -1 0 1 誤差

-1 0 12.5 9.2 100.0

0 0 24.5 20.9 46.0

1 0 5.9 27.0 17.9


総合誤差:48.5%、平均クラス誤差: 54.63333%


ガラガラタイムスタンプ:2018-03-14 11:02:16ユーザー


CATASTROPHE!モデルが再トレーニングされました予測変数と目的変数の比較は単なるノイズであり、ノイズの上でこそ、Moはこのような驚くべき結果を生み出すことができる。


普通によくある、大学生レベルのスキームでモデルのフィッティングと検証を行ったものを紹介しました。主な欠点は、予測因子とターゲット変数の関係についての考察を欠いていることである。

通常のシーケンシャルファイルでのテスト結果を確認するために、テスターを走らせる必要があります。さて、そしてマイクロファイナンス会社へ。



 
サンサニッチ・フォメンコ

私は、すべてが無駄なおしゃべりであることを示す計算をします。

  • オーバートレーニング(過適合)は、トレーニング時間外のTIMEによってのみファイル上で判断されます。

不思議なもので、テストでは良い結果が出たのですね。私の実験やそこでは、もっとひどかった。ミキシングの前にRNGの初期化を変えることで、テストと検証で異なる結果が得られました。

その結果、テストと検証は全く必要なく、一方のサイトでトレーニングし、もう一方のサイトで評価することが必要であるという結論に至りました(別ファイルとして持っていますね)。そうすれば、混合の「幸運」というランダムな要素は排除されます。

 

みんな、聖杯の 準備はできたか?

 
サンサニッチ・フォメンコ

私は、すべてが無駄話であることを示す計算をします。

  • 予測変数が目的変数に影響を与えるという正当な理由なしに
  • オーバートレーニング(過適合)は、トレーニング時間外のTIME上のファイルについてのみ判断されます。

初期データです。

54の予測因子とトレンド反転のターゲット変数を持つ2つの連続したタイムファイル:ショートアウトロング

計算はrattleで行われ、最初のファイルR Rat_DF1aはtrain, test, validationの3つのパートに分かれています。分割はサンプルによって行われます。つまり、ソースファイルのバーをランダムに選択するのです。



ただし、ファイルの分割はバーのランダムな選択によって行われ、取引は時間の増加によって厳密に行われます。

この年表が保存されているファイル、Rat_DF1bを確認してみましょう。



総合誤差:48.5%、平均クラス誤差: 54.63333%


ガラガラタイムスタンプ:2018-03-14 11:02:16ユーザー


CATASTROPHE!モデルが再トレーニングされました予測変数とターゲット変数の関係は単なるノイズであり、ノイズの上にのみ、Moはこのような驚くべき結果を生み出すことができるのです。


普通によくある、大学生レベルのスキームでモデルのフィッティングと検証を行ったものを紹介しました。主な欠点は、予測因子とターゲット変数の関係についての考察を欠いていることである。

通常のシーケンシャルファイルでのテスト結果を確認するために、テスターを走らせる必要があります。じゃあ、マイクロファイナンスの会社に。



これは、サブセット(train/val/test)に分割する際の基本的なミスです。順番は以下のようにします。

  1. 時間順のデータセットをtrain/val/testに分割する。
  2. 学習時には,学習セットのみをシャッフルする(検証セットやテストセットをシャッフルすることはない).もちろん、分類の話です。
  3. 変換のすべてのパラメータと予測変数の変換は、トレーニングセットでのみ取得されます。val/testで使用しています。
  4. トレーニングセットのみでの予測値の評価、選択、作成。

グッドラック

 

モデルを使った予測変数の推定に関しては、RandomUniformForestが最も先進的なパッケージだと思います。この本では、さまざまな視点から予測因子の重要性を詳細に扱っています。一度見てみることをお勧めします。ある記事で、その詳細を紹介しました。

予測因子の モデル選択を拒否した。使用する機種の仕様に限定される。

グッドラック

 
ウラジミール・ペレヴェンコ
  1. 学習時には、学習セットのみを混ぜる(検証セットとテストセットを混ぜることはない)。もちろん、分類の話です。

Nikopenko S., Kadurin A., Arkhangelskaya E.より。"ディープラーニング" P.139.


検証用データを学習用データと同じ性質にするためには、両者を混ぜ合わせる必要があります。そうしないと、ランダムなトレンドの断片やフラットがそこに現れるかもしれません。その結果、モデルの一般化能力を評価するのではなく、ある期間の連続した歴史のある塊にモデルを当てはめることになります(結局のところ、そこで止まってしまうのです)。

しかし、上に書いたように、GSFの初期化をいろいろと試してみたところ、成功したときの有効ロットが違っていたので、有効ロットは必要ないのだろうという結論に達しました。それ以外にも、他の正則化の方法を用いることも可能である。しかし、これは5日間という少ないデータでの実験であり、例数が10倍になれば、混合がより均一になり、この区間のデータは均質(同じ性質)になる可能性があり、その場合は有効であると考えられる。

Update: もし、多くのデータがあり、いくつかの反転や両方向のトレンドが有効なプロットに含まれている場合、トレーニングセットとの混合は必要ないかもしれません。
 
Vladimir Perervenko:

モデルを使った予測変数の推定に関しては、RandomUniformForestというパッケージが最も進んでいると思います。この本では、さまざまな視点から予測因子の重要性を詳細に扱っています。一度見てみることをお勧めします。ある記事で、その詳細を紹介しました。

予測因子のモデル選択を拒否した。使用する機種の仕様に限定される。

グッドラック

そして、最先端は全く別の製品だと思います;-)・・・。その中で、少し違った形で実装されています。

2つのネットワーク、ここでサンプルは2つのサブサンプルtrainとtestに分けられ、ネットワークB(2番目の多項式)については、traynomialがtestとなり、testがtraynomialとなる。これは、半分を一方の多項式で、もう半分をもう一方の多項式で処理したテストサンプルだけをカウントしています。そして、クラスは均等に分けられて います。つまり、1はトレイとテストに等分され、ゼロも同様に等分される。残念ながら、そこに時間はない。ファイルは、任意のベクターの順序で設定することができます。これがオーバーランを下げるポイントなのかもしれませんね。


真実は、私はかなり理解していない、多分それは私のお気に入りのオプティマイザでトレースされている検証領域といえば?

そして、あなたの場合、テストセクションは、ネットワークをしばらく動作させたときのコントロールです...。概念が混乱している...。

 

いずれにせよ、テスト区間は訓練区間に一切影響を与えることができず、時間順に並べたとしても、まさにこの時間に依存しないような分類作業には、できるだけランダムに形成するべきだと考えています。なぜ?なぜなら、すべてのデータをミックスすることで、この集合から本当の可能性を引き出そうとしているのであって、秩序という形で幸運な偶然が重なっているわけではないからです。だから、データをシャッフルすると、本当に何ができるのかが見えてくる...。こんな感じで...。

複数の最適化で、結果は10-20%以内にジャンプする必要がありますちょうどデータの順序のために同じです、一回よく順序付け、他の時間は少し悪い、などなど...。IMHO!!!

 
エリブラリウス

Nikopenko S., Kadurin A., Arkhangelskaya E.より。"ディープラーニング" P.139.


検証用データを学習用データと同じ性質にするためには、-シャッフルする必要があります。そうでなければ、トレンドやフラットのランダムピースがあるかもしれません。その結果、モデルの一般化能力を評価するのではなく、ある区間の連続した歴史のある部分にモデルを当てはめることになります(結局のところ、そこで止まってしまうのですが)。

しかし、上に書いたように、GSFの初期化をいろいろと試してみたところ、成功したときの有効ロットが違っていたので、有効ロットは必要ないのだろうという結論に達しました。それ以外にも、他の正則化の方法を用いることも可能である。しかし、この実験は少ないデータ(5日間)であり、もし例数が10倍になれば、混合がより均一になり、このプロット上のデータもより均質(同じ性質)になるのかもしれませんね。

Update: データが多く、有効なプロットがいくつかのフルートと両方向のトレンドを含む場合、この場合、トレーニングセットとの混合は必要ないかもしれません。

若者の矛盾の精神は不屈です :)

時系列での分類の話でした。例えば、M15の場合、2週間で約1000本のトレーニングを行います。検証のための次の週は500本です。学習時には、学習セットを混ぜますが、検証セットは混ぜません。

分離の前に集合全体を混合することが必要なのは、層別集合とクロスバリデーションの2つの場合である。この場合も、両方のセットに同じ例が含まれないように、サンプリングは置換なしで行う必要があります。

例数に制限がないことと、時系列であることを考えると、混合する前に分割した方が良い。IMHO

理由: