web-dev-qa-db-fra.com

Existe-t-il un package recommandé pour l'apprentissage automatique en Python?

Existe-t-il un package recommandé pour l'apprentissage automatique en Python?

J'ai une expérience antérieure dans la mise en œuvre d'une variété d'algorithmes d'apprentissage automatique et de statistiques en C++ et MATLAB , mais ayant fait un peu de travail dans Python I suis curieux de connaître les packages disponibles pour Python.

86
Ori Folger

AFAIK, Orange peut être le meilleur choix pour le moment.
PyML est bon aussi.
PyMC pour l'estimation bayésienne.
et, il y a un livre "Machine Learning: An Algorithmic Perspective", Il y a beaucoup d'exemples de code Python dans le livre , peut-être que c'est mérite d'être lu.
et il y a un article de blog: Classification Pragmatique avec Python .
Juste mes deux cents.

49
sunqiang

Il y a aussi scikit-learn (BSD, avec seulement des dépendances sur numpy & scipy). Il comprend divers algorithmes d'apprentissage supervisé tels que:

  • SVM basé sur libsvm et linéaire avec des liaisons scipy.sparse pour des jeux de données à fonctionnalités étendues
  • méthodes bayésiennes
  • HMM
  • Méthodes de régression régularisées L1 et L1 + L2 alias modèles Lasso et Elastic Net implémentées avec des algorithmes tels que LARS et descente de coordonnées

Il propose également des algorithmes de clustering non supervisés tels que:

  • kmeans ++
  • décalage
  • propagation d'affinité
  • regroupement spectral

Et aussi d'autres outils tels que:

  • extracteurs de fonctionnalités pour le contenu texte (ngrammes de jetons et de caractères + vecteur de hachage)
  • sélections de fonctionnalités univariées
  • un simple outil de pipeline
  • nombreuses implémentations de stratégies de validation croisée
  • évaluation et traçage des métriques de performance (courbe ROC, AUC, matrice de confusion, ...)
  • un utilitaire de recherche de grille pour effectuer le réglage d'hyper-paramètres en utilisant la validation croisée parallèle
  • intégration avec joblib pour mettre en cache des résultats partiels lorsque vous travaillez dans un environnement interactif (par exemple en utilisant ipython)

Chaque implémentation d'algorithme est accompagnée de exemples de programmes démontrant son utilisation sur des données de jouets ou des jeux de données réels.

En outre, le référentiel source officiel est hébergé sur github alors n'hésitez pas à contribuer aux corrections de bogues et à l'amélioration en utilisant la fonction de demande d'extraction régulière pour la révision interactive du code.

103
ogrisel

Un package convivial général est Orange - un peu comme Weka ou RapidMiner, si vous les connaissez.

En dehors de cela, il existe une variété de packages et de boîtes à outils pour diverses tâches. Vous devriez consulter les packages Python listés sur mloss comme point de départ.

12
ars

Vous voudrez peut-être regarder:

http://www.shogun-toolbox.org/ , qui possède des interfaces pour plusieurs langues, y compris python. Il y a aussi http://www.pybrain.org/ , qui est (je crois) une implémentation native des algorithmes ML. J'espère que cela pourra aider.

8
oort

Tutoriels d'apprentissage en profondeur décrire comment développer et former des réseaux de neurones profonds. Le bibliothèque utilisée utilise même le GPU Nvidia si disponible.

6
Ivo Danihelka

Pour les machines à vecteurs de support, jetez un œil à LibSVM qui, entre autres, a une interface Python.

6
Piotr Byzia

J'ai essayé Orange .

C'est puissant, mais si vous parcourez la documentation, vous vous rendrez compte que l'auteur a son propre style fou d'écriture de Python. Son code devient assez cryptique si vous êtes relativement nouveau à Python donc je ne recommanderais pas Orange à moins que vous ne connaissiez Python.

5
4cents
5
sastanin

http://www.pymvpa.org pourrait également fonctionner.

4
Mike

Je ne suis pas sûr que vous appeliez exactement cet apprentissage automatique, mais le package nltk fait une classification de texte de style bayésien. Vous pouvez utiliser des données d'apprentissage et des données de test pour voir qu'elles infèrent des règles sur les données.

3
hughdbrown

Ceci est une excellente liste faite par SciPy, de nombreux packages bien connus Python, entre autres, liés à l'apprentissage automatique: Intelligence artificielle et apprentissage automatique

3
Piotr Byzia

Si vous recherchez un réseau de neurones, python pour fann est assez facile à utiliser et est livrée avec des outils pour former vos réseaux

1
chub

SVMlight est parfois une alternative pratique à LibSVM ! LibSVM est également fantastique, cependant.

1
Kyle.

Jetez un oeil à Modular toolkit for Data Processing (MDP) . Il implémente quelques algorithmes d'apprentissage automatique et de statistiques et il est mature et bien documenté.

1
nikow