簡體   English   中英

隨機林中的tuneGrid參數問題

[英]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)

我懷疑一個人可以直接通過sampsizestratatrain 但是從這里我相信解決方案是使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM