R で xgboost を使用して、トレーニング データセットで分類モデルを構築していtrain
ます。train
以下の属性を持っています。
- すべての数値機能を備えています
- 欠損値はありません。
- カテゴリ/テキスト/因子変数は存在しません。
TARGET
1/0 の値をとるターゲット変数です。
xgb.train ではデータを特定の形式で渡す必要があるため、xgb.train で必要な形式を取得するために次の 2 つの方法を試しました。
1.
y <- train$TARGET
train <- sparse.model.matrix(TARGET ~ ., data = train) ##has 76000 rows and 307 columns
xgtrain <- xgb.DMatrix(data=train, label=y)
2.
y <- train$TARGET
train$TARGET <- NULL
x = as.matrix(train)
x = matrix(as.numeric(x),nrow(x),ncol(x)) ##has 76000 rows and 307 columns
xgtrain = xgb.DMatrix(x, label = y)
xgtrain
さて、これら 2 つの作成方法によって構築されたモデルを使用してテスト セットをスコアリングすると、異なるスコア/AUC が得られます。1番目の方法または2番目の方法を2回/ 3回実行するとスコアを再現できたため、ランダム化の問題ではないことを確認しました。私が理解できなかった2つの方法で、何かが異なって起こっています。誰かがその違いを特定するのを手伝ってもらえますか?
別の言葉で質問します。
提供されたデータに欠損値やカテゴリ変数がない数値特徴のみが含まれている場合との違いは何ですか?sparse.model.matrix
as.matrix