4

の多くの優れた機能を必要な方法 (?) で組み合わせることができるかどうかはわかりませんxgboostが、私がやろうとしているのは、マルチクラスの従属変数でスパース データ予測子を使用してランダム フォレストを実行することです。

私はそれxgboostがそれらのことのいずれかを行うことができることを知っています:

bst <- xgboost(data = train$data, label = train$label, max.depth = 4, num_parallel_tree = 1000, subsample = 0.5, colsample_bytree =0.5, nround = 1, objective = "binary:logistic")

bst <- xgboost(data = sparse_matrix, label = output_vector, max.depth = 4, eta = 1, nthread = 2, nround = 10,objective = "binary:logistic")

  • multi:softmaxまたはによる多項(マルチクラス) 従属変数モデルmulti:softprob

xgboost(data = data, label = multinomial_vector, max.depth = 4, eta = 1, nthread = 2, nround = 10,objective = "multi:softmax")

ただし、一度にすべてを実行しようとすると、長さが一致しないというエラーが発生します。

sparse_matrix     <- sparse.model.matrix(TripType~.-1, data = train)
Y                 <- train$TripType
bst               <- xgboost(data = sparse_matrix, label = Y, max.depth = 4, num_parallel_tree = 100, subsample = 0.5, colsample_bytree =0.5, nround = 1, objective = "multi:softmax")
Error in xgb.setinfo(dmat, names(p), p[[1]]) : 
  The length of labels must equal to the number of rows in the input data
length(Y)
[1] 647054
length(sparse_matrix)
[1] 66210988200
nrow(sparse_matrix)
[1] 642925

私が得ている長さのエラーは、単一のマルチクラス従属ベクトル ( nと呼びましょう) の長さと疎行列インデックスの長さを比較しています。これは、 j個の予測変数に対してj * nであると考えられます。

ここでの具体的な使用例は、Kaggle.com Walmart の競争です (データは公開されていますが、デフォルトでは非常に大きく、約 650,000 行と数千の候補機能があります)。私は H2O 経由で多項 RF モデルを実行してきましたが、他の多くの人が を使用しているように聞こえるxgboostので、これが可能かどうか疑問に思います。

それが不可能な場合は、従属変数の各レベルを個別に推定して、結果を得ようとすることができるかどうか、またはすべきかどうか疑問に思いますか?

4

1 に答える 1