2

目的を使用して xgboost モデルをトレーニングしようとしてmulti:softmaxいますが、精度スコアが動かなくなります。

コード:

#preparing dataset omitted
xgb_params = {
    "objective": "multi:softmax",
    "eta": 1,
    "num_class": 62,
    "max_depth": 10,
    "nthread": 4,
    "eval_metric": "merror",
    "print.every.n": 1,
    "silent": 1,
    "early.stop.round": 5
}
num_rounds = 5

mask = np.random.choice([False, True], len(X_train), p=[0.5, 0.5])
not_mask = [not i for i in mask]

dtrain = xgb.DMatrix(X_train[not_mask], label=y[not_mask])
dtrain_watch = xgb.DMatrix(X_train[mask], label=y[mask])
dtest = xgb.DMatrix(X_test)
watchlist = [(dtrain_watch, 'eval')]

gbdt = xgb.train(xgb_params, dtrain, num_rounds, watchlist)
preds = gbdt.predict(dtest)

出力:

[0] eval-merror:0.989950
[1] eval-merror:0.989950
[2] eval-merror:0.989950
[3] eval-merror:0.989950
[4] eval-merror:0.989950

イテレーションで eval-merror の変更を反映するには、どのパラメーターを変更する必要がありますか?

編集: eta を 0.01、0.1、0.3、および 1 に変更しようとしましたが、無駄でした。

4

2 に答える 2