1. 学ぶ
  2. /
  3. コース
  4. /
  5. R で学ぶクレジットリスク・モデリング

Connected

演習

木のゲインを計算する

動画では、Gini指標を使って木の最適な分割を作る方法を見ました。ここでは、ワークスペースに読み込まれている木についてゲインを計算します。

このデータセットには500件のケースがあり、そのうち89件がデフォルトです。これにより、ルートノードのGiniは 0.292632 になりました。確認のために、あるノードのGiniは 2 × そのノードのデフォルト比率 × 非デフォルト比率 で与えられることを覚えておきましょう。復習として次のコードも参照してください。

gini_root <- 2 * (89 / 500) * (411 / 500)

これらのGiniを用いて、ルートノードに対する子リーフのゲインを計算します。作成したGiniを使ってノードのゲインを計算するイメージは、次のコードを参考にしてください。

Gain = gini_root - (prop(cases left leaf) * gini_left) - (prop(cases right leaf * gini_right))

左側ノードと右側ノードのGini、そしてルートノードに対する2つのリーフのゲインを計算してください。木を格納しているオブジェクトは small_tree です。

指示

100 XP
  • ルートノードのGiniの計算は与えられています。
  • 左リーフノードのGiniを計算します。
  • 右リーフノードのGiniを計算します。
  • ルートノードのGiniから、重み付きのリーフノードのGiniを差し引いてゲインを計算します。
  • この木の分割に関する情報は、木オブジェクト small_tree の $split から確認できます。ここでは gain ではなく improve 列を参照してください。improve はゲインにデータセットのケース数を掛けたもので得られる代替指標です。オブジェクト improve(コードは与えられます)の値が、small_tree$split にある値と一致していることを確認してください。