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

 
Maxim Dmitrievsky #:

一枚の木が木よりもうまくいくことがあるように?

最低でもTC

新しいデータではそうだ。一貫性のあるパターンがヒットしただけで、木の葉の残りは風のノイズに過ぎない。このノイズは、ツリーにすべての質問に対する答えを与えること、つまりサンプルを完全に分類することを強要したために生じたものです。

 
夜は眠らなければならない。
 
Aleksey Vyazmikin #:

新しいデータではそうだ。安定したパターンがヒットしただけで、残りのツリーには風のノイズしか残らない。このノイズは、ツリーにすべての質問に対する答えを与えること、つまりサンプル全体を分類することを強要したために生じたものだ。

私は、葉の活性化レベルを変えることで、(葉の選択を)自動で行っています。古典的には、0.5が分類に使われます。0.5より高い確率を持つ葉はすべて活性化され、残りは沈黙する(これはツリーからの削除に等しい)。この方法は、このサイトやフォーラムの複数の記事で説明されています。

そして、レベルを0.9または0.95に設定すると、正しいクラスの例の95%を持つ超クリーンなリーフのみが動作します。回帰についても同様に、水準だけが0から1ではなく、 abs値です。上の写真は同じモデルですが、活性化レベルが異なります。最初のものは0.00020で、2番目のものは0.00040ptsです。2番目のものは、不採算の取引間隔をスキップし、最も収益性の高い取引間隔にのみ働き、1-2年の休止期間にもかかわらず利益を示した。

。結果は同様で、コードのif(leaf_value>0.00040){...}のコマンド1つだけで達成された。葉の選択、そしてクラスターの選択でするようないじりなしで。

しかし、あなたはすでにそのすべてを知っている...。

 
Aleksey Vyazmikin #:

新しいデータではそうだ。一貫したパターンがヒットしただけで、残りのツリーには風のノイズしか残らない。このノイズは、ツリーにすべての質問に対する答えを与える こと、つまりサンプル全体を分類することを強要 したために生じたものだ。

問題は、ツリーが利益最大化の条件ではなく、パッケージをプログラミングするのに便利な損失関数によって作られていることだ。

そのため、複雑でだましだましのパッケージを再構成してみるか、窮屈な自転車を作るか、という不愉快な選択をしなければならない。この両方の選択肢を「うまく」組み合わせることも可能である)。

IMHOは、もしツリーで既存のパッケージをいじることを選ぶなら、剪定(pruning)を使ってみるべきだ--たとえばフォワードで利益最大化という条件で。手作業でルールをいじらなくてすむかもしれない。

 
Maxim Dmitrievsky #:
私はあまり期待せず、時々覗いているだけだ。結局のところ、私はこのトピックの停滞と停滞を予測している。ブレークスルーは見えない。暗号と同じで、純粋に誇大広告だ。今は儲かって落ち着くだろう。
私も同感だ!

私の近所では、プロパガンダされたニューラルネットワークを賞賛しているが、簡単なタスクを設定すると、それに対応できない。
 
Stanislav Korotky #:

私が挙げた例は、カテゴリカルクロスエントロピーのセクションにあったものだけ です(そして、そこでの値の合計が各インスタンスで 1 であることに、おそらくあなたは注意を 払っていないでしょう)。Keras のように動作しないということは、MQL5 の CCE の実装か記述のどちら かが期待したものと一致していないということである。つまり、MQL5 における CCE の実装または記述が、期待したものと一致し ていないということです。ちなみに pytorch の CrossEntropyLoss には予備的な softmax が入っています。しかし、一般的に、MQL5の行列に関するドキュメントには、インターフェイスがpythonのものと似ているという考えが含まれているので、動作の一致が暗示されています。そして、もし一致がなければ、問題や当惑を引き起こします。

多くのクラスを持つことは、行列を扱うことを意味します(多くのサンプル/行があり、それぞれにクラスがある場合)。

わかりました。損失関数はベクトルと同じように行列でも機能します。ここでは、まだ終わっていません(軸パラメータを追加していません)。

つまり、あなたの例では一行ずつ解く必要があります。

ご清聴ありがとうございました。

 
Aleksey Vyazmikin #:

新しいデータではそうだ。一貫したパターンがヒットしただけで、残りのツリーには風のノイズしか残らない。このノイズは、ツリーにすべての質問に対する答えを与えること、つまりサンプル全体を分類することを強要したために生じたものだ。

そして、それを森から取り出せば、そこにあるすべての木のルールの平均が、木の本数分だけ存在することになる

 
Forester #:

私は、葉の活性化レベルを変更することで、これ(葉の選択)を自動的に行っている。古典的な分類では0.5が使われる。0.5より高い確率を持つすべての葉が活性化され、残りは沈黙する(これはツリーからそれらを削除することに等しい)。この方法は、このサイトやフォーラムの複数の記事で説明されています。

そして、レベルを0.9または0.95に設定すると、正しいクラスの例の95%を持つ超クリーンなリーフのみが動作します。回帰についても同様に、水準だけが0から1ではなく、 abs値です。上の写真は同じモデルですが、活性化レベルが異なります。最初のものは0.00020で、2番目のものは0.00040ptsです。2番目のものは、不採算の取引間隔をスキップし、最も収益性の高い取引間隔にのみ働き、1-2年の休止期間にもかかわらず利益を示した。発動は400000件中70000件で、つまり最高の葉の約17%が機能した。

結果は同様で、コードのif(leaf_value>0.00040){...}のたった一つのコマンドで達成された。葉の選択とクラスタの選択で行うすべてのいじりなしで。

しかし、あなたはすでにそのすべてを知っている....

フォレストを持っているのだから、モデルを構築した後に重み付けをし直すのでは?それとも活性化した葉の平均を取るだけですか?

それが問題なんだ。葉を選択するときは、歴史的な安定性と反応分布の均一性を考慮する。私は2次元の指標を作り、それらを総合的に評価します。従って、反応のない葉は私にとっては極めて珍しい。

葉を保存し、何千もの木を作り、それらだけで作業することは簡単にできるように思えます。

 
Aleksey Nikolayev #:

問題は、ツリーが利益最大化条件に従って構築されるのではなく、パッケージ・プログラミングに便利な損失関数に従って構築されることである。

つまり、複雑で厄介なパッケージの再構成を試みるか、窮屈な自転車を作るか、という不愉快な選択を迫られることになる。この2つの選択肢を "うまく "組み合わせることも可能である)

IMHOは、もし木の上で既存のパッケージをいじることを選ぶなら、剪定(pruning)を使ってみるべきだ-たとえば、フォワードの利益最大化という条件で。手作業でルールをいじらなくてすむかもしれない。

私がツリー構築に使ったバリアントは深いツリーを構築しない - そこではプルーニングは不要かもしれない。

そうですね、ほとんどすべてのいじりは自動化されていますし、そうでないものはむしろ私のRに対する無知に基づくものです。

私が言っているのはノイズのことで、ルート予測変数には10%以下の領域で特定のクラスへの素因の確率が含まれている可能性があり、残りの確率は均等に分布しており、残りの残渣は残りの葉をカットするために使用されます。

 
Maxim Dmitrievsky #:

そして、森から引き抜けば、すべての木の平均が、木の本数分、存在することになる

木は独立して作られ、葉の答えによって重み付けされる。私は森ではなく、1本の木で仕事をした。遺伝学上の森というのは聞いたことがない。

理由: