Erro na implementação do DeepLearning

Home Fóruns Fórum Machine Learning e Data Science com R de A à Z Erro na implementação do DeepLearning

Visualizando 6 posts - 1 até 6 (de 6 do total)
  • Autor
    Posts
  • #35649
    ahand
    Participante

    Olá Jones,

    Ao tentar implementar a aula de DeepLearning usando a base de dades Census.csv no RStudio versão 2022.02.3 Build 492 aparece a mensagem

    |=========================================================================| 100%

    ERROR: Unexpected HTTP Status code: 412 Precondition Failed (url = http://localhost:54321/3/ModelBuilders/deeplearning)

    water.exceptions.H2OModelBuilderIllegalArgumentException
    [1] “water.exceptions.H2OModelBuilderIllegalArgumentException: Illegal argument(s) for DeepLearning model: DeepLearning_model_R_1656097366399_6. Details: ERRR on field: _response_column: Use numerical, categorical or time variable. Currently used String\n”
    [2] ” water.exceptions.H2OModelBuilderIllegalArgumentException.makeFromBuilder(H2OModelBuilderIllegalArgumentException.java:19)”
    [3] ” hex.ModelBuilder.trainModelOnH2ONode(ModelBuilder.java:334)”
    [4] ” water.api.ModelBuilderHandler.handle(ModelBuilderHandler.java:51)”
    [5] ” water.api.ModelBuilderHandler.handle(ModelBuilderHandler.java:16)”
    [6] ” water.api.RequestServer.serve(RequestServer.java:470)”
    [7] ” water.api.RequestServer.doGeneric(RequestServer.java:301)”
    [8] ” water.api.RequestServer.doPost(RequestServer.java:227)”
    [9] ” javax.servlet.http.HttpServlet.service(HttpServlet.java:707)”
    [10] ” javax.servlet.http.HttpServlet.service(HttpServlet.java:790)”
    [11] ” org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:865)”
    [12] ” org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:535)”
    [13] ” org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)”
    [14] ” org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1317)”
    [15] ” org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)”
    [16] ” org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)”
    [17] ” org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)”
    [18] ” org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1219)”
    [19] ” org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)”
    [20] ” org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)”
    [21] ” org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)”
    [22] ” water.webserver.jetty9.Jetty9ServerAdapter$LoginHandler.handle(Jetty9ServerAdapter.java:130)”
    [23] ” org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)”
    [24] ” org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)”
    [25] ” org.eclipse.jetty.server.Server.handle(Server.java:531)”
    [26] ” org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:352)”
    [27] ” org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)”
    [28] ” org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:281)”
    [29] ” org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102)”
    [30] ” org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)”
    [31] ” org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)”
    [32] ” org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)”
    [33] ” org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)”
    [34] ” org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)”
    [35] ” org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)”
    [36] ” org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:762)”
    [37] ” org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:680)”
    [38] ” java.lang.Thread.run(Unknown Source)”

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

    ERROR MESSAGE:

    Illegal argument(s) for DeepLearning model: DeepLearning_model_R_1656097366399_6. Details: ERRR on field: _response_column: Use numerical, categorical or time variable. Currently used String

     

     

    Resolvi o problema colocando a variável ‘income’ no mesmo formato numérico das variáveis preditivas. Porém ao usar o comando predict retornou o seguinte resultado

    predict
    1 1.0119418
    2 1.7859616
    3 1.7070299
    4 0.9467311
    5 1.5249221
    6 0.9774379

     

    O que significa esses números ?

     

    Aguardo, obgd

    AH

     

    #35731
    Denny Ceccon
    Moderador

    Olá,

    É que, como você converteu a variável income para valores numéricos, o algoritmo está prevendo números reais. Para o processamento correto, você precisa transformar a variável em um fator, basta ativar a linha 16 que está comentada. A diferença para a aula deve ser em função de alguma atualização nas versões mais recentes da biblioteca.

    #35812
    ahand
    Participante

    Pois é Denny, Obgd por responder mas a dúvida permanece … como interpretar o resultado ?

    predict
    1 1.0119418
    2 1.7859616
    3 1.7070299
    4 0.9467311
    5 1.5249221
    6 0.9774379

    aguardo

    Armando

     

    #35813
    Denny Ceccon
    Moderador

    Se você seguir a minha orientação, os valores serão expressos como 0 ou 1, e não haverá mais problema para interpretação. Sem a correção, os resultados não fazem sentido.

    #35819
    ahand
    Participante

    obgd Denny, deu certo.

    Tentei convertei todas como factor e deu certo também.

    Então ficou a dúvida: porque o Jones precisou trabalhar como numérico ?

    abs

    #35820
    Denny Ceccon
    Moderador

    O que eu acho mais provável é por causa de versões das bibliotecas, às vezes os desenvolvedores mudam a forma de usar o algoritmo, eu acho que este foi o caso. Antigamente aceitava numérico, agora não aceita mais.

Visualizando 6 posts - 1 até 6 (de 6 do total)
  • Você deve fazer login para responder a este tópico.