Всем привет! В прошлой статье мы разбирались, как устроены решающие деревья, и с нуля реализовали алгоритм построения, попутно оптимизируя и улучшая его. В этой статье мы реализуем алгоритм градиентного бустинга и в конце создадим свой собственный XGBoost. Повествование будет идти по той же схеме: пишем алгоритм, описываем его, в заверешение...
ラベル(教師、ターゲット変数)は定義上、ゴミではありえない。
サンシュ、恥をかかないように
自分の意見を言うために勉強を始めたわけでもないくせに。
もうひとつおかしな事実がある。どうやらこれは再トレーニングに過ぎないようだ、と思った私は、どの指標でクラス替えが起きたのかを見てみようと思った。最後の方で、これはまさに再トレーニングの良い例だと思ったのだ。
実際、このようになった。
テストサンプルについて
この最初の1000枚(モデルに追加する次のシーケンス)は、ほとんどが不安定であることがわかった!
驚いた。
試験サンプルについて
もうひとつ面白い事実がある。どうやらこれは再教育のようだと思い、クラス替えがどの指標で行われたかを見てみることにした。
実際にはこのようになった。
テスト・サンプル
ほとんど不安定なのは、(モデルに追加する次の順序の)最初の1000枚であることが判明した!
驚いた。
サンプルでは
他のすべての木では、教師は予測誤差、つまり(Y - Pred)です。そして、eta = 0.1...0.001であっても、これらの木の葉の影響は取るに足らないもので、ただ正しいだけです。あなたが示したもの(その無意味さ)。
GPT を教える )
それでは、エンベロープ・インディケータを 分析に加えましょう。エンベロープ・インディケータは、移動平均線の上下にある線を表します。通常、移動平均線から一定のパーセンテージの距離にあります。
先月(2023年11月)のエンベロープ:
RSI、ボリンジャーバンド、エンベロープを使った全体的なトレンド:
また、異なる指標からのシグナルは相反する可能性があり、一緒に分析することが重要です。
計算と分析を続けましょう。
先月(2023年11月)のエンベロープ:
RSI、ボリンジャーバンド、エンベロープを使った全体的なトレンド:
また、異なるインディケータからのシグナルは相反する可能性があり、それらを一緒に分析することが重要であることを考慮しましょう。
計算と分析を続けましょう。
ブーストを数えてるんでしょ?
CatBoostのことです!
そこでは最初の木だけが最初の教師のラベルによって訓練される。
他のすべての木では、教師は予測誤差、つまり(Y - Pred)です。
実際、これは理論が示唆していることだ。
はい、係数eta = 0.1...0.001でも同様です。
学習率 "係数は、少なくともCatBoostでは、すべての木に対して固定される。
これらの木の葉の影響は取るに足らない。それがあなたが示したもの(無意味さ)です。
実際にCatBoostで葉の係数がどのように配置されているか説明できますか?
よく理解できない点があります。
しかし、私は葉の "クラス "の変化を実証しました。つまり、実際に40%の葉が、新しいデータでは合計を間違った方向に引っ張っているように見えたのです。
実際に、CatBoostの葉っぱに係数がどのように配置されているのか説明してもらえますか?
CatBoostのコードを掘り起こして、正確な答えを教えましょうか?私は興味のあるものしか掘り起こさない。私はCatBoostを使っていません。
チュートリアルと簡単なブーストコードはこちらhttps://habr.com/ru/companies/vk/articles/438562/リーフ係数というのは初めて聞きましたが、何ですか?
別のサンプルテストでは7467枚、試験では7177枚と報告したが、一度に数えたわけではなく、まったく活性化していない葉も少なくない。
これは、テストサンプルの値によってクラスを変更した葉の分布です。
であり、これが試験である。
そしてこれがクラス分けで、3つあり、3つ目は"-1"-活性化なしです。
サンプル・トレイン
テスト用サンプル
試験用サンプル
一般的に、葉の重みはもはやクラス・ロジックに対応していないことがわかります。以下は試験サンプルのグラフですが、明確なベクトルがありません。
一般に、この手法は何でも近似しますが、予測変数の品質を保証しません。
一般的に、上のグラフ上の明確な「棒」は、場所と活性化の頻度によって非常に類似した葉であると仮定します。
わからないことを議論するのは難しい。ですから、私はあなたの成功を喜ぶことしかできません。もし私にそのような方法があれば、それを使うだろう :)
私の方法は、まだそのような定性的な結果は得られないが、十分に類似している。
なぜこのようなことが起こるのか考えたことはありますか?
ナイーブコード(catbust)にエクスポートしたモデルのテスト速度
ONNXにエクスポート
2つのバージョンのボットの内部はほとんど似ており、結果も同じである。
あなたのためにキャットバストのコードを調べて、正確な答えを出しましょうか?私は興味のあることしか調べない。catbustは使わない。
知っていると思ったけど、知らないんだね。
リーフ係数って初めて聞いたけど、何?
関数のY座標を形成するために合計される葉の値。
Xの値が0.5以上であれば、CatBoostのデフォルトクラスは "1 "になります。