Bibliothèques d'apprentissage automatique pour Ruby

14

Existe-t-il des bibliothèques d'apprentissage automatique pour Ruby qui sont relativement complètes (y compris une grande variété d'algorithmes pour l'apprentissage supervisé et non supervisé), testées de manière robuste et bien documentées? J'adore scikit-learn de Python pour sa documentation incroyable, mais un client préfère écrire le code dans Ruby car c'est ce qu'il connaît.

Idéalement, je recherche une bibliothèque ou un ensemble de bibliothèques qui, comme scikitet numpy, peuvent implémenter une grande variété de structures de données comme des matrices clairsemées, ainsi que des apprenants.

Quelques exemples de choses que nous devrons faire sont la classification binaire à l'aide de SVM et l'implémentation de modèles de sacs de mots que nous espérons concaténer avec des données numériques arbitraires, comme décrit dans ce post StackOverflow .

the911s
la source
Je serais intéressé de savoir où cela se situe également, car actuellement je me sens obligé d'apprendre Python, R et Octave, juste pour avoir accès à des outils pour un passe-temps (alors que je connais Ruby pour des raisons professionnelles). Je n'en sais pas assez pour suggérer une réponse, mais je connais sciruby.com depuis un certain temps. Mon instinct est qu'il n'est pas encore prêt
Neil Slater
Oui, nous avons jeté un coup d'œil à sciruby, et bien qu'il soit joli, il semble limité à fournir des structures de données et des opérations d'algèbre linéaire. Si quelqu'un devait construire une bibliothèque ML unifiée pour Ruby, ce serait probablement une excellente base pour cela.
911

Réponses:

8

Je vais continuer et poster une réponse pour l'instant; si quelqu'un a quelque chose de mieux, j'accepterai le leur.

À ce stade, l'option la plus puissante semble être d'accéder à WEKA à l'aide de jRuby. Nous avons passé hier à récurer le net, et cette combinaison a même été utilisée par une conférence à RailsConf 2012 , donc je suppose que s'il y avait un package comparable de rubis pur, ils l'auraient utilisé.

Notez que si vous savez exactement ce dont vous avez besoin, il existe de nombreuses bibliothèques individuelles qui enveloppent des packages autonomes comme libsvm ou réimplémentent certains algorithmes individuels comme Naive Bayes en Ruby pur et vous épargneront d'utiliser jRuby.

Mais pour une bibliothèque polyvalente, WEKA et jRuby semblent être le meilleur pari en ce moment.

the911s
la source