R caret仅预处理部分数据集变量并训练模型
R caret preproc only part of the dataset variables and train the model
我有一个包含一些虚拟变量 [0] 的训练集,我不想 preProc=c("center","scale")
它们,但我想 preProc=c("center","scale")
所有非虚拟变量以便将它们标准化这里[1]。因此,中心和比例选项的作用如下:
- center:从值中减去平均值。
- scale:将值除以标准差。
创建一个包含所有非虚拟变量的数组是否有意义,计算每个变量的平均值和标准差,对所有值进行居中和缩放,然后将该数组与另一个包含所有虚拟变量的数组连接起来生成 new_array
数组然后像这样训练模型?或者这行不通?
ctrl <- trainControl(method = "repeatedcv", number=10, repeats=3)
knn_model <- train (Class ~ ., data=new_array, method="knn", trControl=ctrl)
注意:我已经在 CrossValidated 中问过这个问题,但由于它也与 Whosebug 相关,所以我在这里再问一次。
[0] https://topepo.github.io/caret/pre-processing.html#dummy
[1]
您可以这样做以将所有内容都包含在插入符号中
假设您有一个名为 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)
最后:
knn_model <- train (Class ~ ., data=DF, method="knn", trControl=ctrl)
我有一个包含一些虚拟变量 [0] 的训练集,我不想 preProc=c("center","scale")
它们,但我想 preProc=c("center","scale")
所有非虚拟变量以便将它们标准化这里[1]。因此,中心和比例选项的作用如下:
- center:从值中减去平均值。
- scale:将值除以标准差。
创建一个包含所有非虚拟变量的数组是否有意义,计算每个变量的平均值和标准差,对所有值进行居中和缩放,然后将该数组与另一个包含所有虚拟变量的数组连接起来生成 new_array
数组然后像这样训练模型?或者这行不通?
ctrl <- trainControl(method = "repeatedcv", number=10, repeats=3)
knn_model <- train (Class ~ ., data=new_array, method="knn", trControl=ctrl)
注意:我已经在 CrossValidated 中问过这个问题,但由于它也与 Whosebug 相关,所以我在这里再问一次。
[0] https://topepo.github.io/caret/pre-processing.html#dummy
[1]
您可以这样做以将所有内容都包含在插入符号中
假设您有一个名为 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)
最后:
knn_model <- train (Class ~ ., data=DF, method="knn", trControl=ctrl)