Maison > Périphériques technologiques > Industrie informatique > Une introduction sur l'apprentissage automatique avec Python

Une introduction sur l'apprentissage automatique avec Python

Christopher Nolan
Libérer: 2025-02-10 15:54:09
original
791 Les gens l'ont consulté

A Primer on Machine Learning with Python

Au cours de la dernière décennie, l'apprentissage automatique est passé des laboratoires de recherche scientifiques aux applications Web et mobiles quotidiennes. L'apprentissage automatique permet à votre application d'effectuer des tâches auparavant difficiles, telles que la détection d'objets et de visages dans les images, de détecter le spam et de haine, et de générer des réponses intelligentes pour les applications de messagerie et de message.

Cependant, la réalisation de l'apprentissage automatique est fondamentalement différente de la programmation classique. Dans cet article, vous apprendrez les bases de l'apprentissage automatique et créera un modèle de base qui peut prédire les espèces de fleurs en fonction des mesures des fleurs.

Points clés

  • L'apprentissage automatique est passé d'un laboratoire de recherche scientifique aux applications Web et mobiles quotidiennes, permettant aux applications d'effectuer des tâches qui étaient auparavant difficiles à programmer.
  • L'apprentissage automatique repose sur l'expérience, entraîne des modèles à travers des exemples, plutôt que de leur fournir des règles. Il existe différentes catégories d'algorithmes d'apprentissage automatique, chacun pouvant résoudre des problèmes spécifiques: l'apprentissage supervisé, l'apprentissage non supervisé et l'apprentissage du renforcement.
  • Python est devenu un langage d'apprentissage automatique populaire en raison de sa simplicité, de sa lisibilité et d'un large écosystème, y compris des bibliothèques et des cadres tels que Scikit-Learn, TensorFlow et Pytorch. Cependant, comprendre les concepts de base de la programmation Python, des bibliothèques telles que Numpy, Pandas et Matplotlib, ainsi que les statistiques et la probabilité est une condition préalable.
  • Le processus de mise en œuvre d'un modèle d'apprentissage automatique comprend la définition de problèmes, la collecte de données, la division de l'ensemble de données en formation et des tests de test, la construction du modèle et l'évaluation de ses performances. Des techniques telles que la validation croisée et le fractionnement des tests de formation, ainsi que des indicateurs tels que la précision, la précision, le rappel et le score F1, peuvent être utilisés pour vérifier les performances du modèle.

Comment fonctionne l'apprentissage automatique?

La programmation classique repose sur des problèmes bien définis qui peuvent être décomposés en différentes classes, fonctions et commandes IF-Else. L'apprentissage automatique, en revanche, repose sur le développement de son comportement en fonction de l'expérience. Au lieu de fournir des règles aux modèles d'apprentissage automatique, vous les entraînez à travers des exemples.

Il existe différentes catégories d'algorithmes d'apprentissage automatique, chacun pouvant résoudre des problèmes spécifiques.

Apprentissage supervisé

L'apprentissage supervisé convient aux questions que vous souhaitez passer des données d'entrée au résultat. Une caractéristique commune de tous les problèmes d'apprentissage supervisé est l'existence d'une situation réelle qui peut être utilisée pour tester le modèle, telles que des images marquées ou des données de vente historiques.

Les modèles d'apprentissage supervisés peuvent résoudre des problèmes de régression ou de classification. Le modèle de régression prédit la quantité (par exemple, la quantité de marchandises vendues ou le prix du stock), tandis que le problème de classification tente de déterminer les catégories de données d'entrée (par exemple, chat / chien / poisson / oiseau, fraude / non-fraude).

La classification d'images, la détection du visage, la prédiction des cours des actions et la prédiction des ventes sont des exemples de problèmes que l'apprentissage supervisé peut résoudre.

Certains algorithmes d'apprentissage supervisés populaires comprennent la régression linéaire et la régression logistique, les machines vectorielles de support, les arbres de décision et les réseaux neuronaux artificiels.

Apprentissage non supervisé

L'apprentissage non supervisé convient aux problèmes où vous avez des données mais pas des résultats, mais à la recherche de modèles. Par exemple, vous voudrez peut-être les regrouper en segments en fonction de votre similitude. C'est ce qu'on appelle le clustering dans l'apprentissage non supervisé. Alternativement, vous voudrez peut-être détecter le trafic de réseau malveillant qui s'écarte des activités normales de votre entreprise. C'est ce qu'on appelle la détection des anomalies, qui est une autre tâche d'apprentissage non supervisée. L'apprentissage non supervisé peut également être utilisé pour la réduction de la dimensionnalité, une technique pour simplifier les tâches d'apprentissage automatique en supprimant les caractéristiques non pertinentes.

Certains algorithmes d'apprentissage non supervisés populaires incluent le clustering K-Mean et l'analyse des composants principaux (PCA).

Apprentissage du renforcement

Le renforcement de l'apprentissage est une branche de l'apprentissage automatique où les agents essaient d'atteindre leurs objectifs en interagissant avec leur environnement. L'apprentissage du renforcement implique des actions, du statut et des récompenses. Les agents d'apprentissage du renforcement non formé commencent par une action aléatoire. Chaque action modifie l'état de l'environnement. Si l'agent se retrouve dans l'état souhaité, il recevra une récompense. L'agent essaie de trouver la séquence des actions et des états qui génèrent le plus de récompenses.

L'apprentissage du renforcement est utilisé dans les systèmes de recommandation, la robotique et les robots de jeu, tels que l'alphago et l'alphastar de Google.

Configuration de l'environnement Python

Dans cet article, nous nous concentrerons sur l'apprentissage supervisé, car c'est la branche la plus populaire de l'apprentissage automatique et ses résultats sont plus faciles à évaluer. Nous utiliserons Python car il dispose de nombreuses fonctionnalités et bibliothèques qui prennent en charge les applications d'apprentissage automatique. Cependant, le concept général peut être appliqué à n'importe quel langage de programmation avec des bibliothèques similaires.

(Si vous n'êtes pas familier avec Python, FreeCodeCamp offre un excellent cours intensif pour vous aider à démarrer.)

L'une des bibliothèques Python couramment utilisées dans la science des données et l'apprentissage automatique est Scikit-Learn, qui fournit des implémentations d'algorithmes d'apprentissage automatique populaires. Scikit-Learn ne fait pas partie d'une installation de base Python, vous devez l'installer manuellement.

macOS et Linux sont préinstallés avec Python. Pour installer la bibliothèque Scikit-Learn, saisissez la commande suivante dans la fenêtre du terminal:

<code>pip install scikit-learn</code>
Copier après la connexion
Copier après la connexion
Copier après la connexion

ou pour Python 3:

<code>python3 -m pip install scikit-learn</code>
Copier après la connexion
Copier après la connexion
Copier après la connexion

Sur Microsoft Windows, vous devez d'abord installer Python. Vous pouvez obtenir la dernière version du programme d'installation de Windows Python 3 sur le site officiel. Une fois Python installé, saisissez la commande suivante dans la fenêtre de ligne de commande:

<code>python -m pip install scikit-learn</code>
Copier après la connexion
Copier après la connexion
Copier après la connexion

Alternativement, vous pouvez installer le framework Anaconda, qui comprend le Python 3 autonome ainsi que Scikit-Learn et de nombreuses autres bibliothèques pour la science des données et l'apprentissage automatique, telles que Numpy , scipy > et matplotlib . Vous pouvez trouver les instructions d'installation pour la version personnelle gratuite d'Anaconda sur son site officiel.

Étape 1: Définissez le problème

La première étape de chaque projet d'apprentissage automatique consiste à comprendre le problème que vous souhaitez résoudre. La définition d'une question vous aidera à déterminer le type de données que vous devez collecter et vous donner une idée de l'algorithme d'apprentissage automatique que vous devez utiliser.

Dans notre exemple, nous voulons créer un modèle qui prédit le type de fleur basé sur les mesures des pétales et de la longueur et de la largeur des sépales.

Il s'agit d'un problème de classification de supervision. Nous devons collecter une liste de mesures de différents spécimens de fleurs et de leurs espèces correspondantes. Nous utiliserons ensuite ces données pour former et tester un modèle d'apprentissage automatique qui peut mapper des mesures aux espèces.

Étape 2: Collectez les données

L'une des parties les plus délicates de l'apprentissage automatique est la collecte de données pour former votre modèle. Vous devez trouver une source qui peut collecter la quantité de données nécessaires pour former le modèle. Vous devez également vérifier la qualité de vos données, assurez-vous qu'elle représente les différentes situations que le modèle gérera et éviter de collecter des données contenant des biais cachés.

Heureusement, Scikit-Learn contient plusieurs ensembles de données de jouets qui peuvent être utilisés pour essayer différents algorithmes d'apprentissage automatique. Le "jeu de données IRIS" contienne les données exactes requises pour notre question. Nous avons juste besoin de le charger à partir de la bibliothèque.

Le code suivant charge l'ensemble de données de logement:

<code>pip install scikit-learn</code>
Copier après la connexion
Copier après la connexion
Copier après la connexion

L'ensemble de données de l'iris contient 150 observations, chacune avec quatre mesures (iris.data) et des espèces de fleurs cibles (iris.target). Vous pouvez voir le nom de la colonne de données dans iris.feature_name:

<code>python3 -m pip install scikit-learn</code>
Copier après la connexion
Copier après la connexion
Copier après la connexion

iris.target contient un indice numérique (0-2) de l'une des trois espèces de fleurs enregistrées dans l'ensemble de données. Les noms des espèces de fleurs se trouvent dans iris.target_Names:

<code>python -m pip install scikit-learn</code>
Copier après la connexion
Copier après la connexion
Copier après la connexion

Étape 3: divisez l'ensemble de données

Avant de commencer la formation, vous devez diviser les données en un ensemble de formation et un ensemble de tests. Vous utiliserez l'ensemble de formation pour former un modèle d'apprentissage automatique et utiliser l'ensemble de tests pour vérifier sa précision.

Ceci est fait pour vous assurer que votre modèle ne survient pas les données de formation. Le sur-ajustement est lorsque votre modèle d'apprentissage automatique fonctionne bien sur les exemples de formation mais pas sur les données invisibles. Le sur-ajustement peut être causé par le choix d'un mauvais algorithme d'apprentissage automatique, une mauvaise configuration du modèle, de mauvaises données de formation ou trop peu d'exemples de formation.

Selon le type de problème que vous résolvez et la quantité de données dont vous disposez, vous devez déterminer la quantité de données que vous souhaitez attribuer à l'ensemble de tests. Habituellement, lorsque vous avez beaucoup de données (sur des dizaines de milliers d'exemples), même environ 1% des petits échantillons sont suffisants pour tester votre modèle. Pour l'ensemble de données IRIS contenant un total de 150 enregistrements, nous sélectionnerons la segmentation 75-25.

Scikit-Learn a une fonction Train_test_split qui divise l'ensemble de données dans un ensemble de données de formation et un ensemble de données de test:

<code>from sklearn.datasets import load_iris

iris = load_iris()
</code>
Copier après la connexion
Copier après la connexion

Train_test_split obtient les données et les ensembles de données cibles et renvoie deux paires d'ensembles de données utilisés pour la formation (X_Train et Y_Train) et Test (X_Test et Y_Test). Le paramètre test_size détermine le pourcentage de données à attribuer au test (entre 0 et 1). Le paramètre Stratify garantit que le réseau de formation et le réseau de test contiennent le nombre d'échantillons équilibrés de chaque catégorie. La variable Random_State existe dans de nombreuses fonctions de Scikit-Learn et est utilisée pour contrôler le générateur de nombres aléatoires et atteindre la répétabilité.

Étape 4: Construisez le modèle

Maintenant que nos données sont prêtes, nous pouvons créer un modèle d'apprentissage automatique et les former sur l'ensemble de formation. Il existe de nombreux algorithmes d'apprentissage automatique différents qui peuvent résoudre le problème de classification que nous avons affaire. Dans notre cas, nous utiliserons l'algorithme "régression logistique", qui est très rapide et convient aux problèmes de classification simples qui ne contiennent pas trop de dimensions.

La classe LogisticRegression de Scikit-Learn implémente cet algorithme. Après l'avoir instancié, nous le formerons sur notre ensemble de formation (X_TRAIN et Y_TRAIN) en appelant la fonction d'ajustement. Cela ajustera les paramètres du modèle pour trouver la cartographie entre les valeurs mesurées et les espèces de fleurs.

<code>pip install scikit-learn</code>
Copier après la connexion
Copier après la connexion
Copier après la connexion

Étape 5: Évaluez le modèle

Maintenant que nous avons formé le modèle, nous voulons mesurer sa précision. La classe LogisticRegression a une méthode de score qui renvoie la précision du modèle. Tout d'abord, nous mesurerons la précision du modèle sur les données de formation:

<code>python3 -m pip install scikit-learn</code>
Copier après la connexion
Copier après la connexion
Copier après la connexion

Cela rendra environ 0,97, ce qui signifie que le modèle prédit avec précision 97% des exemples de formation, ce qui est assez bon étant donné que nous n'avons que 37 exemples d'entraînement par espèce.

Ensuite, nous vérifierons la précision du modèle sur l'ensemble de tests:

<code>python -m pip install scikit-learn</code>
Copier après la connexion
Copier après la connexion
Copier après la connexion

Cela nous donnera environ 95% des résultats, légèrement en dessous de la précision de la formation, ce qui est naturel car ce sont des exemples que le modèle n'a jamais vu auparavant. En créant des ensembles de données plus importants ou en essayant un autre algorithme d'apprentissage automatique (tels que les machines de vecteur de support), nous pouvons être en mesure d'améliorer encore la précision de nos modèles et de combler l'écart entre la formation et les performances de test.

Enfin, nous voulons voir comment utiliser le modèle que nous avons formé sur le nouvel exemple. La classe LogisticRegression a une fonction de prédiction qui prend un tableau d'observations en entrée et renvoie la catégorie prévue. Dans le cas de notre modèle de classificateur de fleurs, nous devons lui fournir un tableau de quatre mesures (longueur sépale, largeur sépale, longueur de pétale, largeur de pétale) qui renverra un entier représentant la catégorie de la fleur:

<code>from sklearn.datasets import load_iris

iris = load_iris()
</code>
Copier après la connexion
Copier après la connexion

Félicitations! Vous avez créé votre premier modèle d'apprentissage automatique. Nous pouvons maintenant le combiner dans une application qui prend des mesures de l'utilisateur et renvoie les espèces de fleurs:

<code>print(iris.feature_names)
'''
['sepal length (cm)',
 'sepal width (cm)',
 'petal length (cm)',
 'petal width (cm)']
'''
</code>
Copier après la connexion

J'espère que c'est votre première étape pour devenir un maître de l'apprentissage automatique. De là, vous pouvez continuer à apprendre d'autres algorithmes d'apprentissage automatique, en savoir plus sur les concepts de base de l'apprentissage automatique et continuer à apprendre des sujets plus avancés tels que les réseaux de neurones et l'apprentissage en profondeur. Avec un peu d'apprentissage et de pratique, vous pourrez créer des applications extraordinaires qui peuvent détecter des objets dans les images, traiter les commandes vocales et engager des conversations avec les utilisateurs.

FAQ pour l'apprentissage automatique avec Python (FAQ)

Quelles sont les conditions préalables à l'apprentissage à utiliser Python pour l'apprentissage automatique?

Pour commencer à apprendre à utiliser Python pour l'apprentissage automatique, vous avez besoin d'une compréhension de base de la programmation Python. Il est également avantageux de se familiariser avec les bibliothèques comme Numpy, Pandas et Matplotlib. De plus, une compréhension de base des statistiques et de la probabilité est cruciale car elles forment le cœur des algorithmes d'apprentissage automatique.

Comment Python se compare-t-il aux autres langages d'apprentissage automatique?

Python est l'un des langages d'apprentissage automatique les plus populaires en raison de sa simplicité et de sa lisibilité. Il dispose d'une large gamme de bibliothèques et de cadres tels que Scikit-Learn, TensorFlow et Pytorch qui simplifient le développement de modèles d'apprentissage automatique. D'autres langues comme R et Java sont également utilisées dans l'apprentissage automatique, mais l'écosystème étendu de Python en fait le premier choix pour beaucoup.

Quels algorithmes d'apprentissage automatique communs puis-je implémenter en utilisant Python?

La bibliothèque Scikit-Learn de Python fournit des implémentations de divers algorithmes d'apprentissage automatique. Certains algorithmes couramment utilisés comprennent la régression linéaire, la régression logistique, les arbres de décision, les forêts aléatoires, les machines vectorielles de support et les voisins K-Dearest. Pour l'apprentissage en profondeur, vous pouvez utiliser des bibliothèques comme TensorFlow et Pytorch.

Comment vérifier les performances de mon modèle d'apprentissage automatique Python?

Vous pouvez utiliser des techniques telles que la validation croisée et le fractionnement des tests de formation pour vérifier les performances de votre modèle. La bibliothèque Scikit-Learn de Python offre des fonctions pour cela. De plus, vous pouvez utiliser des mesures telles que la précision, la précision, le rappel et le score F1 pour classer les problèmes et utiliser l'erreur quadratique moyenne ou R au carré pour les problèmes de régression.

Puis-je utiliser Python pour un apprentissage supervisé et non supervisé?

Oui, Python soutient l'apprentissage supervisé et l'apprentissage non supervisé. La bibliothèque telle que Scikit-Learn peut être utilisée pour implémenter des algorithmes d'apprentissage supervisés tels que la régression et la classification. Pour un apprentissage non supervisé, vous pouvez utiliser des algorithmes de clustering tels que les k-means, le clustering hiérarchique et le DBSCAN.

Comment gérer le sur-ajustement dans les modèles d'apprentissage automatique?

Les techniques

telles que la régularisation, l'arrêt précoce et le décrochage du réseau neuronal peuvent être utilisés pour gérer le sur-ajustement. Vous pouvez également utiliser des méthodes intégrées telles que l'ensachage et le renforcement pour réduire le sur-ajustement.

Quel est le rôle du prétraitement des données dans l'apprentissage automatique à l'aide de Python?

Le prétraitement des données est une étape clé de l'apprentissage automatique. Il comprend le nettoyage des données, le traitement des valeurs manquantes, le codage des variables catégorielles et les fonctionnalités de mise à l'échelle. Python fournit des bibliothèques telles que Pandas et Scikit-Learn, qui peuvent effectuer un prétraitement des données efficace.

Comment utiliser Python pour visualiser les performances des modèles d'apprentissage automatique?

Vous pouvez utiliser des bibliothèques telles que Matplotlib et SeaBorn pour visualiser les performances de votre modèle. Ces bibliothèques fournissent des fonctions pour tracer des graphiques tels que la matrice de confusion, la courbe ROC et la courbe d'apprentissage.

Puis-je utiliser Python pour le traitement du langage naturel (NLP)?

Oui, Python fournit des bibliothèques telles que NLTK et Spacy pour le traitement du langage naturel. Ces bibliothèques fournissent des fonctions telles que la tokenisation, l'annotation d'une partie du discours, la reconnaissance des entités nommée et l'analyse des sentiments.

Comment déployer un modèle d'apprentissage automatique construit à l'aide de Python?

Vous pouvez utiliser des cadres Web tels que Flask ou Django pour déployer des modèles d'apprentissage automatique. Pour les déploiements à grande échelle, vous pouvez utiliser des plates-formes cloud telles que AWS, Google Cloud ou Azure. Ils fournissent des services pour le déploiement, la mise à l'échelle et la surveillance du modèle.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal