ディシジョン ツリー

デシジョン フォレスト モデルはディシジョン ツリーで構成されています。デシジョン フォレストの学習アルゴリズム(ランダム フォレストなど)は、少なくとも部分的にはディシジョン ツリーの学習に依存しています。

このセクションでは、小さなサンプル データセットについて学習し、単一のディシジョン ツリーがどのようにトレーニングされるかを学びます。次のセクションでは、ディシジョン ツリーを組み合わせてディシジョン フォレストをトレーニングする方法について説明します。

YDF コード

YDF で、CART 学習者を使用して個々のディシジョン ツリー モデルをトレーニングします。

# https://ydf.readthedocs.io/en/latest/py_api/CartLearner
import ydf
model = ydf.CartLearner(label="my_label").train(dataset)

モデル

ディシジョン ツリーは、ツリー型に階層的に編成された「質問」の集まりで構成されるモデルです。通常、この質問は条件、スプリット、テストと呼ばれます。このクラスでは「状態」という用語を使用します非リーフノードには条件が含まれ、リーフノードには予測が含まれます。

植物は通常、根が下の方で成長します。ただし、ディシジョン ツリーは通常、頂点の「根」(最初のノード)で表されます。

2 つの条件と 3 つのリーフを含むディシジョン ツリー。最初の条件(根)は num_legs >= 3、2 番目の条件は num_eyes >= 3 です。3 枚の葉はペンギン、クモ、
イヌです

図 1. 単純な分類ディシジョン ツリー。緑色の凡例はディシジョン ツリーに含まれていません。

 

ディシジョン ツリー モデルの推論は、条件に従ってルート(上)からリーフノードの 1 つ(下)にサンプルをルーティングすることで計算されます。到達したリーフの値がディシジョン ツリーの予測です。訪問されたノードの集合を推論パスといいます。たとえば、次の特徴値について考えてみましょう。

num_legs num_eyes
4 2

予測は「」となります。推論パスは次のようになります。

  1. num_legs ≥ 3 → はい
  2. num_eyes ≥ 3 → いいえ

図 1 と同じ図ですが、この図は 2 つの条件にまたがる推論パスを示しており、最終的に犬のリーフで終わっています。

図 2. *{num_legs : 4, num_eyes : 2}* の例で、リーフ *犬* で終わる推論パス。

 

前の例では、ディシジョン ツリーのリーフに分類予測が含まれています。つまり、各リーフには考えられる種のセットのうちの 1 つの動物種が含まれています。

同様に、ディシジョン ツリーでは、回帰予測(数値)でリーフにラベルを付けることで、数値を予測できます。たとえば、次のディシジョン ツリーは、動物の可愛性スコアを 0 ~ 10 の数値で予測します。

各リーフが異なる浮動小数点数を含むディシジョン ツリー。

図 3. 数値予測を行うディシジョン ツリー。