使用 KNN 補值
在前一個練習中,你用「中位數補值」來填補乳癌資料集中的遺漏值,但這並不是處理遺漏資料的唯一方法。
「k 近鄰(k-nearest neighbors,KNN)補值」是中位數補值的另一種做法。這是一種更進階的補值方法,會用與當前列相似的其他列之值來取代遺漏值。雖然在實務上實作起來比簡單的中位數補值複雜得多,但在 caret 中使用 train() 的 preProcess 參數就能很容易地嘗試。你只要設定 preProcess = "knnImpute",就能在模型擬合前更換所使用的補值方法。
本練習屬於課程
使用 R 的 caret 進行 Machine Learning
練習說明
breast_cancer_x 和 breast_cancer_y 已載入到你的工作環境。
- 使用
train()函式在乳癌資料集上擬合一個名為knn_model的glm模型。 - 使用 KNN 補值來處理遺漏值。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Apply KNN imputation: knn_model
knn_model <- train(
x = ___,
y = ___,
method = ___,
trControl = myControl,
preProcess = ___
)
# Print knn_model to console