Introduction à l'apprentissage automatique en Python

L'apprentissage automatique consiste à donner aux ordinateurs la possibilité d'apprendre sans les programmer explicitement. Ceci est fait en donnant des données aux ordinateurs et en leur demandant de les transformer en modèles de décision qui sont ensuite utilisés pour les prévisions futures.

Dans ce didacticiel, nous allons parler de l’apprentissage automatique et de certains des concepts fondamentaux nécessaires pour débuter avec l’apprentissage automatique. Nous allons également concevoir quelques exemples en Python pour prédire certains éléments ou événements..

Introduction à l'apprentissage automatique

L'apprentissage automatique est un type de technologie qui vise à tirer des enseignements de l'expérience. Par exemple, en tant qu'être humain, vous pouvez apprendre à jouer aux échecs en observant simplement d'autres personnes jouant aux échecs. De la même manière, les ordinateurs sont programmés en leur fournissant des données à partir desquelles ils apprennent et sont ensuite en mesure de prédire de futurs éléments ou conditions..

Supposons, par exemple, que vous souhaitiez écrire un programme permettant de déterminer si un type de fruit donné est une orange ou un citron. Vous trouverez peut-être facile d'écrire un tel programme et vous obtiendrez les résultats requis, mais vous constaterez peut-être également que le programme ne fonctionne pas correctement pour de grands ensembles de données. C'est là que l'apprentissage machine entre en jeu.

L'apprentissage automatique comporte plusieurs étapes:

  1. collecte de données
  2. filtrage des données
  3. analyse de données
  4. algorithme de formation
  5. test de l'algorithme
  6. en utilisant l'algorithme pour les prévisions futures

L'apprentissage automatique utilise différents types d'algorithmes pour trouver des modèles, et ces algorithmes sont classés en deux groupes:

  • enseignement supervisé
  • apprentissage non supervisé

Enseignement supervisé

L'apprentissage supervisé est la science qui consiste à apprendre à un ordinateur à reconnaître les éléments en lui donnant des exemples de données. L’ordinateur apprend ensuite et est capable de prédire les futurs ensembles de données en fonction des données acquises..

Par exemple, vous pouvez former un ordinateur à filtrer les spams en fonction d'informations antérieures.

L’apprentissage supervisé a été utilisé dans de nombreuses applications, par exemple Facebook, pour rechercher des images en fonction d'une certaine description. Vous pouvez maintenant rechercher des images sur Facebook avec des mots décrivant le contenu de la photo. Comme le site de réseau social dispose déjà d'une base de données d'images sous-titrées, il est en mesure de rechercher et de faire correspondre la description aux caractéristiques des photos avec un certain degré de précision..

L'apprentissage supervisé ne comporte que deux étapes:

  • entraînement
  • essai

Certains des algorithmes d'apprentissage supervisé incluent:

  • arbres de décision
  • machines à vecteurs de support
  • Bayeux naïf
  • k-voisin le plus proche
  • régression linéaire

Exemple

Nous allons écrire un programme simple pour montrer le fonctionnement de l’apprentissage supervisé à l’aide de la bibliothèque Sklearn et du langage Python. Sklearn est une bibliothèque d'apprentissage machine pour le langage de programmation Python avec une gamme de fonctionnalités telles que plusieurs algorithmes d'analyse, de régression et de clustering..

Sklearn interagit également bien avec les bibliothèques NumPy et SciPy.

Installer Sklearn

Le guide d'installation de Sklearn offre un moyen très simple de l'installer sur plusieurs plates-formes. Cela nécessite plusieurs dépendances:

  • Python (> = 2.7 ou> = 3.3),
  • NumPy (> = 1,82)
  • SciPy (> = 0.13.3)

Si vous avez déjà ces dépendances, vous pouvez installer Sklearn aussi simplement que:

pip installer -U scikit-learn

Un moyen plus simple consiste simplement à installer Anaconda. Cela prend en charge toutes les dépendances afin que vous n'ayez pas à vous soucier de les installer une par une..

Pour tester si Sklearn fonctionne correctement, importez-le simplement à partir d'un interpréteur Python comme suit:

importer sklearn

Si aucune erreur ne se produit, alors vous êtes prêt à partir.

Maintenant que l'installation est terminée, revenons à notre problème. Nous voulons pouvoir différencier différents animaux. Nous allons donc concevoir un algorithme permettant de déterminer précisément si un animal est un cheval ou un poulet..

Nous devons d’abord recueillir des échantillons de données pour chaque type d’animal. Quelques exemples de données sont présentés dans le tableau ci-dessous..

Hauteur (pouces) poids (kg)
Température (Celsius)
Étiquette
7
0.6
40 Poulet (0)
7
0.6 41
Poulet (0)
37
0.8 37
Cheval (1)
37
0.8 38
Cheval (1)

Les données d'échantillon que nous avons obtenues donnent certaines des caractéristiques communes des deux animaux et des données de deux des animaux. Plus les données de l'échantillon sont volumineuses, plus les résultats seront précis et peu biaisés..

Avec ce type de données, nous pouvons coder un algorithme et l’entraîner à reconnaître un animal en fonction des valeurs acquises et à le classer comme un cheval ou un poulet. Maintenant nous allons aller de l'avant et écrire l'algorithme qui fera le travail.

D'abord, importez le module d'arborescence de Sklearn.

depuis l'arbre d'importation Sklearn

Définir les fonctionnalités que vous souhaitez utiliser pour classer les animaux.

caractéristiques = [[7, 0,6, 40], [7, 0,6, 41], [37, 600, 37], [37, 600, 38]]

Définit le résultat que chaque classificateur donnera. Un poulet sera représenté par 0, tandis qu'un cheval sera représenté par 1.

#labels = [poulet, poulet, cheval, cheval] # nous utilisons 0 pour représenter un poulet et 1 pour représenter un cheval étiquettes = [0, 0, 1, 1] 

Nous définissons ensuite le classifieur qui sera basé sur un arbre de décision.

classificateur = arbre.DecisionTreeClassifier ()

Alimentez ou adaptez vos données au classificateur.

classifier.fit (fonctionnalités, étiquettes) 

Le code complet de l'algorithme est présenté ci-dessous..

à partir des caractéristiques de l'arbre d'importation Sklearn = [[7, 0.6, 40], [7, 0.6, 41], [37, 600, 37], [37, 600, 38]] #labels = [poulet, poulet, cheval, cheval ] labels = [0, 0, 1, 1] classif = tree.DecisionTreeClassifier () classif.fit (fonctionnalités, libellés)

Nous pouvons maintenant prédire un ensemble de données donné. Voici comment prédire un animal d'une hauteur de 7 pouces, d'un poids de 0,6 kg et d'une température de 41:

à partir des caractéristiques de l'arbre d'importation Sklearn = [[7, 0.6, 40], [7, 0.6, 41], [37, 600, 37], [37, 600, 38]] #labels = [poulet, poulet, cheval, cheval ] labels = [0, 0, 1, 1] classif = tree.DecisionTreeClassifier () classif.fit (caractéristiques, étiquettes) print classif.predict ([[7, 0.6, 41]]) #output # [0] ou a poulet

Voici comment prédire un animal d'une hauteur de 38 pouces, d'un poids de 600 kg et d'une température de 37,5:

à partir des caractéristiques de l'arbre d'importation Sklearn = [[7, 0.6, 40], [7, 0.6, 41], [37, 600, 37], [37, 600, 38]] #labels = [poulet, poulet, cheval, cheval ] labels = [0, 0, 1, 1] classif = tree.DecisionTreeClassifier () classif.fit (caractéristiques, étiquettes) print classif.predict ([[38, 600, 37.5]]) # sortie # [1] ou a Cheval 

Comme vous pouvez le voir ci-dessus, vous avez appris à utiliser l'algorithme pour connaître toutes les caractéristiques et tous les noms des animaux. Ces données sont également utilisées pour tester de nouveaux animaux..

Apprentissage non supervisé

L'apprentissage non supervisé se produit lorsque vous entraînez votre machine avec uniquement un ensemble d'entrées. La machine sera alors capable de trouver une relation entre les données d’entrée et celles que vous voudrez peut-être prédire. Contrairement à l'apprentissage supervisé, où vous présentez une machine avec des données sur lesquelles vous entraîner, l'apprentissage non supervisé est conçu pour permettre à l'ordinateur de rechercher des modèles ou des relations entre différents jeux de données..

L’apprentissage non supervisé peut être subdivisé en:

  • regroupement
  • association

Clustering: La mise en cluster signifie le regroupement des données de manière inhérente. Par exemple, vous pouvez classer les habitudes d'achat des consommateurs et les utiliser pour la publicité en les ciblant en fonction de leurs achats et de leurs habitudes d'achat..

Association: L'association est l'endroit où vous identifiez des règles décrivant de grands ensembles de vos données. Ce type d'apprentissage peut être appliqué à l'association de livres basés sur l'auteur ou la catégorie, qu'il s'agisse de livres de motivation, de fiction ou éducatifs..

Parmi les algorithmes d’apprentissage non supervisés populaires, on trouve:

  • k-signifie regroupement
  • classification hiérarchique

L'apprentissage non supervisé sera une technologie importante dans un proche avenir. Cela est dû au fait qu'il existe beaucoup de données non filtrées qui n'ont pas encore été numérisées..

Conclusion

J'espère que ce tutoriel vous a aidé à démarrer avec l'apprentissage automatique. Ceci est juste une introduction - l'apprentissage machine a beaucoup à couvrir, et ceci n'est qu'une fraction de ce que l'apprentissage machine peut faire.

De plus, n'hésitez pas à voir ce que nous avons disponible à la vente et à étudier dans le marché Envato, et n'hésitez pas à poser des questions et à fournir vos précieux commentaires en utilisant le flux ci-dessous.

Votre décision d'utiliser un algorithme d'apprentissage automatique supervisé ou non supervisé dépendra de divers facteurs, tels que la structure et la taille des données..

L'apprentissage automatique peut être appliqué dans presque tous les domaines de notre vie, par exemple. dans la prévention de la fraude, personnalisation des flux d'actualités sur les sites de médias sociaux en fonction des préférences des utilisateurs, filtrage du courrier électronique et des logiciels malveillants, prévisions météorologiques et même dans le secteur du commerce électronique pour prévoir les habitudes d'achat des consommateurs.