Rでxgboostを使用して、トレーニングデータセットtrain
に分類モデルを作成しています。 train
には次の属性があります。sparse.model.matrixとas.matrixの相違
- それは、すべての数値の機能
- ノー欠損値を持っていません。
- カテゴリ/テキスト/要因変数はありません。
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)
私はこれらの2つのxgtrain
作成方法によって構築されたモデルを使用してテストセットを獲得するとき、私は/ AUC異なるスコアを取得します。私は1回目の方法や2回目の方法を2回/ 3回実行するとスコアを再現できたので、ランダム化の問題ではないことを確認しました。何かが私が把握できなかった2つの方法で異なって起こっている。誰かがその違いを特定するのを助けてくれますか?
質問別の言葉です。 sparse.model.matrix
にはas.matrix
とは何の違いがありますか?提供されたデータに欠損値がなく、カテゴリ変数がない場合はどうなりますか?
を(「電車」の両方に名前を付ける)データモデル行列を使用してデータセットを上書きするのは良いアイデアではありませんが、私はNcoI部位を使用して列をチェックしたときに(電車)前と後、それは同じに出てくる。どうして? – user3664020
@ user3664020最初の例では、行列にはまだTarget列があり、2番目の例ではこの列を削除し、行列に切片を追加します。 – amit