My guess is that catboost doesn't use the dummified variables, so the weight given to each (categorical) variable is more balanced compared to the other implementations, so the high-cardinality variables don't have more weight than the others.
https://arxiv.org/abs/1706.09516
CATBoostの数学的な一意性について、Yandexチームが発表したこの英語の論文をご覧ください。
私はそれを簡単に読み、そしていくつかのもののうち、私は、彼らが上で得られた残差を使用していないという事実だったすぐに理解できるTRAINを行うためTRAINをこれらの残差が学習の質の楽観バイアスを作成しているので、。(更新:このノベルティは、過剰適合と戦う方法をもたらします。これは、アルゴリズムが、カテゴリ変数を前処理するさまざまな方法とは別に、類似物と比較してよりうまく機能した理由の1つです)。
具体的かつ完全な回答をしてくれないことを残念に思います。
GBM、XGBoostの数学的な違い
まず、線形回帰モデル、分類器、および決定木に特に適用される勾配ブースティングマシンに関するFriedmanの論文を読むことをお勧めします。https://statweb.stanford.edu/~jhf/ftp/trebst.pdf
ここでは詳しく説明しません。これは、さまざまなタイプの損失(L)をカバーし、変数の重要性の概念に加えて、良い読み物です。もちろん、これは、損失の最小化を追求するパラメーターではなく、関数の空間での降下法(低レベルモデル)の実装のマイルストーンペーパーです。
こちらをご覧ください:https : //arxiv.org/pdf/1603.02754.pdf
Tianqi ChenらによるXGBoostモデルの数学的ビネットを見つけました。今では面白くなっています。古典的なフリードマンのGBMからのこのモデルの数学的偏差は次のとおりです。
- 正則化(ペナルティ化)パラメーター(およびブーストのパラメーターは関数、ツリー、または線形モデルであることを覚えています):L1およびL2が使用可能です。
- 2次導関数を使用してプロセスを高速化します(以前に使用した場合は修正してください)。
この点まで:CATBoostの変位値損失の実装を見つけるにはこちらをご覧ください。これは便利で、1次および2次の派生物を提供します:https : //github.com/catboost/catboost/blob/master/catboost/libs/algo/ error_functions.h
class TQuantileError : public IDerCalcer<TQuantileError, /*StoreExpApproxParam*/ false> { public:
const double QUANTILE_DER2 = 0.0;
double Alpha;
SAVELOAD(Alpha);
explicit TQuantileError(bool storeExpApprox)
: Alpha(0.5)
{
CB_ENSURE(storeExpApprox == StoreExpApprox, "Approx format does not match");
}
TQuantileError(double alpha, bool storeExpApprox)
: Alpha(alpha)
{
Y_ASSERT(Alpha > -1e-6 && Alpha < 1.0 + 1e-6);
CB_ENSURE(storeExpApprox == StoreExpApprox, "Approx format does not match");
}
double CalcDer(double approx, float target) const {
return (target - approx > 0) ? Alpha : -(1 - Alpha);
}
double CalcDer2(double = 0, float = 0) const {
return QUANTILE_DER2;
} };
XGBoostでこの便利なL1損失関数を見つけることはできませんが、Yandexの実装をXGB向けに作成されたカスタム損失関数のいくつかと比較することができます。
- さらに、CATBoostはカテゴリ機能で優れた動作をしますが、XGBoostは数値入力のみを受け入れます。
このリンクを検討してください:https : //tech.yandex.com/catboost/doc/dg/concepts/algorithm-main-stages_cat-to-numberic-docpage/#algorithm-main-stages_cat-to-numberic
従来のよく知られたワンホットアプローチの使用に加えて、カテゴリフィーチャをモデルトレーニングに提供するさまざまな方法を提供します。多くの情報を失うことなく入力空間の次元を小さくすることは、近似モデルの過剰適合が少ない理由の1つです。
出来ました。私はLightGBMを使用していないので、光を当てることはできません。