仅预处理(中心和比例)特定变量(数字变量)
preprocessing (center and scale) only specific variables (numeric variables)
我有一个由数值和非数值变量组成的数据框。我正在尝试根据所有其他变量拟合预测我的变量“风险”的逻辑回归模型,使用 6 折交叉验证优化 AUC。
但是,我想将所有数值解释变量居中并缩放。我的代码没有引发任何错误或警告,但不知何故我无法弄清楚如何通过 preProcess
(或以其他方式)告诉 train()
只是居中和缩放我的数值变量。
代码如下:
test <- train(risk ~ .,
method = "glm",
data = df,
family = binomial(link = "logit"),
preProcess = c("center", "scale"),
trControl = trainControl(method = "cv",
number = 6,
classProbs = TRUE,
summaryFunction = prSummary),
metric = "AUC")
您可以尝试先预处理原始 df 中的所有数值变量,然后在缩放后的 df
上应用 train
函数
library(dplyr)
library(caret)
df <- df %>%
dplyr::mutate_if(is.numeric, scale)
test <- train(risk ~ .,
method = "glm",
data = df,
family = binomial(link = "logit"),
trControl = trainControl(method = "cv",
number = 6,
classProbs = TRUE,
summaryFunction = prSummary),
metric = "AUC")
我有一个由数值和非数值变量组成的数据框。我正在尝试根据所有其他变量拟合预测我的变量“风险”的逻辑回归模型,使用 6 折交叉验证优化 AUC。
但是,我想将所有数值解释变量居中并缩放。我的代码没有引发任何错误或警告,但不知何故我无法弄清楚如何通过 preProcess
(或以其他方式)告诉 train()
只是居中和缩放我的数值变量。
代码如下:
test <- train(risk ~ .,
method = "glm",
data = df,
family = binomial(link = "logit"),
preProcess = c("center", "scale"),
trControl = trainControl(method = "cv",
number = 6,
classProbs = TRUE,
summaryFunction = prSummary),
metric = "AUC")
您可以尝试先预处理原始 df 中的所有数值变量,然后在缩放后的 df
上应用train
函数
library(dplyr)
library(caret)
df <- df %>%
dplyr::mutate_if(is.numeric, scale)
test <- train(risk ~ .,
method = "glm",
data = df,
family = binomial(link = "logit"),
trControl = trainControl(method = "cv",
number = 6,
classProbs = TRUE,
summaryFunction = prSummary),
metric = "AUC")