Estou procurando fazer uma classificação nos meus dados de texto. Tenho 300 classes
200 documentos de treinamento por turma (mais ou menos 60000 documents in total
) e é provável que isso resulte em dados dimensionais muito altos (podemos estar olhando além das dimensões de 1 milhão ).
Gostaria de executar as seguintes etapas no pipeline (apenas para lhe dar uma idéia de quais são meus requisitos):
- Convertendo cada documento para caracterizar vetor (
tf-idf
ouvector space model
) Feature selection
(deMutual Information
preferência, ou qualquer outro padrão)- Treinar o classificador (
SVM
,Naive Bayes
,Logistic Regression
ouRandom Forest
) - Prevendo dados não vistos com base no modelo do classificador treinado.
Portanto, a pergunta é quais ferramentas / estrutura eu uso para lidar com esses dados de alta dimensão? Estou ciente dos suspeitos do costume (R, WEKA ...), mas no que diz respeito ao meu conhecimento (posso estar errado), possivelmente nenhum deles pode lidar com dados tão grandes. Existe alguma outra ferramenta disponível para venda?
Se eu tiver que paralelizar, devo olhar para o Apache Mahout ? Parece que ainda não fornece a funcionalidade necessária.
Agradecemos antecipadamente a todos.
Atualização: eu procurei neste site , na lista de discussão R e na internet em geral. Parece-me que os seguintes problemas podem surgir na minha situação:
(1) O pré-processamento dos meus dados usando o R ( em particular o pacote tm ) pode ser impraticável , pois tm
será proibitivamente lento.
(2) Como eu precisarei usar um conjunto de pacotes R (pré-processamento, matrizes esparsas, classificadores etc.), a interoperabilidade entre os pacotes pode se tornar um problema, e posso incorrer em uma sobrecarga adicional na conversão de dados de um formato para outro . Por exemplo, se eu fizer meu pré-processamento usando tm
(ou uma ferramenta externa como WEKA), precisarei descobrir uma maneira de converter esses dados em um formato que as bibliotecas HPC no R possam ler. E, novamente, não está claro para mim se os pacotes classificadores receberiam diretamente os dados, conforme fornecidos pelas bibliotecas HPC.
Estou no caminho certo? E mais importante, estou fazendo sentido?
foreach
biblioteca para escrever código paralelo em R. Isso funciona especialmente bem em conjunto com florestas aleatórias, que são inerentemente fáceis de paralelizar.