誰かが私に助けてくれますか?キャレットパッケージを使用してxgboostトレーニングモデルをデフォルトのメトリックRMSLEに変更する必要があります。デフォルトでは、RMSEでキャレットとxgboost列車と計測が行われます。ここキャレットのRMSLEメトリックをrで作成する
は、コードの行は、次のとおり
チューニングパラメータ
grid = expand.grid(nrounds = 100,
max_depth = 6,
eta = 0.075,
gamma = 0,
colsample_bytree = 0.4,
min_child_weight = 2.25,
subsample = 1)
cl = makeCluster(3, type="SOCK") #make clusters
registerDoSNOW(cl) #register clusters
set.seed(1)
のグリッドを作成し、制御対象
control = trainControl(method = "cv",
number = 2,
summaryFunction = custom_summary)
を作成キャレット形式で
custom_summary = function(data, lev = NULL, model = NULL){
out = rmsle(data[, "obs"], data[, "pred"])
names(out) = c("rmsle")
out
}
をカスタム集計関数を作成します
は私のモデル
caret4 = train(price_doc~. - sub_area - id,
data=train.train,
method="xgbTree",
trControl=control,
tuneGrid=grid,
metric="rmsle",
maximize = FALSE)