2016-03-24 28 views
0

xgboostパッケージのxgb.trainを使用してRを使用してモデルを訓練しました。このモデルの機能の重要性を確認しようとしています。私は常に、次のエラーを取得しています:xgboostパッケージからrでxgb.importanceを使用しようとしたときにエラーが発生しました

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

私はそれが助け場合にはここに私のコードを共有:

# 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) 

私はモデルを訓練するxgboost代わりのxgb.trainを使用して試してみましたが、私は同じエラーを取得しますフィーチャ重要度行列を取得しようとしたときに発生します。また、xgboostパッケージのドキュメントを読んで、オンラインで検索しましたが、解決策を見つけることができませんでした。私は間違って何をしていますか?

それはあらゆる使用のなら、sessionInfo()は、以下の情報を提供します。

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

同じエラーが発生しており、R 3.2.0でも実行されています。 – lolatu2

答えて

0

問題は3.2.0からのRのバージョンを更新した後に解決しました3.2.4改訂。 versionコマンドを実行すると、以下の情報を生成します。

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のバージョンを更新するには、私はinstallrパッケージを使用して、私はR GUIから(Windowsの場合のみ利用可能)updateR()コマンドを実行します。誰も私の同じ状況で助けてくれることを願っています!

0

これは通常、私の作品:

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

残念ながら、それはうまくいかなかった。私はまだ同じエラーが発生しています: 'fread(paste(longString、collapse = "")、sep = "\ n"、header = F)のエラー: 4引数が.Internal(nchar)に渡され、3が必要です。私は 'dimnames(train)[2] 'だけを入力しようとしましたが、うまく動作します。私は何が問題なのか分からない。 – YamiOmar

+0

うーん、それは変です。あなたは最新のRバージョンにアップグレードすることができますか?別のスレッドでRのバージョン3.2.0に問題があると言いましたが、これは同じようなエラーメッセージが表示されているようです。最新バージョンの3.2.4がうまくいくかもしれません。ここに私が見つけた情報があります:http://stackoverflow.com/questions/32912268/error-in-r-data-table-v1-9-6-function-fread – Aneon

関連する問題