ブースティングにRGBMパッケージを使用して、10,000 X 932の次元の生物学的データの回帰を実行しています。特に、GBMパッケージに最適なパラメーター設定(n.trees、shrinkage、interaction.depth、n)を知りたいです。 minobsinnode)オンラインで検索したところ、RのCARETパッケージでそのようなパラメーター設定を見つけることができました。ただし、CaretパッケージをGBMパッケージと一緒に使用するのは難しいので、caretを使用して前述のパラメーターの最適な組み合わせを見つける方法を知りたいだけですか?これは非常に典型的な質問のように思われるかもしれませんが、私はカレットのマニュアルを読みましたが、それでもカレットをgbmと統合するのは困難です。特に、これらのパッケージの両方に非常に慣れていないためです。
質問する
22266 次
2 に答える
25
探しているものが見つかったかどうかはわかりませんが、これらのシートのいくつかは役に立たないと思います。
カレットパッケージを使用している場合、以下に必要なパラメーターについて説明します。> getModelInfo()$ gbm $ parameters
彼はGBMを実行するための経験則です。
- Interaction.depthは1であり、ほとんどのデータセットでは適切と思われますが、いくつかのデータセットでは、最大値の奇数倍に対して結果をテストすると、より良い結果が得られることがわかりました。このパラメーターで確認した最大値はfloor(sqrt(NCOL(training)))です。
- 収縮:数値が小さいほど、予測値が高くなり、必要なツリーが多くなり、計算コストが高くなります。収縮=収縮=seq(.0005、.05、.0005)のようなデータの小さなサブセットで値をテストすると、理想的な値を定義するのに役立ちます。
- n.minobsinnode:デフォルトは10で、通常はそれを台無しにしません。小さなデータセットでc(5,10,15,20)を試しましたが、計算コストに対して十分な見返りが得られませんでした。
- n.trees:収縮が小さければ小さいほど、より多くの木が必要になります。n.trees =(0:50)* 50から始めて、それに応じて調整します。
カレットパッケージを使用したセットアップ例:
getModelInfo()$gbm$parameters
library(parallel)
library(doMC)
registerDoMC(cores = 20)
# Max shrinkage for gbm
nl = nrow(training)
max(0.01, 0.1*min(1, nl/10000))
# Max Value for interaction.depth
floor(sqrt(NCOL(training)))
gbmGrid <- expand.grid(interaction.depth = c(1, 3, 6, 9, 10),
n.trees = (0:50)*50,
shrinkage = seq(.0005, .05,.0005),
n.minobsinnode = 10) # you can also put something like c(5, 10, 15, 20)
fitControl <- trainControl(method = "repeatedcv",
repeats = 5,
preProcOptions = list(thresh = 0.95),
## Estimate class probabilities
classProbs = TRUE,
## Evaluate performance using
## the following function
summaryFunction = twoClassSummary)
# Method + Date + distribution
set.seed(1)
system.time(GBM0604ada <- train(Outcome ~ ., data = training,
distribution = "adaboost",
method = "gbm", bag.fraction = 0.5,
nTrain = round(nrow(training) *.75),
trControl = fitControl,
verbose = TRUE,
tuneGrid = gbmGrid,
## Specify which metric to optimize
metric = "ROC"))
データ(配布など)によって状況は変わる可能性がありますが、探している結果が得られるまでgbmgridで遊ぶことが重要であることがわかりました。現在の設定は実行に時間がかかるため、マシンに合わせて変更してください。時間が許す限りです。計算のボールパークを提供するために、私は64GBのRAMを搭載したMacPRO12コアで実行します。
于 2016-06-06T01:20:40.400 に答える
16
このリンクには具体的な例があります(10ページ) -http://www.jstatsoft.org/v28/i05/paper
基本的に、最初にハイパーパラメータ(n.trees、interaction.depth、shrinkageなど)の候補値のグリッドを作成する必要があります。次に、通常どおり汎用トレイン関数を呼び出します。
于 2013-03-26T08:35:10.693 に答える