web-dev-qa-db-ja.com

次のxgboostモデルツリー図の「leaf」の値はどういう意味ですか?

enter image description here

上記(木の枝)の条件が存在することを考えると、条件付き確率であると推測しています。しかし、はっきりしていません。

使用されているデータやこの図を取得する方法について詳しく知りたい場合は、次のURLにアクセスしてください。 http://machinelearningmastery.com/visualize-gradient-boosting-decision-trees-xgboost-python/

11
dsl1990

属性leafは予測値です。つまり、ツリーモデルの評価がそのターミナルノード(別名リーフノード)で終了する場合、これが返される値です。

擬似コード(ツリーモデルの左端のブランチ)の場合:

if(f1 < 127.5){
  if(f7 < 28.5){
    if(f5 < 45.4){
      return 0.167528f;
    } else {
      return 0.05f;
    }
  }
}
0
user1808924

2つのクラス{0,1}を持つ分類ツリーの場合、リーフノードの値はクラス1の生のスコアを表します。ロジスティック関数を使用して確率スコアに変換できます。以下の計算では、例として左端の葉を使用しています。

1/(1+np.exp(-1*0.167528))=0.5417843204057448

これが意味するのは、データポイントがこのリーフに分散されることになった場合、このデータポイントがクラス1である確率は0.5417843204057448です。

9
Allen

あなたは正しいです。リーフノードに関連付けられたこれらの確率値は、ツリーの特定のブランチが与えられた場合にリーフノードに到達する条件付き確率を表しています。木の枝は、一連のルールとして提示できます。たとえば、彼の answer ;で言及されている@ user1808924ツリーモデルの左端のブランチを表す1つのルール。

つまり、ツリーは決定ルールに線形化できます。結果はリーフノードのコンテンツであり、パスに沿った条件はif句の接続詞を形成します。一般に、ルールの形式は次のとおりです。

if condition1 and condition2 and condition3 then outcome.

決定ルールは、右側のターゲット変数を使用して相関ルールを作成することで生成できます。また、 時間的 または 因果的 関係を表すこともできます。

1
Wasi Ahmad

それが回帰モデルである場合(目的はreg:squarederrorである可能性があります)、リーフ値は特定のデータポイントに対するそのツリーの予測です。リーフ値は、ターゲット変数に基づいて負にすることができます。そのデータポイントの最終的な予測は、そのポイントのすべてのツリーのリーフ値の合計になります。

それが分類モデルである場合(目的はbinary:logisticである可能性があります)、リーフ値は(生のスコアのように)正のクラスに属するデータポイントの確率を表します。最終的な確率予測は、すべてのツリーで葉の値(生のスコア)の合計を取得し、 シグモイド 関数を使用して0と1の間で変換することによって取得されます。リーフ値(生スコア)は負の値にすることができ、値0は実際には確率が1/2であることを表します。

パラメータと出力の詳細については、 https://xgboost.readthedocs.io/en/latest/parameter.html をご覧ください。

0
sameershah141