開始使用免費開始

套用中位數插補

在本章中,你會使用威斯康辛乳癌資料集的一個版本。這個資料集是典型的二元分類問題:50% 的樣本為良性,50% 為惡性,而你的任務是分辨哪些是良性、哪些是惡性。

這個資料集的特點是許多預測變數含有遺漏值,而且大多數資料列至少有一個遺漏值。這對建模造成挑戰,因為多數機器學習演算法無法直接處理遺漏值。舉例來說,你的第一直覺可能是對這份資料擬合羅吉斯迴歸模型,但在此之前,你需要先決定如何處理 NA

所幸,carettrain() 函式提供名為 preProcess 的引數,讓你可以指定使用中位數插補來填補遺漏值。在前面章節中,你曾用 train() 函式並以 y ~ . 這類公式來建立模型。另一種方式是對 train() 指定 xy 引數,其中 x 是一個物件,資料列為樣本、資料欄為特徵;y 是包含結果的數值或因子向量。換句話說,x 是一個矩陣或資料框,內容等同於你在呼叫 lm() 時會放在 data 引數的整個資料集,但不含應變數那一欄;y 則是只包含應變數那一欄的向量。

在這個練習中,傳給 train() 的引數 x 已載入為 breast_cancer_xy 則為 breast_cancer_y

本練習屬於課程

使用 R 的 caret 進行 Machine Learning

檢視課程

練習說明

  • 使用 train() 函式在乳癌資料集上擬合名為 median_modelglm 模型。使用 preProcess = "medianImpute" 來處理遺漏值。
  • 在主控台印出 median_model

動手互動練習

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

# Apply median imputation: median_model
median_model <- train(
  x = ___, 
  y = ___,
  method = ___,
  trControl = myControl,
  preProcess = ___
)

# Print median_model to console
編輯並執行程式碼