建立二元預測
在上一個練習中,你使用 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(___ == ___)