R中的xgboost:没有正确获取列车数据xgb.DMatrix

时间:2017-04-13 17:21:28

标签: r xgboost

我正在尝试从数据框中获取正确格式的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。这是否为空。?

任何帮助都会很棒!

0 个答案:

没有答案