Modelo Random Forest em ambiente de produção.

Pessoal, Usei o algoritmo randomForest do pacote http://cran.r-project.org/web/packages/randomForest/randomForest.pdf para criar um classificador com 80% de acurácia. Quero utilizar este modelo (classificador) em ambiente de produção, integrado a uma aplicação escrita em Ruby. Para implementar a integração eu já fiz alguns testes com: 1) RApache: http://rapache.net/ 2) Rserver: http://www.rforge.net/Rserve/doc.html 3) RinRuby: https://sites.google.com/a/ddahl.org/rinruby-users/ 4) RScript: http://stat.ethz.ch/R-manual/R-patched/library/utils/html/Rscript.html 5) R com a opção "-e EXPR" via bash do unix. 6) Exportar o modelo usando PMML ( http://journal.r-project.org/archive/2009-1/RJournal_2009-1_Guazzelli+et+al....) e importá-lo no ruby. No entanto, nenhuma das opções é rápida e robusta o sufiente para processar 4e+09 requisições em no máximo 4 horas. Aliás, se eu fosse fazer um ranking das opções, eu diria que em primeiro lugar está "R com a opção "-e EXPR" via bash do unix", seguido por RScript, depois RinRuby e depois todas as outras alternativas. A parte em Ruby já foi desenvolvida para processar paralelamente em várias máquinas. No entanto, o gargalo da aplicação está sendo a execução do modelo em R. Alguém conhece alguma forma para converter um modelo preditivo em R (no caso, randomForest) para uma estrutura em C ou Ruby? Valeu! -- Fabrício J. Barth http://fbarth.net.br http://blog.fbarth.net.br http://twitter.com/fbarth http://www.flickr.com/fbarth

Talvez seja mais fácil vc implementar em python, e depois chamar o python do ruby? Ou então, usa o r só pra privatização mesmo e reimplementa no ruby. Abçs M Em 19/08/2013 13:35, "Fabrício Barth" <fabricio.barth@gmail.com> escreveu:
Pessoal,
Usei o algoritmo randomForest do pacote http://cran.r-project.org/web/packages/randomForest/randomForest.pdf para criar um classificador com 80% de acurácia. Quero utilizar este modelo (classificador) em ambiente de produção, integrado a uma aplicação escrita em Ruby.
Para implementar a integração eu já fiz alguns testes com:
1) RApache: http://rapache.net/ 2) Rserver: http://www.rforge.net/Rserve/doc.html 3) RinRuby: https://sites.google.com/a/ddahl.org/rinruby-users/ 4) RScript: http://stat.ethz.ch/R-manual/R-patched/library/utils/html/Rscript.html 5) R com a opção "-e EXPR" via bash do unix. 6) Exportar o modelo usando PMML ( http://journal.r-project.org/archive/2009-1/RJournal_2009-1_Guazzelli+et+al....) e importá-lo no ruby.
No entanto, nenhuma das opções é rápida e robusta o sufiente para processar 4e+09 requisições em no máximo 4 horas. Aliás, se eu fosse fazer um ranking das opções, eu diria que em primeiro lugar está "R com a opção "-e EXPR" via bash do unix", seguido por RScript, depois RinRuby e depois todas as outras alternativas.
A parte em Ruby já foi desenvolvida para processar paralelamente em várias máquinas. No entanto, o gargalo da aplicação está sendo a execução do modelo em R.
Alguém conhece alguma forma para converter um modelo preditivo em R (no caso, randomForest) para uma estrutura em C ou Ruby?
Valeu! -- Fabrício J. Barth http://fbarth.net.br http://blog.fbarth.net.br http://twitter.com/fbarth http://www.flickr.com/fbarth
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.

Escrever um componente que lê a estrutura de árvores do randomForest e cria uma estrutura em ruby/python é factível. No entanto, eu queria ter certeza que não existam componentes que façam isto antes de começar a implementação de um componente novo. Manoel, você conhece algo que converte um modelo em R para python? Valeu! 2013/8/19 Manoel Galdino <mcz.fea@gmail.com>
Talvez seja mais fácil vc implementar em python, e depois chamar o python do ruby?
Ou então, usa o r só pra privatização mesmo e reimplementa no ruby.
Abçs M Em 19/08/2013 13:35, "Fabrício Barth" <fabricio.barth@gmail.com> escreveu:
Pessoal,
Usei o algoritmo randomForest do pacote http://cran.r-project.org/web/packages/randomForest/randomForest.pdf para criar um classificador com 80% de acurácia. Quero utilizar este modelo (classificador) em ambiente de produção, integrado a uma aplicação escrita em Ruby.
Para implementar a integração eu já fiz alguns testes com:
1) RApache: http://rapache.net/ 2) Rserver: http://www.rforge.net/Rserve/doc.html 3) RinRuby: https://sites.google.com/a/ddahl.org/rinruby-users/ 4) RScript: http://stat.ethz.ch/R-manual/R-patched/library/utils/html/Rscript.html 5) R com a opção "-e EXPR" via bash do unix. 6) Exportar o modelo usando PMML ( http://journal.r-project.org/archive/2009-1/RJournal_2009-1_Guazzelli+et+al....) e importá-lo no ruby.
No entanto, nenhuma das opções é rápida e robusta o sufiente para processar 4e+09 requisições em no máximo 4 horas. Aliás, se eu fosse fazer um ranking das opções, eu diria que em primeiro lugar está "R com a opção "-e EXPR" via bash do unix", seguido por RScript, depois RinRuby e depois todas as outras alternativas.
A parte em Ruby já foi desenvolvida para processar paralelamente em várias máquinas. No entanto, o gargalo da aplicação está sendo a execução do modelo em R.
Alguém conhece alguma forma para converter um modelo preditivo em R (no caso, randomForest) para uma estrutura em C ou Ruby?
Valeu! -- Fabrício J. Barth http://fbarth.net.br http://blog.fbarth.net.br http://twitter.com/fbarth http://www.flickr.com/fbarth
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
-- Fabrício J. Barth http://fbarth.net.br http://blog.fbarth.net.br http://twitter.com/fbarth http://www.flickr.com/fbarth

Fabrício, O randomForest tem suas principais funções implementadas em C. É possível um programa standalone em C para chamar essas funções. Veja o código fonte do pacote para isso. Veja também classes em C++ feitas para funções C desse pacote em https://code.google.com/p/randomforest-matlab/source/browse/trunk/RF_Class_C... emboram sejam para serem chamadas em matlab, fica a idéia. Att. Elias. On 19/08/13 20:10, Fabrício Barth wrote:
Escrever um componente que lê a estrutura de árvores do randomForest e cria uma estrutura em ruby/python é factível. No entanto, eu queria ter certeza que não existam componentes que façam isto antes de começar a implementação de um componente novo.
Manoel, você conhece algo que converte um modelo em R para python?
Valeu!
2013/8/19 Manoel Galdino <mcz.fea@gmail.com <mailto:mcz.fea@gmail.com>>
Talvez seja mais fácil vc implementar em python, e depois chamar o python do ruby?
Ou então, usa o r só pra privatização mesmo e reimplementa no ruby.
Abçs M
Em 19/08/2013 13:35, "Fabrício Barth" <fabricio.barth@gmail.com <mailto:fabricio.barth@gmail.com>> escreveu:
Pessoal,
Usei o algoritmo randomForest do pacote http://cran.r-project.org/web/packages/randomForest/randomForest.pdf para criar um classificador com 80% de acurácia. Quero utilizar este modelo (classificador) em ambiente de produção, integrado a uma aplicação escrita em Ruby.
Para implementar a integração eu já fiz alguns testes com:
1) RApache: http://rapache.net/ 2) Rserver: http://www.rforge.net/Rserve/doc.html 3) RinRuby: https://sites.google.com/a/ddahl.org/rinruby-users/ 4) RScript: http://stat.ethz.ch/R-manual/R-patched/library/utils/html/Rscript.html 5) R com a opção "-e EXPR" via bash do unix. 6) Exportar o modelo usando PMML (http://journal.r-project.org/archive/2009-1/RJournal_2009-1_Guazzelli+et+al....) e importá-lo no ruby.
No entanto, nenhuma das opções é rápida e robusta o sufiente para processar 4e+09 requisições em no máximo 4 horas. Aliás, se eu fosse fazer um ranking das opções, eu diria que em primeiro lugar está "R com a opção "-e EXPR" via bash do unix", seguido por RScript, depois RinRuby e depois todas as outras alternativas.
A parte em Ruby já foi desenvolvida para processar paralelamente em várias máquinas. No entanto, o gargalo da aplicação está sendo a execução do modelo em R.
Alguém conhece alguma forma para converter um modelo preditivo em R (no caso, randomForest) para uma estrutura em C ou Ruby?
Valeu! -- Fabrício J. Barth http://fbarth.net.br http://blog.fbarth.net.br http://twitter.com/fbarth http://www.flickr.com/fbarth
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br <mailto:R-br@listas.c3sl.ufpr.br> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br <mailto:R-br@listas.c3sl.ufpr.br> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
-- Fabrício J. Barth http://fbarth.net.br http://blog.fbarth.net.br http://twitter.com/fbarth http://www.flickr.com/fbarth
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
participantes (3)
-
Elias Teixeira Krainski
-
Fabrício Barth
-
Manoel Galdino