2015-04-06 82 views
2

我想用下面的代碼插入符運行GBM:加字符和GBM:任務1失敗 - 「參數意味着,不同的行數」

library(caret) 
library(doParallel) 
detectCores() 
registerDoParallel(detectCores() - 1) 

set.seed(668) 
in.train <- createDataPartition(y = dat$target, p = 0.80, list = T) 

ctrl <- trainControl(method = 'cv', number = 2, classProbs = T, verboseIter = T, 
       summaryFunction = LogLossSummary2) 

gbm.grid <- expand.grid(interaction.depth = 10, 
         n.trees = (2:7) * 50, 
         shrinkage = 0.1) 

Sys.time() 
set.seed(1234) 
gbm.fit <- train(target ~., data = otto.new[in.train, ], 
       method = 'gbm', distribution = 'multinomial', 
       metric = 'LogLoss', maximize = F, 
       tuneGrid = gbm.grid, trControl = ctrl, 
       n.minobsinnode = 4, bag.fraction = 0.9) 
Sys.time() 

但是,它失敗,出現錯誤:

Error in { : 
task 1 failed - "arguments imply differing number of rows: 0, 24754" 
In addition: Warning messages: 
1: package ‘gbm’ was built under R version 3.0.3 
2: package ‘survival’ was built under R version 3.0.3 
3: package ‘plyr’ was built under R version 3.0.3 

這裏是我的會話信息:

> sessionInfo() 
R version 3.0.2 (2013-09-25) 
Platform: x86_64-w64-mingw32/x64 (64-bit) 

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

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

other attached packages: 
[1] plyr_1.8.1  gbm_2.1.1  survival_2.38-1 doParallel_1.0.8 iterators_1.0.7 foreach_1.4.2 data.table_1.9.4 
[8] caret_6.0-41  ggplot2_1.0.1 Revobase_7.1.0 RevoMods_7.1.0 RevoScaleR_7.1.0 lattice_0.20-27 rpart_4.1-5  

loaded via a namespace (and not attached): 
[1] BradleyTerry2_1.0-6 brglm_0.5-9   car_2.0-25   chron_2.3-45  class_7.3-12  codetools_0.2-11 
[7] colorspace_1.2-6 compiler_3.0.2  digest_0.6.8  e1071_1.6-4   grid_3.0.2   gtable_0.1.2  
[13] gtools_3.4.1  lme4_1.1-7   MASS_7.3-37   Matrix_1.1-5   mgcv_1.8-5   minqa_1.2.4   
[19] munsell_0.4.2  nlme_3.1-120  nloptr_1.0.4  nnet_7.3-9   pbkrtest_0.4-2  proto_0.3-10  
[25] quantreg_5.11  Rcpp_0.11.5   reshape2_1.4.1  scales_0.2.4   SparseM_1.6   stringr_0.6.2  
[31] tools_3.0.2   

我已經注意到這個問題間歇性發生,似乎在減少,當我確保我的數據集是k倍的倍數。 (在上面的例子中,我的數據集有49506行)。儘管如此,它似乎時不時出現。有沒有其他人遇到過這種情況,並遇到阻止它的方法?

+0

它可能是任何東西。提供可重複的示例將有助於您的問題得到解答。 – topepo 2015-04-17 16:49:17

回答

1

我面臨同樣的問題,然後我意識到我的一行有一個「NA」。該模型沒有對它做出預測,因此當我運行預測()時,它缺少1行。在浪費了2天的時間之後,我估算了NA,並重新確定了相同的腳本。工作很好。所以請嘗試在您的數據中輸入NAs或Null。 (順便說一句:我也有一些「空」,它也是作爲因素閱讀的,所以請看那些)。請讓我們知道它是否解決了你的問題。

0

我有同樣的問題,我試圖重建我以前構建的gbm模型 - 代碼已經工作,然後停止工作。另外,R每次嘗試啓動時都不會啓動。它會在開始之前終止會話。它通常會在第二次啓動,但是我開始啓動並且它並沒有連續多次啓動,所以我按照這裏的說明操作:https://support.rstudio.com/hc/en-us/articles/200534577-Resetting-RStudio-s-State

並重命名爲myrstudio-desktop文件。在我做完這些之後,我能夠運行gbm模型。從閱讀中應該清楚,我不知道爲什麼它能夠工作,但是我不希望它工作,除非您收到錯誤消息: {: 任務1失敗 - 「參數意味着不同的行數: 0,(某些數字)

相關問題