Min*_*Mai 1 r machine-learning r-caret
我试图更多地了解这个caret包,并遇到了一个我不确定如何解决的障碍.
#loading up libraries
library(MASS)
library(caret)
library(randomForest)
data(survey)
data<-survey
#create training and test set
split <- createDataPartition(data$W.Hnd, p=.8)[[1]]
train<-data[split,]
test<-data[-split,]
#creating training parameters
control <- trainControl(method = "cv",
number = 10,
p =.8,
savePredictions = TRUE,
classProbs = TRUE,
summaryFunction = "twoClassSummary")
#fitting and tuning model
tuningGrid <- data.frame(.mtry = floor(seq(1 , ncol(train) , length = 6)))
rf_tune <- train(W.Hnd ~ . ,
data=train,
method = "rf" ,
metric = "ROC",
trControl = control)
Run Code Online (Sandbox Code Playgroud)
不断收到错误:
Error in evalSummaryFunction(y, wts = weights, ctrl = trControl, lev = classLevels, :
attempt to apply non-function
Run Code Online (Sandbox Code Playgroud)
我已经确认我的DV(W.Hnd)是一个因子级别,因此随机森林适合用于分类.我的假设是caret不知道应用于randomForest算法?除此之外,我不知道.
你有"twoClassSummary"的引号,这使得它成为一个字符向量.R正试图将此作为函数应用,这会导致错误.
删除引号并再次尝试您的脚本.这应该能够twoClassSummary正确调用函数.
#creating training parameters
control <- trainControl(method = "cv",
number = 10,
p =.8,
savePredictions = TRUE,
classProbs = TRUE,
summaryFunction = twoClassSummary)
Run Code Online (Sandbox Code Playgroud)