[英]Issues with tuneGrid parameter in random forest
我一直在處理一些非常不平衡的數據,我想使用分層抽樣來創建更平衡的隨機森林
現在,我正在使用插入包,主要用於調整隨機森林。 所以我嘗試設置一個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)
當我運行此示例時,我收到以下錯誤
The tuning parameter grid should have columns mtry
我遇到過像這樣的討論,表明應該可以傳入這些參數。
另一方面,此頁面表明可以傳入的唯一參數是mtry
我甚至可以通過插入符號將sampsize傳遞到隨機森林中嗎?
您的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)
我懷疑一個人可以直接通過sampsize
和strata
來train
。 但是從這里我相信解決方案是使用trControl()
。 那是,
mtryGrid <- data.frame(.mtry = 100),.sampsize=80)
rfTune<- train(x = trainX,
y = trainY,
method = "rf",
trControl = trainControl(sampling=X),
metric = "Kappa",
ntree = 1000,
tuneGrid = mtryGrid,
importance = TRUE)
其中X
可以是c("up","down","smote","rose")
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.