Atualmente trabalhando no Octave, mas devido à documentação insuficiente, o progresso é muito lento.
Qual idioma é fácil de aprender e usar, e bem documentado para resolver problemas de aprendizado de máquina? Estou procurando um protótipo em um pequeno conjunto de dados (milhares de exemplos), para que a velocidade não seja importante.
EDIT: Estou desenvolvendo um mecanismo de recomendação. Portanto, estou interessado em usar regressão linear regularizada, redes neurais, SVN ou filtragem colaborativa.
Respostas:
Se você quiser usar algo fora da caixa, o Weka pode ser um ótimo ponto de partida. Não há necessidade de programar nada. Você importa seus dados, visualiza-os e brinca com modelos diferentes.
O próximo da cadeia seria R. Existe alguma curva de aprendizado associada - especialmente quando os dados são inseridos nas estruturas de dados do R, mas depois que você supera isso, você tem toneladas de bibliotecas que oferecem todos os recursos de aprendizado de máquina sem muito esforço.
Em seguida, seria a programação manual dos algoritmos de aprendizado de máquina. Como você já está usando o Octave e está procurando alternativas, talvez o que você queira não seja entregar algoritmos de código em outro sistema, mas apenas usar as bibliotecas escritas por outras pessoas.
Se você seguir o caminho R, poderá achar o livro de Luis Torgo (Mineração de Dados com R: Aprendendo com Estudos de Caso) muito útil (divulgação: sem afiliação). Ele descreve estudos de caso detalhados que você pode adaptar ao seu problema.
fonte
Você pode obter melhores respostas se especificar os algoritmos específicos nos quais está interessado. Eu uso R para esse tipo de coisa (eu uso econometria de séries temporais, porém, não aprendizado de máquina); você pode ver a funcionalidade existente aqui:
http://cran.r-project.org/web/views/MachineLearning.html
e há código R para implementar a análise nos elementos de aprendizagem estatística de Hastie, Tibshirani e Friedman :
http://www-stat.stanford.edu/~tibs/ElemStatLearn/
O sistema de empacotamento da R é ótimo e incentiva as pessoas a documentar seu código, e é de código aberto para que você possa sempre analisar a implementação. Não uso o Matlab há alguns anos e não o uso para muito aprendizado de máquina - suas caixas de ferramentas geralmente são bem documentadas, mas podem ser caras, mas o código contribuído pelo usuário será tão mal documentado quanto qualquer outro.
fonte
Em seu curso on-line de aprendizado de máquina, Andrew Ng sugere o uso do Octave / Matlab.
Eu recomendo que você se inscreva na próxima edição deste curso: é realmente útil e você aprenderá muitas coisas sobre o Octave e sobre os diferentes algoritmos de aprendizado de máquina.
EDIT 1 : Concordo com outras pessoas que preferem trabalhar em R. No entanto, ao resolver os problemas de aprendizado de máquina, a maioria dos seus cálculos será em forma de matriz e, como apontado pelas linguagens @Wayne, Matlab ou Octave, é muito popular por causa de seu poder. Você pode dar uma olhada nas soluções para os exercícios do curso de aprendizado de máquina propostos por outros alunos; certamente você pode aprender algumas coisas com eles:
Gkokaisel Github
Merwan Github
fonte
t(A) %*% B
, seja menos intuitiva do que no Matlab.O scikit-learn (agora
sklearn
) deve atender a vários dos critérios que você descreveu (velocidade, classes bem projetadas para manipulação de dados, modelos e resultados), incluindo aplicativos direcionados (regressão penalizada L1 / L2, SVM, etc.). Ele vem com um rico conjunto de documentação e muitos exemplos . Veja também sua descrição em um artigo publicado no JMLR.Uma estrutura alternativa no Python é a Orange , que pode ser usada através de uma GUI suave ou diretamente na linha de comando. Para filtragem colaborativa, pyrsvd pode ser interessante, mas nunca tentei. No entanto, o Apache Mahout certamente pode ser usado para filtragem colaborativa .
fonte
Se você se referir a um protótipo industrial (ou seja, algo que é feito para ser usado por pessoas reais e não para pesquisa pura), o python é, no momento, o único caminho a percorrer.
Se você usa Matlab, Octave ou R, obtém um ambiente fácil de usar para a pesquisa de ML, mas será um pesadelo colocar o modelo em funcionamento com uma interface de usuário ou com um serviço da Web.
Em python, temos a sorte de ter um extenso ecossistema científico ( sklearn para ML, pandas para manipulação de dados, matplotlib / seaborn para visualização) e um ecossistema de aplicativos (pense no django e sua estrutura restante ).
Python é uma linguagem fácil de aprender. No futuro, espero que o ecossistema Javascript se torne cientificamente sólido como o python, mas, apesar de alguns ótimos projetos, não vejo isso em breve.
Não se embrulhe em uma caixa, use uma linguagem geral!
fonte