使用 R 的 caret 進行 Machine Learning
Zach Mayer
Data Scientist at DataRobot and co-author of caret
?preProcess# 產生含遺漏值的資料
data(mtcars)
set.seed(42)
mtcars[sample(1:nrow(mtcars), 10), "hp"] <- NA
Y <- mtcars$mpg
X <- mtcars[,2:4] # <- 隨機遺漏
# 使用線性模型「配方」
set.seed(42)
model <- train(
X, Y, method = "glm",
preProcess = c("center", "scale", "medianImpute")
)
print(min(model$results$RMSE))
3.612713
# 建模前先做 PCA
set.seed(42)
model <- train(
X, Y, method = "glm",
preProcess = c("center", "scale", "medianImpute", "pca")
)
min(model$results$RMSE)
3.402557
# Spatial sign 轉換
set.seed(42)
model <- train(
X, Y, method = "glm",
preProcess = c("center", "scale", "medianImpute", "spatialSign")
)
min(model$results$RMSE)
4.284904
使用 R 的 caret 進行 Machine Learning