我在 R 中使用 xgboost 在训练数据集上构建分类模型train
。train
具有以下属性。
- 它具有所有数字功能
- 没有缺失值。
- 不存在分类/文本/因子变量。
TARGET
是取 1/0 值的目标变量。
xgb.train 需要以特定格式传递数据,因此我尝试了以下两种方法来获取 xgb.train 所需的格式。
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
创建方法构建的模型对测试集进行评分时,我会得到不同的分数/AUC。我已经验证这不是随机化的问题,因为如果我运行第一种方法或第二种方法两次/三次,我能够重现分数。在我无法弄清楚的两种方法中发生的事情有所不同。有人可以帮我找出区别吗?
换句话问。
与提供给他们的数据只有数字特征、没有缺失值和分类变量时有什么不同sparse.model.matrix
?as.matrix