CatBoost アルゴリズムの仕組み

CatBoost は、[AutoML を使用したトレーニング (Train Using AutoML)] ツールで使用される教師付き機械学習手法で、分類と回帰の決定木を使用します。 その名前が示すとおり、CatBoost には主な 2 つの特徴があります。CatBoost はカテゴリ データを処理し (Cat)、勾配ブースティングを利用します (Boost)。 勾配ブースティングは、多数の決定木が繰り返し構築されるプロセスです。 後続の決定木ごとに、直前の決定木の結果が改善され、より良い結果が得られるようになります。 CatBoost は、実装を迅速化するために元の勾配ブースティング方法を改良したものです。

CatBoost では、一般的にカテゴリ文字列変数を数値や One-Hot エンコーディングなどに変換するためにデータを前処理する必要があるという、他の決定木ベース手法の制限が解消されています。 この方法では、カテゴリ説明変数と非カテゴリ説明変数の組み合わせを前処理せずに直接利用でき、 前処理はアルゴリズムの一部として行われます。 CatBoost は、順序付きエンコーディングと呼ばれる方法を使用して、カテゴリ フィーチャをエンコードします。 順序付きエンコーディングでは、データ ポイントの前にすべての行からの目標統計量を考慮して、カテゴリ フィーチャを置換する値を計算します。

CatBoost 独自のもう 1 つの特性は、対称決定木を使用することです。 これは、あらゆる深度レベルのすべての決定ノードで同じ分割条件が使用されることを意味します。

また、CatBoost は XGBoost などの他の方法よりも高速に処理でき、 交差検証、正規化、欠落した値のサポートなど、以前のアルゴリズムからの特定の機能を保持しています。 この方法は小規模データと大規模データの両方で正しく機能します。