2016-03-24 17 views
0

xgboost paketini kullanarak xgb.train paketini kullanarak bir model eğitimi aldım. Bu modelin özelliklerinin önemini anlamaya çalışıyorum. Ben sürekli aşağıdaki hatayı alıyorum:xgboost paketinden xgb.importance kullanılmaya çalışırken hata

Error in fread(paste(longString, collapse = ""), sep = "\n", header = F) : 
    4 arguments passed to .Internal(nchar) which requires 3 

ben diye burada kodumu paylaşmak yardımcı olur:

# Make the xgb.DMatrix 
train <- sparse.model.matrix(TARGET ~ ., data = train) 
dtrain <- xgb.DMatrix(data=train, label=train.y) 

# Set the desired parameters 
myParams <- list(objective   = "binary:logistic", 
       booster    = "gbtree", 
       eval_metric   = "auc", 
       eta     = 0.02, 
       max_depth   = 5, 
       min_child_weight = 12, 
       gamma    = 0.1, 
       subsample   = 0.7, 
       colsample_bytree = 0.7) 

# Train model 
myXGBfit <- xgb.train(params    = myParams, 
         data    = dtrain, 
         nrounds    = 369, 
         verbose    = 1, 
         watchlist   = watchlist, 
         maximize   = FALSE) 

# Calculate feature importance matrix 
importance <- xgb.importance(feature_names = [email protected][[2]], model = myXGBfit) 

Ben modelini eğitmek için xgboost yerine xgb.train kullanarak denedi ama aynı hatayı alıyorum özellik önem matrisi almaya çalışırken. Ayrıca xgboost paketinin belgelerini okudum ve yardım için çevrimiçi arama yaptım ancak bir çözüm bulamadı. Neyi yanlış yapıyorum? Bu genellikle benim için çalışıyor

R version 3.2.0 (2015-04-16) 
Platform: x86_64-w64-mingw32/x64 (64-bit) 
Running under: Windows 7 x64 (build 7601) Service Pack 1 

locale: 
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C       
[5] LC_TIME=English_United States.1252  

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] pROC_1.8  Matrix_1.2-4 xgboost_0.4-3 

loaded via a namespace (and not attached): 
[1] plyr_1.8.3  magrittr_1.5  tools_3.2.0  yaml_2.1.13  Rcpp_0.12.3  
[6] stringi_1.0-1 grid_3.2.0  knitr_1.12.3  data.table_1.9.6 stringr_1.0.0 
[11] chron_2.3-47  lattice_0.20-33 
+0

Aynı hatayı alıyorum ve ayrıca R 3.2.0 üzerinde çalışıyor. – lolatu2

cevap

0

3.2.4 Revize edildi. version komutu çalıştırmak aşağıdaki bilgileri üretir:

platform  x86_64-w64-mingw32       
arch   x86_64          
os    mingw32          
system   x86_64, mingw32        
status   Revised          
major   3           
minor   2.4           
year   2016          
month   03           
day   16           
svn rev  70336          
language  R           
version.string R version 3.2.4 Revised (2016-03-16 r70336) 
nickname  Very Secure Dishes 

R sürümünü güncellemek için, ben installr paketini kullanılan ve R GUI (Windows için kullanılabilir) updateR() komutunu çalıştırın. Umarım aynı durumdaki herkese yardım eder!

0

: o herhangi bir kullanım ise

, sessionInfo() aşağıdaki bilgileri sağlar sorunu için 3.2.0 den R versiyonu güncellemeden sonra çözüldü

importance <- xgb.importance(dimnames(train)[[2]], model = myXGBfit) 
+0

Maalesef, işe yaramadı. Yine aynı hatayı alıyorum: 'Hatada hata (paste (longString, collapse =" "), sep =" \ n ", başlık = F): 4 argüman, 3 'gerektirir .Internal (nchar)' a geçti. Sadece 'dimnames (tren) [[2]] 'yazmayı denedim ve gayet iyi çalışıyor. Sorunun ne olduğunu bilmiyorum. – YamiOmar

+0

Hmm, bu garip. En son R sürümüne yükseltmeyi deneyebilir misiniz? Benzer bir hata mesajı ile, çalışıyor gibi görünüyor R sürüm 3.2.0 ile bir sorun olduğunu söyleyerek başka bir iş parçacığı buldum. Son sürüm, 3.2.4, daha iyi çalışabilir. İşte bulduğum bilgiler: http://stackoverflow.com/questions/32912268/error-in-r-data-table-v1-9-6-function-fread – Aneon

İlgili konular