2017-02-19 34 views
0

У меня есть набор данных, и пытается использовать XGBoostПоезд Фаза XGBoost ошибка

Я получаю следующее сообщение об ошибке

xgb.trani.matrix = xgb.DMatrix(data=data.matrix(train.xgboost)) 

Error in xgb.DMatrix(data = data.matrix(train.xgboost)) : 
REAL() can only be applied to a 'numeric', not a 'list' 

я трансформировал мой ИНТ особенности числовых функций с помощью этого

train.xgboost <- lapply(train.xgboost, as.numeric) 

И проверил типы данных, он показал это [все признаки кажутся числовыми после преобразования выше]: -

ул (train.xgboost)

List of 708 
$ V13 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V14 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V15 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V16 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V33 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V34 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V35 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V36 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V37 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V38 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V39 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V40 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V41 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V42 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V43 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V44 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V45 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V46 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V47 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V48 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V49 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V50 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V51 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V52 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V59 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V61 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V62 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V63 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V64 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V65 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V66 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V67 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V68 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V69 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V70 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V71 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V72 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V73 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V74 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V75 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V76 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V77 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V78 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V79 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V80 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V81 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V82 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V87 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V88 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V89 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V90 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V91 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V92 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V93 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V94 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V95 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V96 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V97 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V98 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V99 : num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V100: num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V101: num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V102: num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V103: num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V104: num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V105: num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V106: num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V107: num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V108: num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V109: num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V110: num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V111: num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V114: num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V115: num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V116: num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V117: num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V118: num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V119: num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V120: num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V121: num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V122: num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V123: num [1:36082] 0 0 0 0 8 0 0 0 0 0 ... 
$ V124: num [1:36082] 0 0 0 0 76 0 0 0 0 0 ... 
$ V125: num [1:36082] 0 0 0 0 202 0 0 0 0 0 ... 
$ V126: num [1:36082] 0 0 0 0 254 0 0 0 0 0 ... 
$ V127: num [1:36082] 0 0 0 0 255 0 28 0 42 0 ... 
$ V128: num [1:36082] 51 0 0 0 163 0 164 0 235 0 ... 
$ V129: num [1:36082] 159 0 0 0 37 0 254 105 255 0 ... 
$ V130: num [1:36082] 253 64 0 0 2 0 233 255 84 0 ... 
$ V131: num [1:36082] 159 253 0 0 0 0 148 219 0 0 ... 
$ V132: num [1:36082] 50 255 0 0 0 0 11 67 0 0 ... 
$ V133: num [1:36082] 0 63 0 0 0 0 0 67 0 0 ... 
$ V134: num [1:36082] 0 0 0 0 0 0 0 52 0 0 ... 
$ V135: num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V136: num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V137: num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V138: num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V139: num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
$ V143: num [1:36082] 0 0 0 0 0 0 0 0 0 0 ... 
    [list output truncated] 

Я не могу понять, так как все функции являются числовыми, то почему это XGBoost дает вышеуказанную ошибку.

Прошу совета.

ответ

0

Я думаю, вы можете попробовать:

xgb.train.matrix = xgb.DMatrix(data=data.matrix(train.xgboost)) 

Чтобы увидеть это, я создал некоторые гипотетические данные:

first = list(a = 1, b = 2, c = 3) 
second = list(a = 2, b = 3, c = 4) 
d<-Map(c,first,second) 

d выглядит как ваш объект:

> str(d) 
List of 3 
$ a: num [1:2] 1 2 
$ b: num [1:2] 2 3 
$ c: num [1:2] 3 4 

теперь, если вы делаете:

> data.matrix(d) 
    [,1]  
a Numeric,2 
b Numeric,2 
c Numeric,2 

, который является нежелательным Vs, если вы идете по моему предложению:

> data.matrix(as.data.frame(d)) 
    a b c 
[1,] 1 2 3 
[2,] 2 3 4 

 Смежные вопросы

  • Нет связанных вопросов^_^