2015-11-24 6 views
9

हालांकि प्रश्न डुप्लिकेट प्रतीत होता है, लेकिन मैं इसे पोस्ट कर रहा हूं क्योंकि उनमें से कोई भी मेरी समस्या के समाधान और प्रासंगिक नहीं है। xgb.DMatrix मेंREAL() केवल 'अंकीय' पर लागू किया जा सकता है, न कि 'पूर्णांक'

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

त्रुटि (डेटा = data.matrix (ट्रेन), लेबल = डेटा [टी, ग (31)]): असली() को केवल 'सांख्यिक' के लिए लागू किया जा सकता है, नहीं एक 'पूर्णांक'

> 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 ... 

क्या सब मैं इस त्रुटि खोज के द्वारा समझा असली है() सूचियों के लिए लागू नहीं किया जा सकता। मैं अनजान हूं कि यह असली क्या है()। अग्रिम धन्यवाद !!

+1

किया आप सांख्यिक के लिए अपने डेटा को परिवर्तित करने के रूप में त्रुटि पता चलता है 'कोशिश ट्रेन [] <- लापरवाही (ट्रेन, as.numeric) ', और फिर' xgb.DMatrix (डेटा = डेटा.मैट्रिक्स (ट्रेन)) ' – user20650

उत्तर

11

में एक आर-न्यूमेरिक-वेक्टर की सामग्री तक पहुँचने के लिए एक सी समारोह त्रुटि कहा गया है कि xgb.DMatrix संख्यात्मक मान, जहां डाटा पूर्णांकों थे लेता है।

सांख्यिक उपयोग करने के लिए डेटा को बदलने के लिए

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

और उसके बाद का उपयोग

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

FYI का उपयोग करें: https://github.com/dmlc/xgboost/pull/2237 में फ़िक्स अनुमति देता है xgb.DMatrix इनपुट के रूप में पूर्णांक matrices का सीधे उपयोग करने के लिए। –

1

एक्स: भविष्यवक्ताओं की dataframe Y: लेबल के वेक्टर

< dtrain - xgb.DMatrix (as.matrix (as.numeric (X)), वाई)

या: xgb < - xgboost (डेटा = as.matrix (एक्स), लेबल = वाई, ...)

संबंधित मुद्दे

 संबंधित मुद्दे