Apprentissage automatique Python avec démos interactives Jupyter

image


Bonjour lecteurs!


J'ai récemment lancé le référentiel Homemade Machine Learning , qui contient des exemples d'algorithmes et d'approches populaires d'apprentissage automatique, tels que la régression linéaire, la régression logistique, la méthode K-means et le réseau neuronal (perceptron multicouche). Chaque algorithme contient des pages de démonstration interactives lancées dans Jupyter NBViewer-e ou Binder-e. Ainsi, tout le monde a la possibilité de modifier les données d'entraînement, les paramètres d'entraînement et de voir immédiatement le résultat de l'entraînement, de la visualisation et de la prévision du modèle dans son navigateur sans installer Jupyter localement.


Le but de ce référentiel est d'implémenter des algorithmes presque à partir de zéro, afin d'avoir une compréhension plus détaillée des modèles mathématiques qui se cachent derrière chacun des algorithmes. Les principales bibliothèques utilisées étaient NumPy et Pandas . Ces bibliothèques sont utilisées pour des opérations efficaces sur les matrices, ainsi que pour le chargement et l'analyse des données CSV. Dans les pages de démonstration pour tracer des graphiques et visualiser les données d'entraînement, les bibliothèques Matplotlib et Plotly sont également utilisées. Dans le cas de la régression logistique, la bibliothèque SciPy est utilisée pour minimiser la fonction de perte, mais dans d'autres cas, la descente de gradient est implémentée en NumPy / Python pur. L'utilisation de bibliothèques comme PyTorch ou TensorFlow est évitée en raison de l'objectif pédagogique du référentiel.


Pour le moment, les algorithmes suivants sont implémentés dans le référentiel ...


Régression. Régression linéaire.


Dans les problèmes associés à la régression, nous essayons de prédire le nombre réel en fonction des données entrantes. En fait, nous construisons un plan ligne / plan / n dimensions le long des données d'apprentissage afin de pouvoir faire une prédiction pour les données d'entrée qui ne sont pas dans l'ensemble d'apprentissage. Cela se produit, par exemple, si nous voulons prédire le coût d'un appartement de 2 pièces, au centre de N, au 7ème étage.



Classification. Régression logistique.


Dans les problèmes liés à la classification, nous divisons les données en classes en fonction des paramètres de ces données. Un exemple de tâche de classification est la reconnaissance du spam. En fonction du texte de la lettre (données entrantes), nous attribuons chaque lettre à l'une des deux classes ("spam" ou "non spam").



Regroupement Méthode K-means.


Dans les tâches de clustering, nous divisons nos données en clusters que nous ne connaissons pas à l'avance. Ces algorithmes peuvent être utilisés pour la segmentation du marché, l'analyse des réseaux sociaux et pas seulement les réseaux.



Réseaux de neurones. Perceptron multicouche (MLP).


Les réseaux de neurones ne sont probablement pas un algorithme, mais un «modèle» ou un «cadre» pour organiser différents algorithmes d'apprentissage automatique en un seul système pour une analyse plus approfondie des données d'entrée complexes.



Recherche d'anomalies à l'aide de la distribution gaussienne


Dans les problèmes liés à la recherche d'anomalies, nous essayons d'isoler les instances de données qui semblent «suspectes» par rapport à la plupart des autres instances. Par exemple, la définition des transactions atypiques (suspectes) par carte de crédit.





J'espère que vous trouverez le référentiel utile, soit en expérimentant des démonstrations de chaque algorithme, soit en lisant les modèles mathématiques derrière eux, soit en analysant les détails d'implémentation de chacun d'eux.


Codage réussi!

Source: https://habr.com/ru/post/fr433886/


All Articles