ウェブ上で見る私はまだリニアブースターgblinear
が正確に何であるかについて混乱しており、私はaloneではない。xgboost:どのパラメータがリニアブースターで使用されていますか?
lambda
、λ_bias
、alpha
の3つのパラメータがあります。「追加パラメータ」と言うべきでしょうか。
私がこれを正しく理解すれば、リニアブースターは線形ブースティング(正規化)を行います。 この文脈では、上記の3つのパラメータとeta
(昇圧率)の意味しか理解できません。 それはまた、githubに記載されている方法です。
しかし、ツリーのパラメータgamma
、max_depth
およびmin_child_weight
もアルゴリズムに影響します。
これはどのようにすることができますか?リニアブースターについては、Web上のどこにでも明確に記述されていますか?
私の例を参照してください:
library(xgboost)
data(agaricus.train, package='xgboost')
data(agaricus.test, package='xgboost')
train <- agaricus.train
test <- agaricus.test
次にセットアップ
set.seed(100)
model <- xgboost(data = train$data, label = train$label, nrounds = 5,
objective = "binary:logistic",
params = list(booster = "gblinear", eta = 0.5, lambda = 1, lambda_bias = 1,gamma = 2,
early_stopping_rounds = 3))
はgamma=1
set.seed(100)
model <- xgboost(data = train$data, label = train$label, nrounds = 5,
objective = "binary:logistic",
params = list(booster = "gblinear", eta = 0.5, lambda = 1, lambda_bias = 1,gamma = 1,
early_stopping_rounds = 3))
ながら
> [1] train-error:0.018271 [2] train-error:0.003071
> [3] train-error:0.001075 [4] train-error:0.001075
> [5] train-error:0.000614
を与えます
は別の "パス" である
> [1] train-error:0.013051 [2] train-error:0.001842
> [3] train-error:0.001075 [4] train-error:0.001075
> [5] train-error:0.001075
につながります。 max_depth
ための同様
:
set.seed(100)
model <- xgboost(data = train$data, label = train$label, nrounds = 5,
objective = "binary:logistic",
params = list(booster = "gblinear", eta = 0.5, lambda = 1, lambda_bias = 1, max_depth = 3,
early_stopping_rounds = 3))
> [1] train-error:0.016122 [2] train-error:0.002764
> [3] train-error:0.001075 [4] train-error:0.001075
> [5] train-error:0.000768
と
set.seed(100)
model <- xgboost(data = train$data, label = train$label, nrounds = 10,
objective = "binary:logistic",
params = list(booster = "gblinear", eta = 0.5, lambda = 1, lambda_bias = 1, max_depth = 4,
early_stopping_rounds = 3))
> [1] train-error:0.014740 [2] train-error:0.004453
> [3] train-error:0.001228 [4] train-error:0.000921
> [5] train-error:0.000614
申し訳ありませんが、私はスレッドロジックについて知りませんでした。 – Richard