Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:缺少数据导致XGBoost/sparse.model.matrix出错_R_Sparse Matrix_Xgboost - Fatal编程技术网

R:缺少数据导致XGBoost/sparse.model.matrix出错

R:缺少数据导致XGBoost/sparse.model.matrix出错,r,sparse-matrix,xgboost,R,Sparse Matrix,Xgboost,据我所知,XGB应该具有处理丢失数据的优势,但是,每当我在添加了一些NAs的情况下测试Boston外壳集时,我都会得到以下错误: The length of labels must equal to the number of rows in the input data 我正在运行的代码是 trainm <- sparse.model.matrix(class ~ ., data = train) train_label <- train[,"class"] train_matr

据我所知,XGB应该具有处理丢失数据的优势,但是,每当我在添加了一些NAs的情况下测试Boston外壳集时,我都会得到以下错误:

The length of labels must equal to the number of rows in the input data
我正在运行的代码是

trainm <- sparse.model.matrix(class ~ ., data = train)
train_label <- train[,"class"]
train_matrix <- xgb.DMatrix(data = as.matrix(trainm) label=train_label)

trainm在构建稀疏模型矩阵时,您需要采取纠正措施来处理NAs。您的代码/数据没有问题。这是修改后的代码:

options(na.action='na.pass')
trainm <- sparse.model.matrix(class ~ ., data = train)
train_label <- train$class
train_matrix <- xgb.DMatrix(data = trainm, label=train$class)
选项(na.action='na.pass')

trainm在构建稀疏模型矩阵时,您需要采取纠正措施来处理NAs。您的代码/数据没有问题。这是修改后的代码:

options(na.action='na.pass')
trainm <- sparse.model.matrix(class ~ ., data = train)
train_label <- train$class
train_matrix <- xgb.DMatrix(data = trainm, label=train$class)
选项(na.action='na.pass')

问题不在于
NA
train\u标签中的观察次数与
trainm
中的观察次数不同。如果执行
dim(trainm)
操作,您将获得
369 x 15
,而
length(train\u标签)
将返回
403
。感谢您的评论。如果我在“#####添加一些NAs”部分(第29-33行)之外加了注释,那么一切都正常,因此除非我误解了什么,否则错误是由于缺少一些数据造成的?是的,如果您注释代码的这些行,您将能够运行
xgb.DMatrix
。问题不在于
NA
train\u标签中的观察次数与
trainm
中的观察次数不同。如果执行
dim(trainm)
操作,您将获得
369 x 15
,而
length(train\u标签)
将返回
403
。感谢您的评论。如果我注释掉“####添加一些NAs”部分(第29-33行),那么一切正常,因此除非我误解了什么,否则错误是由于缺少一些数据造成的?是的,如果您注释代码的这些行,您将能够运行
xgb.DMatrix