我正在尝试 运行 R 中的 XGBoost,但遇到了一些问题
I am trying to run XGBoost in R but am facing some issues
我有一个包含 25 个变量和 248 行的数据集。
有 8 个因子变量,其余为整数和数字。
我正在尝试 运行 XGBoost。
我完成了以下代码:-
# Partition Data
set.seed(1234)
ind <- sample(2, nrow(mission), replace = T, prob = c(0.7,0.3))
train <- mission[ind == 1,]
test <- mission[ind == 2,]
# Create matrix - One-Hot Encoding for Factor variables
trainm <- sparse.model.matrix(GRL ~ .-1, data = train)
head(trainm)
train_label <- train[,"GRL"]
train_matrix <- xgb.DMatrix(data = as.matrix(trainm), label = train_label)
testm <- sparse.model.matrix(GRL~.-1, data = test)
test_label <- test[,"GRL"]
test_matrix <- xgb.DMatrix(data = as.matrix(testm),label = test_label)
这里的响应变量是“GRL”,我运行宁test_label <- test[,"GRL"]
上面的代码正在执行,但是当我尝试在 xgb.DMatrix
中使用它时,我遇到了以下错误:
Error in setinfo.xgb.DMatrix(dmat, names(p), p[[1]]) :
The length of labels must equal to the number of rows in the input data
我已将数据划分为70:30。
test[,"GRL"]
returns a data.frame,XGBoost 需要标签为向量。
只需使用 teste$GRL
或 test[["GRL"]]
即可。您还需要对训练数据集执行相同的操作
我有一个包含 25 个变量和 248 行的数据集。 有 8 个因子变量,其余为整数和数字。 我正在尝试 运行 XGBoost。 我完成了以下代码:-
# Partition Data
set.seed(1234)
ind <- sample(2, nrow(mission), replace = T, prob = c(0.7,0.3))
train <- mission[ind == 1,]
test <- mission[ind == 2,]
# Create matrix - One-Hot Encoding for Factor variables
trainm <- sparse.model.matrix(GRL ~ .-1, data = train)
head(trainm)
train_label <- train[,"GRL"]
train_matrix <- xgb.DMatrix(data = as.matrix(trainm), label = train_label)
testm <- sparse.model.matrix(GRL~.-1, data = test)
test_label <- test[,"GRL"]
test_matrix <- xgb.DMatrix(data = as.matrix(testm),label = test_label)
这里的响应变量是“GRL”,我运行宁test_label <- test[,"GRL"]
上面的代码正在执行,但是当我尝试在 xgb.DMatrix
中使用它时,我遇到了以下错误:
Error in setinfo.xgb.DMatrix(dmat, names(p), p[[1]]) : The length of labels must equal to the number of rows in the input data
我已将数据划分为70:30。
test[,"GRL"]
returns a data.frame,XGBoost 需要标签为向量。
只需使用 teste$GRL
或 test[["GRL"]]
即可。您还需要对训练数据集执行相同的操作