尝试运行H2O XGboost时出现-1错误消息

时间:2017-07-12 02:41:19

标签: xgboost h2o

我在远程服务器上运行H2O 3.10.5.3(在hadoop cdh5.8上),使用R(3.4.1)和'h2o.init(startH2O = F,port = 54321)'连接到我的本地机器。

以下代码可以正常使用:

Train.hex <- as.h2o(iris)
h2o.gbm(x="Sepal.Length", y="Petal.Width", training_frame = Train.hex) 

但xgboost不起作用并生成以下错误消息:

h2o.xgboost(x="Sepal.Length", y="Petal.Width", training_frame = Train.hex) 


ERROR: Unexpected HTTP Status code: 500 Server Error (url = http://localhost:54321/3/ModelBuilders/xgboost)

java.lang.ArrayIndexOutOfBoundsException
 [1] "java.lang.ArrayIndexOutOfBoundsException: -1"                                                                       
 [2] "    hex.ModelBuilder.make(ModelBuilder.java:117)"                                                                   
 [3] "    water.api.ModelBuildersHandler.fetch(ModelBuildersHandler.java:35)"                                             
 [4] "    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)"                                                    
 [5] "    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)"                                  
 [6] "    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)"                          
 [7] "    java.lang.reflect.Method.invoke(Method.java:498)"                                                               
 [8] "    water.api.Handler.handle(Handler.java:63)"                                                                      
 [9] "    water.api.RequestServer.serve(RequestServer.java:448)"                                                          
[10] "    water.api.RequestServer.doGeneric(RequestServer.java:297)"                                                      
[11] "    water.api.RequestServer.doGet(RequestServer.java:221)"                                                          
[12] "    javax.servlet.http.HttpServlet.service(HttpServlet.java:707)"                                                   
[13] "    javax.servlet.http.HttpServlet.service(HttpServlet.java:820)"                                                   
[14] "    org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)"                                         
[15] "    org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:503)"                                     
[16] "    org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)"                             
[17] "    org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429)"                                      
[18] "    org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)"                              
[19] "    org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)"                                  
[20] "    org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)"                          
[21] "    org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)"                                
[22] "    water.JettyHTTPD$LoginHandler.handle(JettyHTTPD.java:183)"                                                      
[23] "    org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)"                          
[24] "    org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)"                                
[25] "    org.eclipse.jetty.server.Server.handle(Server.java:366)"                                                        
[26] "    org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)"                 
[27] "    org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53)"                  
[28] "    org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:971)"                
[29] "    org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1033)"
[30] "    org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)"                                               
[31] "    org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)"                                          
[32] "    org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72)"                         
[33] "    org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:264)"                   
[34] "    org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)"                               
[35] "    org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)"                                
[36] "    java.lang.Thread.run(Thread.java:745)"                                                                          

Error in .h2o.doSafeREST(h2oRestApiVersion = h2oRestApiVersion, urlSuffix = page,  : 


ERROR MESSAGE:

-1

任何人都可以帮我理解发生了什么吗?

非常感谢, KERE

2 个答案:

答案 0 :(得分:1)

不幸的是,Windows暂时不支持H2O Xgboost,因为H2O的{​​{3}}表示:

  

限制

     

本节提供了XGBoost限制的列表-其中一些   将在以后的版本中解决。

     

...

     
      
  1. Windows不支持XGBoost。
  2.   
     

...

答案 1 :(得分:0)

XGBoost Windows 上不受支持。

限制列表包括:

  • Xstrongo在 Windows 上不受支持。
  • 支持的平台列表包括:Linux或OS X

遇到相同问题时,我打开我的 COLAB 帐户,然后在此尝试。它确实对我有用。