2015-11-24 16 views
9

Yinelemeli gibi görünüyor olsa da, bunların bir çözüm vermediği ve benim sorunumla ilgili olduğu için bunu gönderiyorum. xgb.DMatrix içindeREAL() yalnızca bir 'tamsayı' değil, bir 'tamsayı' için uygulanabilir, bir 'tamsayı' değil,

dtrain<-xgb.DMatrix(data=data.matrix(train),label=data[t,c(31)]) 

hata (veri = data.matrix (tren), etiket = Veri [T, C (31)]): () yalnızca bir 'sayısal' uygulanabilir değil, gerçek Ben bu hatayı arayarak anlaşılan bütün GERÇEK nedir bir 'tamsayı'

> class(data[t,c(31)]) 
[1] "integer" 

> str(train) 

'

data.frame': 1965 obs. of 30 variables: 
$ having_IP_Address   : int 2 2 2 2 2 2 2 2 2 2 ... 
$ URL_Length     : int 3 3 3 3 3 3 3 3 3 3 ... 
$ Shortining_Service   : int 1 1 1 1 1 1 1 1 1 1 ... 
$ having_At_Symbol   : int 1 1 1 1 1 1 1 1 1 1 ... 
$ double_slash_redirecting : int 2 2 2 2 2 2 2 2 2 2 ... 
$ Prefix_Suffix    : int 2 2 1 2 3 2 1 1 3 1 ... 
$ having_Sub_Domain   : int 1 2 1 1 1 3 1 2 1 1 ... 
$ SSLfinal_State    : int 2 2 2 1 2 2 1 2 2 2 ... 
$ Domain_registeration_length: int 3 1 3 2 2 1 2 3 2 1 ... 
$ Favicon     : int 1 2 1 1 1 1 1 1 2 1 ... 
$ port      : int 1 2 1 1 1 1 1 1 2 1 ... 
$ HTTPS_token    : int 2 2 2 2 2 2 2 2 2 2 ... 
$ Request_URL    : int 1 1 1 2 2 1 2 1 2 1 ... 
$ URL_of_Anchor    : int 2 2 2 2 2 3 1 2 3 1 ... 
$ Links_in_tags    : int 3 2 3 3 1 3 2 1 3 2 ... 
$ SFH      : int 1 1 1 1 1 1 1 1 1 1 ... 
$ Submitting_to_email  : int 2 1 2 2 2 2 2 1 1 2 ... 
$ Abnormal_URL    : int 2 2 2 2 2 2 2 2 2 2 ... 
$ Redirect     : int 1 1 1 1 1 1 1 1 1 1 ... 
$ on_mouseover    : int 1 2 1 1 1 1 1 1 1 1 ... 
$ RightClick     : int 1 1 1 1 1 1 1 1 1 1 ... 
$ popUpWidnow    : int 1 2 1 1 1 1 1 1 2 1 ... 
$ Iframe      : int 1 2 1 1 1 1 1 1 2 1 ... 
$ age_of_domain    : int 3 1 1 1 3 3 1 1 1 1 ... 
$ DNSRecord     : int 2 1 1 2 1 2 1 2 2 1 ... 
$ web_traffic    : int 3 3 2 3 3 3 1 3 2 2 ... 
$ Page_Rank     : int 2 3 1 1 1 1 1 1 1 1 ... 
$ Google_Index    : int 1 1 1 1 1 1 1 1 1 1 ... 
$ Links_pointing_to_page  : int 2 1 3 2 1 2 1 3 2 2 ... 
$ Statistical_report   : int 2 1 2 2 2 2 2 2 2 2 ... 

() listelerine uygulanabilir olamaz. Ben bu GERÇEK() ne clueless. Şimdiden teşekkürler!

+1

hata 'anlaşılacağı gibi sayısal verilerinizi dönüştürme çalıştım tren [] <- lapply (train, as.numeric) 've sonra' xgb.DMatrix (data = data.matrix (tren)) 'kullanın – user20650

cevap

11

bir Ar-sayısal-vektör içeriğini bir C-fonksiyondur.

train[] <- lapply(train, as.numeric) 

ve ardından kullanmak sayısal kullanım veri dönüştürmek için

xgb.DMatrix(data=data.matrix(train)) 
+2

FYI: https://github.com/dmlc/xgboost/pull/2237 içindeki düzeltmeyi sağlar. Tamsayı matrislerini xgb.DMatrix girişi olarak kullanmak. –

3

Kabaca gerçek hata xgb.DMatrix veri tamsayılardı sayısal değerler alır bildiren C

1

X: belirleyicileri arasında dataframe Hasılat: etiket vektör < dtrain

- xgb.DMatrix (as.matrix (as.numerik (X)), Y)

Veya: xgb < - xgboost (veri = as.matrix (X) label = Y, ...)