mor*_*njt 7 r random-forest r-caret
我一直在处理一些非常不平衡的数据,我想使用分层抽样来创建更平衡的随机森林
现在,我正在使用插入包,主要用于调整随机森林.所以我尝试设置一个tuneGrid,将mtry和sampsize参数传递给插入符号列表方法,如下所示.
mtryGrid <- data.frame(.mtry = 100),.sampsize=80)
rfTune<- train(x = trainX,
y = trainY,
method = "rf",
trControl = ctrl,
metric = "Kappa",
ntree = 1000,
tuneGrid = mtryGrid,
importance = TRUE)
Run Code Online (Sandbox Code Playgroud)
当我运行此示例时,我收到以下错误
The tuning parameter grid should have columns mtry
Run Code Online (Sandbox Code Playgroud)
我遇到过像这样的讨论,表明应该可以传入这些参数.
另一方面,此页面表明可以传入的唯一参数是mtry
我甚至可以通过插入符号将sampsize传递到随机森林中吗?
小智 13
看起来你的支架问题mtryGrid.或者,您也可以使用您想要尝试expand.grid的不同值mtry.默认情况下,您可以为随机林调整的唯一参数是mtry.但是,您仍然可以将其他参数传递给train.但那些将具有固定值,因此不会被调整train.但你仍然可以要求使用分层样本train.下面是我将如何做,假设这trainY是一个布尔变量,您希望根据该变量对样本进行分层,并且您希望每个类别的样本大小为80:
mtryGrid <- expand.grid(mtry = 100) # you can put different values for mtry
rfTune<- train(x = trainX,
y = trainY,
method = "rf",
trControl = ctrl,
metric = "Kappa",
ntree = 1000,
tuneGrid = mtryGrid,
strata = factor(trainY),
sampsize = c(80, 80),
importance = TRUE)
Run Code Online (Sandbox Code Playgroud)