


Résumé des bibliothèques d'apprentissage automatique couramment utilisées en Python
Le python est largement utilisé en calcul scientifique : vision par ordinateur, intelligence artificielle, mathématiques, astronomie, etc. Il n’est pas surprenant que cela s’applique également à l’apprentissage automatique.
Cet article répertorie et décrit les outils et bibliothèques d'apprentissage automatique les plus utiles en Python. Dans cette liste, nous n'exigeons pas que ces bibliothèques soient écrites en Python, tant qu'elles disposent d'une interface Python.
Notre intention n'est pas de lister toutes les bibliothèques d'apprentissage automatique en Python (le Python Package Index (PyPI) a renvoyé 139 résultats lors de la recherche de "machine learning"), mais de lister celles que nous savons utiles et bien entretenues. de ceux-là.
De plus, bien que certains modules puissent être utilisés pour une variété de tâches d'apprentissage automatique, nous répertorions uniquement les bibliothèques dont l'objectif principal est l'apprentissage automatique. Par exemple, bien que Scipy1 inclut certains algorithmes de clustering, son objectif principal n’est pas l’apprentissage automatique mais un ensemble complet d’outils de calcul scientifique. Par conséquent, nous excluons Scipy (même si nous l'utilisons aussi !).
Une autre chose à mentionner est que nous évaluerons également ces bibliothèques en fonction de leur intégration avec d'autres bibliothèques de calcul scientifique, car l'apprentissage automatique (supervisé ou non supervisé) fait également partie du système de traitement des données. Si la bibliothèque que vous utilisez ne correspond pas au reste du système informatique, vous passerez beaucoup de temps à créer une couche intermédiaire entre les différentes bibliothèques. Il est important d'avoir une excellente bibliothèque dans votre ensemble d'outils, mais il est tout aussi important que la bibliothèque s'intègre bien aux autres bibliothèques.
Si vous maîtrisez d'autres langages mais souhaitez également utiliser des packages Python, nous décrivons également brièvement comment intégrer Python pour utiliser les bibliothèques répertoriées dans cet article.
Scikit-Learn
Scikit Learn7 est l'outil d'apprentissage automatique que nous utilisons chez CB Insights. Nous l'utilisons pour la classification, la sélection de fonctionnalités, l'extraction de fonctionnalités et l'agrégation.
Ce que nous aimons le plus, c'est qu'il dispose d'une API cohérente et facile à utiliser et fournit de **nombreuses** méthodes d'évaluation, de diagnostic et de validation croisée disponibles immédiatement (cela vous semble familier ? Python Il fournit également la méthode "la batterie est prête"). La cerise sur le gâteau est qu'il utilise des structures de données Scipy sous le capot, ce qui correspond bien au reste de Python qui utilise Scipy, Numpy, Pandas et Matplotlib pour le calcul scientifique.
Donc, si vous souhaitez visualiser les performances de votre classificateur (par exemple, à l'aide d'un tracé de rappel de précision ou d'une courbe des caractéristiques de fonctionnement du récepteur (ROC)), Matplotlib peut vous aider à réaliser des visualisations rapides.
Compte tenu du temps passé à nettoyer et à structurer les données, l'utilisation de cette bibliothèque peut être très pratique car elle peut être étroitement intégrée à d'autres packages de calcul scientifique.
En outre, il contient également des capacités limitées d'extraction de fonctionnalités de traitement du langage naturel, ainsi qu'un sac de mots, tfidf (algorithme Term Frequency Inverse Document Frequency), un prétraitement (mots vides/mots vides, prétraitement personnalisé, analyseur ).
De plus, si vous souhaitez effectuer rapidement différents tests de référence sur de petits ensembles de données (ensembles de données de jouets), son propre module d'ensemble de données fournit des ensembles de données communs et utiles. Vous pouvez également créer vos propres petits ensembles de données basés sur ces ensembles de données afin de pouvoir tester si le modèle répond à vos attentes pour vos propres besoins avant de l'appliquer au monde réel. Pour l'optimisation et l'ajustement des paramètres, il fournit également une recherche par grille et une recherche aléatoire.
Aucune de ces fonctionnalités ne serait possible sans un fort soutien de la communauté, ou si elle n'est pas bien entretenue. Nous attendons avec impatience sa première version stable.
Statsmodels
Statsmodels est une autre bibliothèque puissante axée sur les modèles statistiques, principalement utilisés pour l'analyse prédictive et exploratoire. Si vous souhaitez ajuster des modèles linéaires, effectuer une analyse statistique ou une modélisation prédictive, Statsmodels est une solution idéale. Les tests statistiques qu'il propose sont assez complets et couvrent la plupart des tâches de vérification.
Si vous êtes un utilisateur R ou S, il fournit également la syntaxe R pour certains modèles statistiques. Son modèle accepte également les tableaux Numpy et les trames de données Pandas, faisant des structures de données intermédiaires une chose du passé
PyMC
PyMC est un outil pour réaliser des **courbes de Bayes** ! Il contient des outils de diagnostic pour les modèles bayésiens, les distributions statistiques et la convergence des modèles, ainsi que certains modèles hiérarchiques. Si vous souhaitez effectuer une analyse bayésienne, vous devriez la vérifier.
Shogun
Shogun1 est une boîte à outils d'apprentissage automatique axée sur les machines à vecteurs de support (SVM), écrite en C++. Il est en cours de développement et de maintenance actifs, fournit une interface Python et constitue également l'interface la mieux documentée. Cependant, par rapport à Scikit-learn, nous avons trouvé son API plus difficile à utiliser. De plus, il n’existe pas beaucoup d’algorithmes de diagnostic et d’évaluation prêts à l’emploi. Cependant, la rapidité constitue un gros avantage.
Gensim
Gensim est défini comme une « modélisation de sujets pour les humains ». Comme décrit sur sa page d'accueil, il se concentre sur l'allocation latente de Dirichlet (LDA) et ses variantes. Contrairement à d’autres packages, il prend en charge le traitement du langage naturel et peut plus facilement combiner le NLP et d’autres algorithmes d’apprentissage automatique.
Si votre domaine est en PNL et que vous souhaitez faire de l'agrégation et une classification de base, vous pouvez y jeter un œil. Actuellement, ils introduisent la représentation textuelle de Google word2vec basée sur le réseau neuronal récurrent. Cette bibliothèque est écrite exclusivement en Python.
Orange
Orange est le seul à disposer d'une interface utilisateur graphique (GUI) parmi toutes les bibliothèques répertoriées dans cet article. Il est assez complet pour les méthodes de classification, d'agrégation et de sélection de fonctionnalités, ainsi que pour certaines méthodes de validation croisée. Il est meilleur que Scikit-learn sous certains aspects (méthode de classification, certaines capacités de prétraitement), mais son adaptabilité à d'autres systèmes de calcul scientifique (Numpy, Scipy, Matplotlib, Pandas) n'est pas aussi bonne que Scikit-learn.
Cependant, inclure une interface graphique est un avantage très important. Vous pouvez visualiser les résultats des méthodes de validation croisée, de modèles et de sélection de fonctionnalités (certaines fonctionnalités nécessitent l'installation de Graphviz). Pour la plupart des algorithmes, Orange possède ses propres structures de données, vous devez donc regrouper les données dans une structure de données compatible avec Orange, ce qui rend sa courbe d'apprentissage plus raide.
PyMVPA
PyMVPA est une autre bibliothèque d'apprentissage statistique, l'API est très similaire à Scikit-learn. Contient des outils de validation croisée et de diagnostic, mais n'est pas aussi complet que Scikit-learn.
Deep Learning
Bien que l'apprentissage profond soit une sous-section de l'apprentissage automatique, la raison pour laquelle nous avons créé une section distincte ici est qu'il a récemment attiré beaucoup d'attention de la part des services d'acquisition de talents de Google et Facebook.
Theano
Theano est la bibliothèque d'apprentissage profond la plus mature. Il fournit une bonne structure de données (tenseur) pour représenter les couches d'un réseau neuronal, ce qui est très efficace pour l'algèbre linéaire et est similaire au tableau de Numpy. Il convient de noter que son API peut ne pas être très intuitive et que la courbe d'apprentissage de l'utilisateur sera élevée. Il existe de nombreuses bibliothèques basées sur Theano qui profitent de ses structures de données. Il prend également en charge la programmation GPU prête à l'emploi.
PyLearn
Il existe une autre bibliothèque basée sur Theano, PyLearn2, qui introduit la modularité et la configurabilité à Theano. Vous pouvez créer des réseaux de neurones via différents fichiers de configuration, essayez ceci Différents paramètres seraient plus faciles. On peut dire que si les paramètres et propriétés du réseau neuronal sont séparés en fichiers de configuration, sa modularité sera plus puissante.
Decaf
Decaf est une bibliothèque d'apprentissage en profondeur récemment publiée par l'UC Berkeley. Elle a été testée dans le cadre du défi de classification Imagenet et a constaté que sa mise en œuvre de réseau neuronal est très avancée (état de la technique).
Nolearn
Si vous souhaitez utiliser l'excellente API de la bibliothèque Scikit-learn en apprentissage profond, Nolearn qui encapsule Decaf vous facilitera l'utilisation. Il s'agit d'un wrapper autour de Decaf, compatible (principalement) avec Scikit-learn, ce qui rend Decaf encore plus incroyable.
OverFeat
OverFeat est le récent vainqueur de Cats vs. Dogs (kaggle challenge) 4. Il est écrit en C++ et comprend également un wrapper Python (avec Matlab et Lua). Il utilise le GPU via la bibliothèque Torch, donc c'est rapide. A également remporté le défi de détection et de localisation de classification ImageNet. Si votre domaine est la vision par ordinateur, vous voudrez peut-être y jeter un œil.
Hebel
Hebel est une autre bibliothèque de réseaux neuronaux avec prise en charge GPU disponible immédiatement. Vous pouvez déterminer les propriétés du réseau neuronal via des fichiers YAML (similaires à Pylearn2), offrant un moyen convivial de séparer le réseau de niveau divin du code et d'exécuter le modèle rapidement. Comme elle n’a été développée que sur une courte période, la documentation manque de profondeur et d’étendue. Quant au modèle de réseau de neurones, il est également limité car il ne prend en charge qu'un seul modèle de réseau de neurones (feed-forward).
Cependant, elle est écrite en Python pur et sera une bibliothèque très conviviale car elle contient de nombreuses fonctions pratiques, telles que des planificateurs et des moniteurs, que nous n'avons pas trouvées dans d'autres bibliothèques.
Neurolab
NeuroLab est une autre bibliothèque de réseaux neuronaux conviviale pour les API (similaire à Matlabapi). Contrairement à d'autres bibliothèques, elle contient différentes variantes d'implémentations de réseaux neuronaux récurrents (RNN). Si vous souhaitez utiliser RNN, cette bibliothèque est l'un des meilleurs choix parmi les API similaires.
Intégration avec d'autres langages
Vous ne connaissez pas Python mais êtes bon dans d'autres langages Ne désespérez pas L'un des points forts de Python (entre autres) c'est qu'il est ? un langage de colle parfait que vous pouvez utiliser. Utilisez votre propre langage de programmation couramment utilisé pour accéder à ces bibliothèques via Python. Les packages suivants pour différents langages de programmation peuvent être utilisés pour combiner d'autres langages avec Python :
R -> RPython
Matlab -> - > Jython
Lua -> Lunatic Python
Julia -> PyCall.jl
Bibliothèques inactives
Ces bibliothèques ne sont pas disponibles pour plus d'un an Toutes les mises à jour publiées, nous les répertorions car vous pourriez les trouver utiles, mais il est peu probable que ces bibliothèques reçoivent des corrections de bogues, en particulier des améliorations futures.
MDP2MlPy
FFnet
PyBrain
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Chargement des fichiers de cornichons dans Python 3.6 Rapport de l'environnement Erreur: modulenotFoundError: NomoduLenamed ...

"Debianstrings" n'est pas un terme standard, et sa signification spécifique n'est pas encore claire. Cet article ne peut pas commenter directement la compatibilité de son navigateur. Cependant, si "DebianStrings" fait référence à une application Web exécutée sur un système Debian, sa compatibilité du navigateur dépend de l'architecture technique de l'application elle-même. La plupart des applications Web modernes se sont engagées à compatibilité entre les navigateurs. Cela repose sur les normes Web suivantes et l'utilisation de technologies frontales bien compatibles (telles que HTML, CSS, JavaScript) et les technologies back-end (telles que PHP, Python, Node.js, etc.). Pour s'assurer que l'application est compatible avec plusieurs navigateurs, les développeurs doivent souvent effectuer des tests croisés et utiliser la réactivité

La modification du contenu XML nécessite une programmation, car elle nécessite une recherche précise des nœuds cibles pour ajouter, supprimer, modifier et vérifier. Le langage de programmation dispose de bibliothèques correspondantes pour traiter XML et fournit des API pour effectuer des opérations sûres, efficaces et contrôlables comme les bases de données de fonctionnement.

La vitesse du XML mobile à PDF dépend des facteurs suivants: la complexité de la structure XML. Méthode de conversion de configuration du matériel mobile (bibliothèque, algorithme) Méthodes d'optimisation de la qualité du code (sélectionnez des bibliothèques efficaces, optimiser les algorithmes, les données de cache et utiliser le multi-threading). Dans l'ensemble, il n'y a pas de réponse absolue et elle doit être optimisée en fonction de la situation spécifique.

Pour les petits fichiers XML, vous pouvez remplacer directement le contenu d'annotation par un éditeur de texte; Pour les fichiers volumineux, il est recommandé d'utiliser l'analyseur XML pour le modifier pour garantir l'efficacité et la précision. Soyez prudent lors de la suppression des commentaires XML, le maintien des commentaires aide généralement à coder la compréhension et la maintenance. Les conseils avancés fournissent un exemple de code Python pour modifier les commentaires à l'aide de l'analyseur XML, mais l'implémentation spécifique doit être ajustée en fonction de la bibliothèque XML utilisée. Faites attention aux problèmes d'encodage lors de la modification des fichiers XML. Il est recommandé d'utiliser le codage UTF-8 et de spécifier le format de codage.

Une application qui convertit le XML directement en PDF ne peut être trouvée car ce sont deux formats fondamentalement différents. XML est utilisé pour stocker des données, tandis que PDF est utilisé pour afficher des documents. Pour terminer la transformation, vous pouvez utiliser des langages de programmation et des bibliothèques telles que Python et ReportLab pour analyser les données XML et générer des documents PDF.

Problèmes de définition de l'énumération constante de la chaîne à Protobuf Lorsque vous utilisez Protobuf, vous rencontrez souvent des situations où vous devez associer le type d'énumération aux constantes de chaîne ...

Pour générer des images via XML, vous devez utiliser des bibliothèques de graphiques (telles que Pillow et JFreechart) comme ponts pour générer des images basées sur des métadonnées (taille, couleur) dans XML. La clé pour contrôler la taille de l'image est d'ajuster les valeurs de & lt; largeur & gt; et & lt; height & gt; Tags dans XML. Cependant, dans les applications pratiques, la complexité de la structure XML, la finesse du dessin de graphiques, la vitesse de la génération d'images et la consommation de mémoire et la sélection des formats d'image ont tous un impact sur la taille de l'image générée. Par conséquent, il est nécessaire d'avoir une compréhension approfondie de la structure XML, compétent dans la bibliothèque graphique, et de prendre en compte des facteurs tels que les algorithmes d'optimisation et la sélection du format d'image.
