開始使用免費開始

梯度提升樹:視覺化

現在你已經有模型的預測結果,可能會想「表現到底好不好?」。有許多圖可以用來檢查預測的準確度;在這裡你會看兩個常見的圖。首先,將預測值與實際值畫成散佈圖,能直觀比較。其次,殘差理論上應該接近常態分配,所以畫出殘差的密度圖也很有幫助。圖大致會像下面這樣。

Scatterplot of predicted response vs. actual response and density plot of distribution of residuals side by side.

在本練習中,你會自己計算殘差(預測值減去實際值),用來評估模型預測。

本練習屬於課程

使用 R 的 sparklyr:Spark 入門

檢視課程

練習說明

已經預先建立一個本機的 tibble responses,其中包含預測年份與實際年份。

  • 繪製預測值對實際值的散佈圖。
    • 呼叫 ggplot()
    • 第一個引數是資料集 responses
    • 第二個引數使用 aes() 包住 x 與 y 軸未加引號的欄位名稱(分別是 actualpredicted)。
    • 透過加入 geom_point() 加上點。
    • 將點設為半透明,設定 alpha = 0.1
    • 加上一條參考線,呼叫 geom_abline(),並設定 intercept = 0slope = 1
  • 建立一個名為 residuals 的殘差 tibble。
    • responses 呼叫 transmute()
    • 新欄位命名為 residual
    • residual 等於預測值減去實際值。
  • 繪製殘差的密度圖。
    • 將 transmute 後的 tibble 管線傳給 ggplot()
    • ggplot() 需要一個美術屬性,使用 aes() 包住 residual
    • 呼叫 geom_density() 加上機率密度曲線。
    • 呼叫 geom_vline() 並設定 xintercept = 0,加上一條穿過 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
    ___
編輯並執行程式碼