擬合一個邏輯斯迴歸模型
當你有了隨機切分的訓練集與測試集之後,就可以用 glm() 函式在訓練集上擬合一個邏輯斯迴歸模型。glm() 是 lm() 的進階版本,除了最基本的最小平方法線性迴歸之外,還能建立更多元的迴歸模型。
請務必在 glm() 中傳入引數 family = "binomial",以指定要進行的是邏輯斯(而非線性)迴歸。例如:
glm(Target ~ ., family = "binomial", dataset)
遇到像 glm.fit: algorithm did not converge 或 glm.fit: fitted probabilities numerically 0 or 1 occurred 的警告先別擔心。這些在較小的資料集上很常見,通常不會造成問題。它們通常代表你的資料集是「完全可分的」,這對模型背後的數學可能有影響,但 R 的 glm() 在這種情況下幾乎都能穩健地處理。
當你已經用 glm() 在資料集上擬合出模型後,可以用 predict() 搭配引數 type = "response",在 test 集上預測結果(例如 rock 或 mine):
predict(my_model, test, type = "response")
本練習屬於課程
使用 R 的 caret 進行 Machine Learning
練習說明
- 建立名為
model的邏輯斯迴歸,使用所有其他變數來預測Class。請使用Sonar的訓練集。 - 使用該模型在
test集上做預測。和之前一樣,把結果命名為p。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Fit glm model: model
# Predict on test: p