[英]R caret preproc only part of the dataset variables and train the model
我有一個帶有一些虛擬變量 [0] 的訓練集,我不想preProc=c("center","scale")
它們,但我想preProc=c("center","scale")
所有不是虛擬變量,以便像這里 [1] 那樣標准化它們。 因此,中心和比例選項的作用如下:
用所有非虛擬變量創建一個數組是否有意義,計算每個變量的平均值和標准差,對所有值進行中心和縮放,然后將該數組與另一個包含所有虛擬變量的數組連接起來,從而生成new_array
數組和然后像這樣訓練模型? 或者這行不通?
ctrl <- trainControl(method = "repeatedcv", number=10, repeats=3)
knn_model <- train (Class ~ ., data=new_array, method="knn", trControl=ctrl)
注意:我已經在 CrossValidated 中問過這個問題,但由於它也與 StackOverflow 有關,所以我在這里再次詢問。
[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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.