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

 
ミハイル・マルキュカイツ
冒頭の話はまったくその通りです。ようやく分別のある人たちが支店に現れた。しかし、パターン自体には予測的な役割があり、重要なのはパターンそのものではなく、それに対する市場の反応である。そして、この反応が訓練中のものと同じであれば、ネットは正しい結論を導き出す。つまり、こんな感じなんですね...。
どうすればいいのか?ナイーブベイズ分類器を使ってみるか、j-predictorを研究してみるか?
 
ユーリ・エフシエンコフ
どうすればいいのか?ナイーブベソビアンの分類器を引いてみたり、gPredictorsを研究してみたり?
xベソビアン・クラシファイアってなんだ?意味がわからない、今のレシェトフは、オン、オフ、ドウと、ひどくかっこいいものを作っている。そして、まだRをいじっているんですね。無駄なデータ操作をすること。あとアイリスの例ってなんだっけ?Predictorがどう把握するのか興味深い...。
 
ミハイル・マルキュカイツ
xベゾフ分類器って何?意味がわからない、今のレシェトフは、オン、オフ、ドウと、ひどくかっこいいものを作っている。そして、あなたはRをいじり続けている。無駄なデータ操作をすること。あとアイリスの例ってなんだっけ?Predictorがどう把握するのか興味深い...。
ええ、私はここで初めてRを知りました。そして、ベイズ分類器という言葉の中に、偶然にも文字が1つ欠けてしまった(たぶんフロイトが)。 そして、レシェトフのプログラムがクールであることに、私は異議を唱えない。アイリスはどうだろう。
 
ユーリ・エフシエンコフ
Rのことはここで初めて知りました。そして、ベイズ分類器という言葉をうっかり一文字間違えてしまった(多分フロイトが)。 そして、レシェトフのプログラムはかっこいい、異論はないだろう。アイリスはどうだろう。
IShaitan Reshetovのマシン :-)
 
ミハイル・マルキュカイツ
xベゾフ分類器って何?私は理解していない、今Reshetovは、オン、オフ、生地、ひどくクールなものを作りました。そして、あなたはRをいじり続けている。無駄なデータ操作をすること。あとアイリスの例ってなんだっけ?Predictorがどう把握するのか興味深い...。

昨日の取引結果を見ることはできますか?

 
ミハイル・マルキュカイツ
IShaitan Reshetovの車 :-)
私のタイプミスで始まる書き込みは削除しましょうか?
 
mytarmailS:

なぜ、これまでインジケーターが機能せず、これからも機能しないのか、 私の考えを述べると......。

何か試された方はいらっしゃいますか? 何か思い当たる節はありますか? それとも、何についてなのかすら、はっきりしなかったのでしょうか?
 
2 Dr.Trader.

こんにちは。

はい、委員会を立ち上げようとしたことがあります。

1000個の学習済みモデルを持っています。5年間の繰延サンプルがあります。委員会の組み立て方について、同僚に相談した。彼は、延期したサンプルの一部で委員会を組み立て、もう一部でテストすることを助言した。ここで私は挫折しました。委員会は第一部で再トレーニングを行い、第二部で梅を披露した。

それは、個々のモデルでも同じ話です。私は、遅延サンプリングでモデルを選ぶという失敗をしています。その後、モデルは簡単に流せるようになります。
 

この多くはあなた自身が知っているし、やっていることですが、同じように話しているのに違うやり方をしているいくつかの前提を除くために、もう少し詳しく書きます。

モデルのパラメータを推定するためには、注意深く研ぎ澄まされたフィットネス関数が必要です。もし、この関数が特定のモデル・パラメータと選択された予測因子を高いスコアで評価するならば、新しいデータでのテストでも良い結果が得られるはずです。
(高ければ高いほど良いというのは、どんな見積もりでも心がけます)。

例えば、トレーニング用のデータ、5年分があるとします。また、gbmのパラメータは、n.tree, interaction.depth, shrinkage, n.minobsinnode, distribution, bag.fractionです。

適性関数は1サイクルで少なくとも50回繰り返す必要があります。
1) データを50%/50%の2つに分割する。サンプルによるランダムサンプリングとシーケンシャルサンプリングの両方があるはずです(トレーニング用のピースは中間のどこかにあり、バリデーション用は生データの最初と最後にそれを囲むものです)。表の前半でトレーニング、後半でバリデーション、その逆の極端なバージョンも含めて。 トレーニングには、シーケンシャルにサンプリングされたサンプルとランダムなサンプルの両方が重要だと思います。図では、ランダム分割と逐次分割の例をより明確に見ることができます。緑色の線は学習用、黄色の線は検証用です。


2) トレーニングサンプルでモデルをトレーニングし(使用するモデルパラメータと予測変数はサイクルを通して同じで、あなたが推定しようとしているものです)、次にこのモデルでまさにこれらのデータを予測し、予測値を評価します - 精度、r^2、または何か他のものです。私は、例えば、回帰結果をクラスに丸め、推定にCohenのカッパ関数を使います。caretのものですが、分類精度や回帰精度よりも気に入っています。しかし、それは2つのクラスに対してのみ有効です。3クラスの場合は、それぞれのクラスの精度を考慮した上で、総合的に判断することが重要だと思います。
3) 学習したモデルを検証サンプルのデータ予測に適用し、同じ関数で予測値を推定する。
4) 両方の推定値(訓練値と検証値)は互いに近く、できるだけ高くすること。最終的なスコアはこのコードを使っています - (min(score1,score2)-(max(score1,score2)-min(score1,score2))- を最小値から差し引いたものをデルタとする。

各反復の終わりには、あるスコアを得ることになるが、データのランダムな分割のため、それは-1から1まで(あるいは、使用する関数によっては別の区間で)変化する可能性がある。その平均値を計算し、フィットネス関数の結果として返す。さらに、必要なデータセットが大きすぎる場合のペナルティーとして、使用した予測因子ごとに小さな数値(0.0001)をフィットネス値から差し引きます。

これを遺伝学と組み合わせて、予測因子とモデルパラメータをピックアップし、フィットネス値を最大化させるのです。

最終的には、利用可能なトレーニングデータに対して平均的に良好な予測結果をもたらす予測因子とモデルパラメータのセットを作成します。モデルはデータからパターンを発見し、そこから学習し、さらに新しい検証データでも同じパターンを発見することができる。
毎回、利用可能なデータの50%のみを用いてモデルを学習し、それに基づいてパラメータや予測因子を選択するため、モデルにとって重要な条件となる。
委員会用のモデルは、同じ条件下で学習させる必要があります - サンプリングまたは学習用にデータの50%を連続的に選択することで、学習させます。新しいモデルごとに、新しいサンプル(またはシーケンシャルセット)も必要です。

このような委員会がいつまで良い予測をするのかは不明だが、学習データが5年分であることを考えると、委員会の寿命は今後5年未満であることは明らかである。
そしてもう一つ重要な点は、もし委員会の設立に時間を費やした挙句、それが損をするような取引であれば、予測に使用するパッケージはFXには適さないということです。自由度が高すぎるのか、単純に適さないのか。別のパッケージにしたほうがいい。あるいは、学習データの割合を50%からさらに減らしてみるのもよいでしょう。

全てはこのフォーラムからのアドバイスと経験によるものです。

 
Dr.トレーダー

この多くはあなた自身が知っているし、やっていることですが、同じように話しているのに違うやり方をしているいくつかの前提を除くために、もう少し詳しく書きます。

モデルパラメータを推定するためには、注意深く研ぎ澄まされたフィットネス関数が必要である。もし、この関数が特定のモデル・パラメータと選択された予測因子を高いスコアで評価するならば、新しいデータでのテストでも良い結果が得られるはずです。
(高ければ高いほど良いというのは、どんな見積もりでも心がけます)。

例えば、トレーニング用のデータ、5年分があるとします。また、gbmのパラメータは、n.tree, interaction.depth, shrinkage, n.minobsinnode, distribution, bag.fractionです。

適性関数は1サイクルで少なくとも50回繰り返す必要があります。
1) データを50%/50%の2つに分割する。サンプルによるランダムサンプリングとシーケンシャルサンプリングの両方があるはずです(トレーニング用のピースは中間のどこかにあり、バリデーション用は生データの最初と最後にそれを囲むものです)。表の前半でトレーニング、後半でバリデーション、その逆の極端なバージョンも含めて。 トレーニングには、シーケンシャルにサンプリングされたサンプルとランダムなサンプルの両方が重要だと思います。図では、ランダム分割と逐次分割の例をより明確に見ることができます。緑色の線は学習用、黄色の線は検証用です。


2) トレーニングサンプルでモデルをトレーニングし(使用するモデルパラメータと予測変数はサイクルを通して同じで、あなたが推定しようとしているものです)、次にこのモデルでまさにこれらのデータを予測し、予測値を評価します - 精度、r^2、または何か他のものです。私は、例えば、回帰結果をクラスに丸め、推定にCohenのカッパ関数を使います。caretのものですが、分類精度や回帰精度よりも気に入っています。しかし、それは2つのクラスに対してのみ有効です。3クラスの場合は、それぞれのクラスの精度を考慮した上で、総合的に判断することが重要だと思います。
3) 学習したモデルを検証サンプルのデータ予測に適用し、同じ関数で予測値を推定する。
4) 両方の推定値(訓練値と検証値)は互いに近く、できるだけ高くすること。最終的なスコアはこのコードを使っています - (min(score1,score2)-(max(score1,score2)-min(score1,score2))- を最小値から差し引いたものをデルタとする。

各反復の終わりには、あるスコアを得ることになるが、データのランダムな分割のため、それは-1から1まで(あるいは、使用する関数によっては別の区間で)変化する可能性がある。その平均値を計算し、フィットネス関数の結果として返す。さらに、必要なデータセットが大きすぎる場合のペナルティーとして、使用した予測因子ごとに小さな数値(0.0001)をフィットネス値から差し引きます。

これを遺伝学と組み合わせて、予測因子とモデルパラメータをピックアップし、フィットネス値を最大化させるのです。

最終的には、利用可能なトレーニングデータに対して平均的に良好な予測結果をもたらす予測因子とモデルパラメータのセットを作成します。モデルはデータからパターンを発見し、そこから学習し、さらに新しい検証データでも同じパターンを発見することができる。
毎回、利用可能なデータの50%のみを用いてモデルを学習し、それに基づいてパラメータや予測因子を選択するため、モデルにとって重要な条件となる。
委員会用のモデルは、同じ条件下で学習させる必要があります - サンプリングまたは学習用にデータの50%を連続的に選択することで、学習させます。新しいモデルごとに、新しいサンプル(またはシーケンシャルセット)も必要です。

このような委員会がいつまで良い予測をするのかは不明だが、学習データが5年分であることを考えると、委員会の寿命は今後5年未満であることは明らかである。
もう一つ重要な点は、もし委員会の設立に時間を費やした後、それが利益を失うようであれば、予測に使用したパッケージはFXに適していないということです。自由度が高すぎるのか、単純に適さないのか。別のパッケージにしたほうがいい。あるいは、学習用のデータの割合を50%からさらに減らしてみるのもいいかもしれません。

全てはこのフォーラムからのアドバイスと経験によるものです。

素晴らしいまとめです。

おめでとうございます。

理由: