我正在尝试从数据框中获取正确格式的dgCMatrix数据。 但是,在应用xgb.DMatrix之后,我将训练数据作为NULL 这是我尝试过的 我的培训数据是
str(X_train)
'data.frame': 5973 obs. of 6 variables:
$ Gender : Factor w/ 3 levels "","female","male": NA NA NA NA NA NA NA NA NA NA ...
$ OpenedDay : Factor w/ 8 levels "","Friday","Monday",..: NA NA NA NA NA NA NA NA NA NA ...
$ MailOpenedHour : num NA NA NA NA NA NA NA NA NA NA ...
$ OpenedAfterHrs : num NA NA NA NA NA NA NA NA NA NA ...
$ OpenedAfterLoginDays: num NA NA NA NA NA NA NA NA NA NA ...
$ Opened : num 0 0 0 0 0 0 0 0 0 0 ...
经过一次热门编码后,我得到了
df_all <- X_train
ohe_feats = c('Gender', 'OpenedDay')
dummies <- dummyVars(~ Gender + OpenedDay, data = df_all)
df_all_ohe <- as.data.frame(predict(dummies, newdata = df_all))
df_all_combined <- cbind(df_all[,-c(which(colnames(df_all) %in% ohe_feats))],df_all_ohe)
X_train1 <- df_all_combined
str(X_train1)
'data.frame': 5973 obs. of 15 variables:
$ MailOpenedHour : num NA NA NA NA NA NA NA NA NA NA ...
$ OpenedAfterHrs : num NA NA NA NA NA NA NA NA NA NA ...
$ OpenedAfterLoginDays: num NA NA NA NA NA NA NA NA NA NA ...
$ Opened : num 0 0 0 0 0 0 0 0 0 0 ...
$ Gender. : num NA NA NA NA NA NA NA NA NA NA ...
$ Gender.female : num NA NA NA NA NA NA NA NA NA NA ...
$ Gender.male : num NA NA NA NA NA NA NA NA NA NA ...
$ OpenedDay. : num NA NA NA NA NA NA NA NA NA NA ...
$ OpenedDay.Friday : num NA NA NA NA NA NA NA NA NA NA ...
$ OpenedDay.Monday : num NA NA NA NA NA NA NA NA NA NA ...
$ OpenedDay.Saturday : num NA NA NA NA NA NA NA NA NA NA ...
$ OpenedDay.Sunday : num NA NA NA NA NA NA NA NA NA NA ...
$ OpenedDay.Thursday : num NA NA NA NA NA NA NA NA NA NA ...
$ OpenedDay.Tuesday : num NA NA NA NA NA NA NA NA NA NA ...
$ OpenedDay.Wednesday : num NA NA NA NA NA NA NA NA NA NA ...
我的响应变量是“已打开”,因此我从目标
中分离了功能集X_train <- X_train1[,-4]
X_target <- as.vector(X_train1[,4])
现在,当我应用xgb.DMatrix时,我得到xgtrain
的NULL结果 xgtrain <- xgb.DMatrix(data = data.matrix(X_train), label = X_target, missing = NA)
请注意,超过50%的值是NA。这是否为空。?
任何帮助都会很棒!