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

この演習では、モデルの予測結果をもとに、残差(予測値から実際の値を引いたもの)を自分で計算する方法を学びます。
この演習はコースの一部です
sparklyr を使った Spark 入門(R)
演習の手順
予測年と実際の年を含むローカルのtibble responses があらかじめ定義されています。
- 予測値と実際の値の散布図を描きましょう。
ggplot()を呼び出します。- 第1引数にはデータセット
responsesを指定します。 - 第2引数には、x軸とy軸の列名(それぞれ
actualとpredicted)をクォートなしで指定し、aes()で囲みます。 geom_point()を追加して点を描画します。alpha = 0.1を設定して、点を半透明にします。geom_abline()にintercept = 0、slope = 1を指定して基準線を追加します。
- 残差のtibbleを作成し、
residualsという名前を付けましょう。responsesに対してtransmute()を呼び出します。- 新しい列の名前は
residualとします。 residualは、予測値から実際の値を引いた値とします。
- 残差の密度プロットを描きましょう。
- 変換後のtibbleを
ggplot()にパイプします。 ggplot()には、aes()で囲んだresidualを1つの aesthetic として指定します。geom_density()を呼び出して確率密度曲線を追加します。geom_vline()にxintercept = 0を指定して、ゼロを通る垂直な基準線を追加します。
- 変換後のtibbleを
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# 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
___