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

 

ブースティングの講義 - 同じ講師による新しい講義(pythonでcatbustがオプション)があったのですが、見つけられません。


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

CatbustはXGBoostのアイデアを拡張したもので、より多くのカスタマイズが可能です。主な利点と欠点は、固定次元の木を持つため、木の数が多くない場合は再トレーニングができないことです。

....

純粋に技術的な質問です。3つの予測変数 - x1, x2, x3があるとします。また、x1-x2, x1-x3, x2-x3も予測因子であり、条件を生成することが分かっている。私がツリーに精通している限りでは、これらの追加予測因子もモデルに投入されるはずです。

しかし、このケースは少し悪く、予測変数がa11*x1-b2*x2、a12*x1-a3*x2などのようになり、連立方程式のようなものが生成されるのです。もちろん係数は知らない。より複雑な予測変数の組み合わせも可能であるが、これらはあくまで例として挙げたものである。

NSはそういうもの(予測変数の線形結合や非線形なものまで)を扱えるので、高度なことをする必要はなく、悩まずx1、x2、x3だけ入力しています。

そんなとき、木はどうしたらいいのか。このテーマについて、かなり漠然としたものが見つからなかった。それとも、木が勝手にやってくれるのでしょうか?

 

CatBoost マスタークラス - Pythonで動作するようにビデオでコードをダウンロードするためのリンクがあります。


 
ユーリイ・アサウレンコ

純粋に技術的な質問です。3つの予測変数 - x1, x2, x3があるとします。また、x1-x2, x1-x3, x2-x3も予測因子であることが分かっています。私がツリーに精通している限りでは、これらの追加予測因子もモデルに投入されるはずです。

しかし、この場合は少し悪く、予測変数がa11*x1-b2*x2、a12*x1-a3*x2などになっています。もちろん、係数は知りません。より複雑な予測変数の組み合わせも可能であるが、これらはあくまで例として挙げたものである。

NSはそういうこと(予測変数の線形結合)に対処してくれるので、私は凝ることなく、x1、x2、x3だけを入力に送り込んでいます。

そんなとき、木はどうしたらいいのか。このテーマについて、かなり漠然としたものが見つからなかった。それとも、木が自分でできるのでしょうか?

理論的には、木は関数を記述することができますが、それは定数でイベントフィールドを格納するため、変更した場合、しかし、関数自体はあまり効果的ではありません係数(x)を持つセクションを取得することになります。これは私の考えで、もしかしたら間違っているかもしれません。このような問題には、NSを使い、関数の引数を変えても 解釈の論理が変わらないような関数の答えを木に用意するのがよいでしょう。したがって、ツリーには限られた引数のセットを与えることが望ましい。

このxを変えるだけで、モデルの再トレーニングが必要になります。

一般に、関数の引数が学習サンプルで表される既知の範囲にあれば、木は仕事をするはずである。しかし、これは回帰タスクであって、分類タスクではない。
 
アレクセイ・ヴャジミキン

理論的には、ツリーは関数を記述することができるが、それは係数(x)を持つプロットであることが判明し、変更しても関数自体は保存されるため、定数でイベントフィールドを記憶するため、もはや効率的でない。これは私の考えで、もしかしたら間違っているかもしれません。このような問題には、NSを使い、関数の引数を変えても 解釈の論理が変わらないような関数の答えを木に用意するのがよいでしょう。したがって、ツリーには限られた引数のセットを与えることが望ましい。

これらのxが変わるだけで、モデルの再トレーニングが必要になる。

私が働いているNSでは、それらは理解できる。木のいいところは、「もし...なら...」というロジックを生成してくれるところです。これは一般的に必要なことで、出力はイエスかノーかの判断であるべきです。しかし、このような理屈を並べ立てたところで、樹木には到底無理なようだ。

Сs11=PredTraid==[] and Stoch[0][i] > Stoch[1][i]+0.3 and Stoch[0][i-1] <= Stoch[1][i-1]
 
ユーリイ・アサウレンコ

私はNSと一緒に仕事をしているので、彼らを理解しています。木の魅力は、「もし...なら...」といったロジックを生成することです。これは一般的に必要なことで、出力はイエスかノーかの判断であるべきです。しかし、これだけ入力しても、もう木はその論理に対応できないようだ。

入力し、サンプルを作って確認すべきです。

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

サンプリングして確認する必要があります。

いや、不幸な例だ。これなら大丈夫)。

 
ユーリイ・アサウレンコ

いや、不幸な例だ。対応できる)。

もちろん対応できますが、NSはニューロンを使って数式を得るのに対して、ツリーは計算結果の解釈を得るだけです。関数で表現するのが難しいプリミティブなもの、例えば子供の絵から家を描くと、NSはそれを見つけるのに非常に時間がかかると思いますが、ツリーはこのオブジェクトの座標をすぐに決定してベクトルに変換するだけです。しかし、縮尺を変えると、ツリーはこの家を識別できなくなりますが、NSは識別できるはずです。

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

CatBoostマスタークラス - Pythonで動作するようにビデオでコードをダウンロードするためのリンクがあります。


良いですね、よくわかりました。

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

良い、よく説明された。

そうですね、特にpythonですぐに始める場合は、基本的な設定はしっかりされています。でも、これだけでは物足りない。

理由: