R插入符号仅预处理部分数据集变量并训练模型

R插入符号仅预处理部分数据集变量并训练模型,r,r-caret,R,R Caret,我有一个包含一些虚拟变量[0]的训练集,我不想prepoc=c(“中心”,“缩放”)它们,但我想prepoc=c(“中心”,“缩放”)所有非虚拟变量,以便像这里[1]那样对它们进行规范化。因此,“中心”和“比例”选项的作用如下: PreProcovCenter <- preProcess(DF[,1:5]) preProcovDummy <- dummyVars(DF[,6:10]) DF[,1:5] <- predict(PreProcovCenter, DF[,1:5])

我有一个包含一些虚拟变量[0]的训练集,我不想
prepoc=c(“中心”,“缩放”)
它们,但我想
prepoc=c(“中心”,“缩放”)
所有非虚拟变量,以便像这里[1]那样对它们进行规范化。因此,“中心”和“比例”选项的作用如下:

PreProcovCenter <- preProcess(DF[,1:5])
preProcovDummy <- dummyVars(DF[,6:10])

DF[,1:5] <- predict(PreProcovCenter, DF[,1:5])
DFDummy <- predict(PreProcovDummy, DF[,6:10])

DF <- cbind(DF, DFDummy)
  • 中心:从值中减去平均值
  • 比例:将值除以标准偏差
使用所有非虚拟变量创建一个数组,计算每个变量的平均值和SD,将所有值居中并缩放,然后使用另一个包含所有虚拟变量的数组合并该数组,生成
new_array
array,然后像这样训练模型,这有意义吗?还是这样不行

ctrl <- trainControl(method = "repeatedcv", number=10, repeats=3)
knn_model <- train (Class ~ ., data=new_array, method="knn", trControl=ctrl)

ctrl您可以这样做,使所有内容都包含在插入符号中

假设您有一个名为
DF
的data.frame,其中的列从1:5开始为数字,从6:10开始为阶乘。您可以执行以下操作:

PreProcovCenter <- preProcess(DF[,1:5])
preProcovDummy <- dummyVars(DF[,6:10])

DF[,1:5] <- predict(PreProcovCenter, DF[,1:5])
DFDummy <- predict(PreProcovDummy, DF[,6:10])

DF <- cbind(DF, DFDummy)
预编程中心