開始使用免費開始

建立二元預測

在上一個練習中,你使用 glm() 建立了捐款者行為的羅吉斯迴歸模型。和 R 中許多機器學習方法一樣,你可以對模型物件使用 predict() 來預測未來行為。預設情況下,predict() 輸出的是「對數勝算」(log odds),除非你指定 type = "response"。這會將對數勝算轉換為「機率」。

由於羅吉斯迴歸模型估計的是結果發生的「機率」,因此由你來決定機率達到哪個門檻時要採取行動。你需要在過於謹慎與過於積極之間取得平衡。例如,如果你只向機率達到 99% 或更高的人募款,可能會錯過許多雖然估計機率較低、但仍會選擇捐款的人。當結果極度不平衡時,這種權衡尤其重要;就像此資料集中,實際捐款相對少見。

donors 資料集與 donation_model 模型已可供你使用。

本練習屬於課程

R 監督式學習:分類

檢視課程

練習說明

  • 使用 predict() 來估計每個人的捐款機率。使用 type 引數以取得機率。將預測值指定到名為 donation_prob 的新欄位。
  • donors 資料框中對應的欄位傳給 mean(),找出一般人實際會捐款的平均機率。
  • 使用 ifelse():若預測的捐款機率高於平均,就預測會捐款。將結果指定到名為 donation_pred 的新欄位。
  • 使用 mean() 計算模型的準確率。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# Estimate the donation probability
donors$donation_prob <- predict(___, type = "___")

# Find the donation probability of the average prospect
mean(___)

# Predict a donation if probability of donation is greater than average (0.0504)
donors$donation_pred <- ifelse(___ > 0.0504, ___, ___)

# Calculate the model's accuracy
mean(___ == ___)
編輯並執行程式碼