始める無料で始める

勾配ブースティング木:可視化

モデルの予測結果が得られたら、「精度はどうだろう?」と気になるところです。予測の精度を診断するためのグラフはいくつかありますが、ここでは代表的な2種類を見ていきましょう。まず、予測値と実際の値を比較する散布図を描きます。次に、残差が正規分布に近いかどうかを確認するため、残差の密度プロットを描きます。完成したグラフは以下のようなイメージになります。

予測値と実際の値の散布図、および残差の分布の密度プロットを横に並べたもの。

この演習では、モデルの予測結果をもとに、残差(予測値から実際の値を引いたもの)を自分で計算する方法を学びます。

この演習はコースの一部です

sparklyr を使った Spark 入門(R)

コースを見る

演習の手順

予測年と実際の年を含むローカルのtibble responses があらかじめ定義されています。

  • 予測値と実際の値の散布図を描きましょう。
    • ggplot() を呼び出します。
    • 第1引数にはデータセット responses を指定します。
    • 第2引数には、x軸とy軸の列名(それぞれ actualpredicted)をクォートなしで指定し、aes() で囲みます。
    • geom_point() を追加して点を描画します。
    • alpha = 0.1 を設定して、点を半透明にします。
    • geom_abline()intercept = 0slope = 1 を指定して基準線を追加します。
  • 残差のtibbleを作成し、residuals という名前を付けましょう。
    • responses に対して transmute() を呼び出します。
    • 新しい列の名前は residual とします。
    • residual は、予測値から実際の値を引いた値とします。
  • 残差の密度プロットを描きましょう。
    • 変換後のtibbleを ggplot() にパイプします。
    • ggplot() には、aes() で囲んだ residual を1つの aesthetic として指定します。
    • geom_density() を呼び出して確率密度曲線を追加します。
    • geom_vline()xintercept = 0 を指定して、ゼロを通る垂直な基準線を追加します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# responses has been pre-defined
responses

# Draw a scatterplot of predicted vs. actual
ggplot(___, aes(___, ___)) +
  # Add the points
  ___ +
  # Add a line at actual = predicted
  ___

residuals <- responses %>%
  # Transmute response data to residuals
  ___

# Draw a density plot of residuals
ggplot(___, aes(___)) +
    # Add a density curve
    ___ +
    # Add a vertical line through zero
    ___
コードを編集して実行