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

 
アレクセイ・ヴャジミキン

面白い言葉ですね。しかし、後続のツリーは既存のツリー構成による誤差を減らすために作られるのですが、ではなぜサンプリングを使わないのかが理解できません。もっと詳しく教えてください。私が深いことを理解していないのかもしれませんが...。

ひょっとして数>1のブーストツリーの葉を生データを与えて調べているなんてことはないですよね?もしそうなら、結果はランダムになるはずです。なぜなら、これらの木は入力データからではなく、エラーから学習したのですから。つまり、木とその葉が解決するために訓練されていない問題を解決しているのです。
もしそれらの木がランダムフォレストのものであれば、すべての木が生データで学習されているので、それらを使うことができます(ただし、1つの木は誤差の点でフォレストより強く劣るので、意味はありません)。ブースティングでは、他のすべてのツリーを無視して1つのツリーを考えることは意味がないので、ノーです。

 
エリブラリウス

ブーストツリーに入力データを与えて、数>1の葉がある可能性はありますか?なぜなら、これらの木は入力データに対してではなく、エラーに対して学習されたものだからです。つまり、木とその葉が解決するために訓練されていない問題を解決しているのです。
もしそれらの木がランダムフォレストのものであれば、それらはすべて生のデータで学習されているので、それらを使うことができます(ただし、1本の木は誤差の点でフォレストより強く劣るので、意味はありません)。ブーストでは、1本のツリーで他のツリーをすべて考慮することはできないので、ノーです。

つまりこれは、ブースティングの定義が、連続する各アルゴリズムが前のものからの構成の欠点を補おうとする逐次改良法であることから導かれる。
 
elibrarius:

そう、誤差を少なくするために、誤差をターゲットにして、それを引き算するのです。

ブーストのアルゴリズムはこんな感じです。自分でも勉強しているところです。https://neurohive.io/ru/osnovy-data-science/gradientyj-busting/


これは古典的なブーストだと理解しています。もしかしたら、catbustが独自に発明したものかもしれない...。

記事を拝見しました。確かに、ツリーを構築してサンプルに適用し、実際のターゲットと予測されたターゲットのデルタを計算し、次のツリーを構築して誤差を減らす、つまりデルタを予測するような気がします。しかし、実際には同じサンプルで同じように新しい木が作られ、新しい新しいつながりが形成される。つまり、実際にはターゲットだけが変化するのである。しかし、このようなアプローチは、ランダムフォレストでは 明らかにならない新しいつながり(葉)を見つける機会を与え、これらのつながりは最初の木に依存し、それはサンプルに依存します(これはニュースではありません)、CatBoostのその後の木は、設定した反復回数、または停止の符号のどちらかに従って構築され、この符号はテストサンプルで定義されます。符号は、モデル品質の推定される任意の指標(さまざまな指標のリストがある)。2つのサンプルで一度に改善したいので、トレーニングサンプルだけだと明らかにオーバートレーニングになるので、インジケーターでのトレーニングの停止を選択しています。学習サンプルサイズさえ一定であれば、テストサンプルサイズが学習に影響を与えるという、サンプルサイズが学習に直接影響を与えるという疑問があるのは、このためです。


elibrarius:

ブーストツリーに生データを与えて、数>1のツリーをブーストしたときの葉っぱは、もしかしてありますか?もしそうなら、それらの木は生データからではなく、エラーから学習しているので、結果はランダムになるはずです。つまり、木とその葉が解決するために訓練されていない問題を解決しているのです。
もしそれらの木がランダムフォレストのものであれば、すべての木が生データで学習されているので、それらを使うことができます(ただし、1つの木は誤差の点でフォレストより強く劣るので、意味はありません)。ブーストでは、1本のツリーで他のすべてのツリーを考慮することは意味がないので、ノーです。

いい指摘ですね、ちょうど葉っぱ(catbustでは二分木に近い)を研究するためのプラットフォームを用意しているところです。非常に多くの木がある場合、結果は無視できるかもしれませんが、理論的にもきちんとしたリンクが存在する可能性があります。最初の木の葉に大きな誤りがあり、4番目の木の葉でこの誤りを修正した場合、実際には新しいリンクは論理的に意味をなし、それ自体がサンプルを正しく分類することになるでしょう。技術的には、catbustは各二分木(葉)の応答結果を配列として持ち、それらの応答を合計するのですが、サンプル行ごとに、ごく一部の二分木(葉)しか答えを出さないという仕掛けになっています。したがって、理論的には、初期誤差のある木や適合度の小さい木(再トレーニング時)であるため、予測能力が非常に低い二分木(葉)を取り除き(ゼロにし)、有意な値のある葉だけを残すことが可能である。もう1つの方向は,予測変数の重要度を推定するためにこれらの接続を使用することである.最終的な配列に大きな重みがある場合,これらの接続,したがって予測変数は重要であり,その他のものは重要度が低いとして閾値で除外される.このようなふるいにかけると,まずより有意な予測変数でモデルを学習し,次により有意でない予測変数で学習することができる.これは,有意でない予測変数はより安定した関係の構築を妨げず,可能な場合にのみそれを補足するので,学習結果を改善するはずである.

要するに、ゴミのような二分木はフィッティングには実に興味がなく、共通の高いウェイトを持つミクロ分析(二分木(葉)2-3本)や単一の二分木も重要で、分類に別途使用することができるのです。

残念ながら、個々の二分木(普通の葉っぱの意味での)を引っ張ってきて、普通に読めるルールに変換する仕組みがないので、すべては理論上だけですが、協力は大歓迎です。

 
アレクセイ・ヴャジミキン

残念ながら今のところ、個々の二分木(通常の葉の理解における)を引っ張ってきて、普通に読めるルールに変換する仕組みは持っていないので、まだすべてが理論上のものでしかありませんが、協力は大歓迎です。

また、mt5ではどのようにモデルを引っ張ってくるのでしょうか?トレーディングやテスターで使うには良いアイデアだと思います。Pythonを使ってmt5と接続するか、katbustのバイナリを使うか、長い間取り組んできましたが、全く分かりません。

 
マキシム・ドミトリエフスキー

mt5ではどのようにモデルを描画するのですか?そこで何を取引するか、テスターで走らせるか。Pythonでmt5に繋ぐか、katbustのバイナリを使うか、まだ決めていません。

C++用のモデルをMQL5に変換してみます。実際、そこでは配列しか取られていませんし、MQLにはこのモデルのインタプリタがあります(私のコードではありません)。こうしてExpert Advisorにモデルが読み込まれ、今ではファイルを通して数百のモデルを読み込み、オプティマイザーを通した実行も含めてターミナルで見ることができるようになったのです。

 
アレクセイ・ヴャジミキン

C++用のモデルをMQL5に変換しました。実際、そこでは配列しか取られておらず、このモデルのMQLでのインタプリタが存在します(コードは私のものではありません)。それに伴い、Expert Advisorにモデルが読み込まれ、今ではファイルを通して数百のモデルを読み込み、オプティマイザーを通すなど、ターミナルで見ることができるようになりました。

さて、ここでは、いくつかのフレームワークとアイデア(アイデアはスペースに劣らないはずです)と、どのようなヘルプが必要なのか、またはそこにあるものを生協で書くための記事です。

撤退する人、一般化する人など、コミュニティが分かれているのは理解しています。例えば、私はこのアプローチに賛成ではありませんし、その考えを完全に理解していないだけかもしれません。
 
マキシム・ドミトリエフスキー

さて、ここで、いくつかのフレームワークとアイデア(アイデアは宇宙的であるに越したことはない)とどのような助けが必要であるか、またはそこにあるものをコープして書くための記事です。

記事に対して深い理論的な知識を持っているわけではなく、既成の現象に対して違う概念を作り、解釈を変えていく、それは学術的なアプローチではありません。

このモデルのインタプリタがあれば面白いと思うのですが、私が書いたコードではないので公開できません。

また、理論的に残っているもの、(クローズドクラスのため)応用できないコードでは、面白くないと思うのですが、いかがでしょうか。そして、モデルの作成と選択のプロセス、すべてが解決されたと思うし、興味もない。

 
マキシム・ドミトリエフスキー

撤退する人、一般化する人など、コミュニティが分かれているのは理解しています。私は、この考え方に賛成できませんが、もしかしたら、私がこの考えを理解しきれていないだけかもしれません。

そして、コミュニティのことがわからない、つまり、他の分野の人がどうやっているのかわからない?

データを引っ張ってくるというのは、MOの力を借りて人間の行動モデル(あるいはアルゴリズム)を探しているわけですから、そういう行動パターンはたくさんあるかもしれないし、それらは独立しているかもしれない、だから、全部まとめて一般化するのは無理だから、できるだけたくさん引っ張ってくるのが理にかなっている、ということですね。そして、ある人にとっては、市場は全体的なものであり、集団的な心の働きの結果であり、ルールのない投票機関のようなものです。 どうやら、この状況に対して、彼らは、市場の行動を 別の有機体として記述する一つのモデルを探しているようです。

 
アレクセイ・ヴャジミキン

もし、最初の木の葉に大きな誤りがあり、4番目の木がその誤りを訂正したとすれば、事実上、新しいリンクは論理的な意味を持ち、それ自体が 試料を正しく分類することになるのです。

4本目の木は、1本目の木の葉で間違いを訂正しているのですが、どうなんでしょう。ペアで使ってこそ意味があると思うのです。でも、間違っているかもしれない。そういう実験をしたことがないので。

 
エリブラリウス

4本目の木は、1本目の木の誤りを葉っぱで修正しているのですが、どうなんでしょう?ペアで使ってこそ意味があると思うんです。でも、間違っているかもしれない。そのような実験をしたことがないため。

非常に原始的な言い方をすれば、1番目の木はサンプルに対して何の反応もなく、0を返しますが、4番目の木はこの反応があって「確率」0.6と考えます。技術的には、最初の木の誤りを修正したことになりますが、実際には、以前はまったく存在しなかったつながりを明らかにしたことになります。すべてのツリーが全サンプルを共有していると仮定しても(そうではないらしい)、ゼロではなく0.1とし、後続のツリーは0.5、ここでも同じ効果があるのです。そこでの確率は正確には確率ではなく、活性化した二分木のすべての値を足し合わせて初めて、配列の値が確率に近いものに変換されるのである。

理由: