gbm
予測回帰モデルの構築に使用しています。トレーニング セットとテスト セットがあります (事前に定義されており、ランダムに選択されていません)。以下は、コードの概要です。
トレーニング データには約 600 行、テスト データには 150 行あります。私はそれらが非常に少ないことを知っていますが、それでも.
train <- ....
test <- ....
set.seed(123)
model <- gbm(target ~., data = train,
distribution = "gaussian",
n.trees = 4000,
interaction.depth = 2,
n.minobsinnode = 5,
shrinkage = 0.01,
bag.fraction = 1,
train.fraction = .95,
verbose = TRUE
)
best_iter <- gbm.perf(model)
set.seed(123)
predictions <- predict(model, newdata = test, n.trees = best_iter)
set.seed(123)
predictions <- predict(model, newdata = train, n.trees = best_iter)
どういうわけか、gbm モデルをまったく同じパラメーターで何度も実行すると、テスト セットで予測を再現できません。しかし同時に、私はいつでも電車のセットで予測を再現することができます. モデルを構築して予測を行う前にもシードを設定しています。誰かが何が起こっているのかを理解するのを手伝ってくれますか? トレーニングとテストのデータは常に同じままであることに注意してください。実行ごとに変更することはありません。