Existe uma implementação de floresta aleatória R que funciona bem com dados muito esparsos? Eu tenho milhares ou milhões de variáveis de entrada booleanas, mas apenas centenas ou mais serão VERDADEIRAS para qualquer exemplo.
Sou relativamente novo no R e notei que há um pacote 'Matrix' para lidar com dados esparsos, mas o pacote padrão 'randomForest' parece não reconhecer esse tipo de dados. Se isso importa, os dados de entrada serão produzidos fora de R e importados.
Algum conselho? Também posso usar Weka, Mahout ou outros pacotes.
r
random-forest
sparse
Eryn
fonte
fonte
Respostas:
Não, não há implementação de RF para dados esparsos em R. Parcialmente porque a RF não se encaixa muito bem nesse tipo de problema - ensacamento e seleção subótima de divisões podem desperdiçar a maior parte do insight do modelo em áreas com somente zero.
Tente algum método de kernel ou pense melhor em converter seus dados em uma representação mais exuberante com alguns descritores (ou use algum método de redução de dimensionalidade).
fonte
Na verdade, sim , existe .
É
xgboost
, feito para aumentar o gradiente eXtreme. Atualmente, este é o pacote de escolha para a execução de modelos com matrizes esparsas em R para muitas pessoas, e como o link acima explica, você pode usá-lo para a Random Forest ajustando os parâmetros !fonte
O pacote R "Ranger" deve funcionar.
https://cran.r-project.org/web/packages/ranger/ranger.pdf
Comparado com o randomForest, este pacote é provavelmente a implementação de RF mais rápida que eu já vi. Ele trata variáveis categóricas de maneira nativa.
fonte
Existe um blog chamado Quick-R que deve ajudá-lo com o básico de R.
R trabalha com pacotes. Cada pacote pode fazer algo diferente. Existem pacotes chamados "randomForests" que devem ser exatamente o que você está solicitando.
Esteja ciente de que dados esparsos causarão problemas, independentemente do método que você aplicar. Que eu saiba, é um problema muito aberto e a mineração de dados em geral é mais uma arte do que uma ciência. As florestas aleatórias se saem muito bem no geral, mas nem sempre são o melhor método. Você pode experimentar uma rede neural com muitas camadas, que pode ajudar.
fonte