私はこのコードを使用しています:
mtry <- round(sqrt(18), 0)
gbmGrid <- expand.grid(
interaction.depth = c(1, 2, 3, 4, 5, 6)
, n.trees = seq(10, 10000, by = 100)
, shrinkage = 0.01
, n.minobsinnode = c(5, 10, 20, 30)
, distribution = 'gaussian'
, method = 'gbm'
, mtry = mtry
)
fitControl <- trainControl(
method = "repeatedcv"
, number = 2
, repeats = 3
)
gbmFit1 <- train(
Y ~
X1
+ X2
, data = Train
, trControl = fitControl
, tuneGrid = gbmGrid
, verbose = FALSE
)
しかし得る:
The tuning parameter grid should have columns mtry
一部の人がこれを提案し、.mtryも使用してみたので、最新のパッケージをインストールしました。何か案は? (はい私はググってSOを見ました)
基本(アイリス)に戻しました。これは機能します-gbmの既存のmtryが問題でした:
library(datasets)
library(gbm)
library(caret)
grid <- expand.grid(
n.trees = seq(10, 1000, by = 100)
, interaction.depth = c(4)
, shrinkage = c(0.01, 0.1)
, n.minobsinnode = c(5, 10, 20, 30)
)
train_control <- trainControl(
method = "repeatedcv"
, number = 10
, repeats = 10
)
model <- train(Petal.Width ~ Petal.Length
, method = 'gbm'
, distribution = 'gaussian'
, data = iris
, trControl = train_control
, tuneGrid = grid
, verbose = FALSE
)
model
あなたの時間を無駄にしてすみません!
caret
のバージョン> = 6.0-81では、このタイプのケースのエラーメッセージはより明確です。例として、mtry
が指定されたメソッドのパラメーターではない場合、チューニンググリッドでmtry
を提供することを検討します。
caret
<6.0-81では、次のエラーが発生します。
# Error: The tuning parameter grid should have columns mtry
caret
> = 6.0-81では、次のエラーが発生します。
# Error: The tuning parameter grid should not have columns mtry
そして、ここに、改善されたエラーメッセージを示す再現可能な例があります。
library(caret)
getNamespaceVersion("caret")
## version
## "6.0-80"
mtry <- round(sqrt(18), 0)
gbmGrid <- expand.grid(
interaction.depth = c(1, 2, 3, 4, 5, 6)
, n.trees = seq(10, 10000, by = 100)
, shrinkage = 0.01
, n.minobsinnode = c(5, 10, 20, 30)
, distribution = 'gaussian'
, method = 'gbm'
, mtry = mtry
)
fitControl <- trainControl(
method = "repeatedcv"
, number = 2
, repeats = 3
)
gbmFit1 <- train(
Species ~ Sepal.Length + Sepal.Width
, data = iris
, trControl = fitControl
, tuneGrid = gbmGrid
, verbose = FALSE
)
# Error: The tuning parameter grid should have columns mtry
library(caret)
getNamespaceVersion("caret")
## version
## "6.0-81"
mtry <- round(sqrt(18), 0)
gbmGrid <- expand.grid(
interaction.depth = c(1, 2, 3, 4, 5, 6)
, n.trees = seq(10, 10000, by = 100)
, shrinkage = 0.01
, n.minobsinnode = c(5, 10, 20, 30)
, distribution = 'gaussian'
, method = 'gbm'
, mtry = mtry
)
fitControl <- trainControl(
method = "repeatedcv"
, number = 2
, repeats = 3
)
gbmFit1 <- train(
Species ~ Sepal.Length + Sepal.Width
, data = iris
, trControl = fitControl
, tuneGrid = gbmGrid
, verbose = FALSE
)
# Error: The tuning parameter grid should not have columns mtry
詳細については、この動作を説明して修正したGitHubの問題を参照してください。 https://github.com/topepo/caret/issues/955