Estou trabalhando com alguns conjuntos de dados grandes usando o pacote gbm em R. Tanto minha matriz preditora quanto meu vetor de resposta são muito escassos (ou seja, a maioria das entradas é zero). Eu esperava construir árvores de decisão usando um algoritmo que aproveitasse essa escassez, como foi feito aqui ). Nesse artigo, como na minha situação, a maioria dos itens possui apenas alguns dos muitos recursos possíveis; portanto, eles foram capazes de evitar muita computação desperdiçada assumindo que seus itens não possuíam um determinado recurso, a menos que os dados dissessem explicitamente o contrário. Minha esperança é que eu possa obter uma aceleração semelhante usando esse tipo de algoritmo (e, em seguida, envolvendo um algoritmo de reforço em torno dele para melhorar minha precisão preditiva).
Como eles não pareciam publicar seu código, fiquei pensando se havia algum pacote ou biblioteca de código aberto (em qualquer idioma) otimizados para esse caso. Idealmente, eu gostaria de algo que pudesse levar uma matriz esparsa diretamente do Matrix
pacote de R , mas eu pegarei o que conseguir.
Eu olhei em volta e parece que esse tipo de coisa deveria estar por aí:
Os químicos parecem se deparar bastante com essa questão (o artigo que eu listei acima foi sobre aprender a encontrar novos compostos de drogas), mas as implementações que eu pude encontrar eram proprietárias ou altamente especializadas em análises químicas. É possível que um deles possa ser re-proposto, no entanto.
A classificação de documentos também parece ser uma área em que é útil aprender com espaços esparsos de recursos (a maioria dos documentos não contém muitas palavras). Por exemplo, há uma referência oblíqua a uma implementação esparsa do C4.5 (um algoritmo semelhante ao CART) neste documento , mas nenhum código.
De acordo com a lista de discussão , o WEKA pode aceitar dados esparsos, mas, diferentemente do método descrito no artigo acima, o WEKA não é otimizado para realmente tirar proveito dele em termos de evitar ciclos de CPU desperdiçados.
Desde já, obrigado!
glmnet
e e1071::svm
tanto apoio escassa Matrix
objetos. GAMboost
e GLMboost
(do pacote GAMboost
) também pode.