開始使用免費開始

擬合一個邏輯斯迴歸模型

當你有了隨機切分的訓練集與測試集之後,就可以用 glm() 函式在訓練集上擬合一個邏輯斯迴歸模型。glm()lm() 的進階版本,除了最基本的最小平方法線性迴歸之外,還能建立更多元的迴歸模型。

請務必在 glm() 中傳入引數 family = "binomial",以指定要進行的是邏輯斯(而非線性)迴歸。例如:

glm(Target ~ ., family = "binomial", dataset)

遇到像 glm.fit: algorithm did not convergeglm.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
編輯並執行程式碼