English English

Introduction à l'utilisation de Machine Learning (l'apprentissage machine) pour la reconnaissance de formes en Python

Ceci est un exemple d'introduction à l'apprentissage machine et à la reconnaissance des formes de certaines données. Un programme Python est programmé pour prédire le type de plantes.

L'ensemble de données de l'iris est utilisé à cette fin. Un arbre de décision est utilisé pour classifier les données. Ce tutoriel utilise Python 3.6. Python 3.5 ou supérieur est requis pour ce tutoriel. Il montre comment utiliser l'apprentissage machine pour enseigner à un programme à créer des modèles à partir de données existantes et à calculer des prédictions à partir de celles-ci.

Qu'est-ce que Iris Dataset ?

Le Iris Dataset est un jeu de données multivariées contenant 50 échantillons de données de trois espèces de plantes "iris" chacune. A partir de cet ensemble de données, vous pouvez identifier certains modèles (modèles de données) à l'aide de l'apprentissage machine. Cet ensemble de données est souvent utilisé par les débutants pour des projets d'apprentissage machine.

Qu'est-ce qu'un arbre décisionnel ?

Un arbre décisionnel est utilisé pour prendre des décisions. Il est similaire à un organigramme mais se compose de nœuds où les décisions sont prises dans un système binaire (oui ou non). Chaque décision est représentée par un nœud. Un arbre de décision est très approprié pour les données avec peu d'attributs et il nécessite seulement moins de préparation de données.  Pour de plus grandes quantités de données, vous devriez utiliser un algorithme différent qui peut faire des prédictions beaucoup plus précises. 


Conditions préalables

Les packages suivants doivent être installés:

  • NumPy (>= 1.11.0),
  • SciPy (>= 0.17.0),
  • joblib (>= 0.11) et
  • scikit-learn

scikit-learn peut être installé via le gestionnaire de paquets pip:

pip install scikit-learn


Installation sur le CMD du Windows

python -m pip install scikit-learn



Programme

Maintenant un programme Python est créé, qui devrait apprendre à partir de l'ensemble de données existant et découvrir certains modèles. Le paquet "numby" sera utilisé pour stocker l'ensemble de données dans un tableau. "Numby" est toujours utilisé lorsque vous travaillez avec des ensembles de données, par exemple pour l'apprentissage machine.
Le paquet "Scikit-learn" est utilisé pour l'apprentissage machine. Le programme "arbre" (pour l'utilisation d'un arbre de décision) et le programme "accuracy_score" sont appelés par ce paquet. L'ensemble de données Iris se trouve dans le paquet "sklearn.datasets".


from sklearn import tree
from sklearn.datasets import load_iris
from sklearn.metrics import accuracy_score
import numpy

#Préparer l'ensemble de données - Charger les données via iris.data - Charger les descriptions des données via iris.target
#Les noms des espèces végétales peuvent être récupérés via "iris_target_names". Les noms sont stockés sous forme d'ID (numéros) dans "data".
iris = load_iris()
x_coordinate = iris.data
y_coordinate =  iris.target
plant_names = iris.target_names

#Créer des index aléatoires utilisés pour récupérer les données de l'ensemble de données de l'iris.
array_ids = numpy.random.permutation(len(x_coordinate))

#Dans "train", les données sont utilisées pour l'apprentissage du programme Machine Learning.
#En "réel", les données réelles sont mémorisées, ce qui permet de vérifier les données prédites.
#Les 15 dernières valeurs sont utilisées pour "réel" pour le contrôle, le reste pour "train".
x_coordinate_train = x_coordinate[array_ids[:-15]]
x_coordinate_real = x_coordinate[array_ids[-15:]]

y_coordinate_train = y_coordinate[array_ids[:-15]]
y_coordinate_real = y_coordinate[array_ids[-15:]]

#Classer les données à l'aide d'un arbre de décision et les former avec les données créées précédemment.
data_classification = tree.DecisionTreeClassifier()
data_classification.fit(x_coordinate_train,y_coordinate_train)

#Créer des prédictions à partir de données existantes (dans l'ensemble de données "réel")
prediction = data_classification.predict(x_coordinate_real)

#Affiche les noms prédits
print(prediction)
#Les valeurs réelles
print(y_coordinate_real)
#Calculez l'exactitude des données prévues -
#La méthode accuracy_score() obtient la valeur prédite et la valeur réelle retournée
print("Accuracy in percent: %.2f" %((accuracy_score(prediction,y_coordinate_real)) * 100))

Si ce code de programme est alors exécuté en Python, alors ce qui suit est édité. La sortie varie après chaque exécution de ce code de programme. Les noms des espèces végétales sont stockés et édités sous forme d'ID dans un tableau.

Output:

[1 1 0 2 2 0 1 2 1 0 2 1 2 0 2]
[2 1 0 2 2 0 1 2 1 0 2 1 2 0 2]
Accuracy in percent: 93.33

L'identité (numero) des espèces végétales de l'iris: 0 est iris setosa, 1 est iris versicolor, 2 est iris virginica
La première ligne contient les prédictions calculées créées par l'apprentissage machine.
La deuxième ligne contient les valeurs réelles utilisées pour vérifier l'exactitude de la prédiction calculée par cet algorithme. Comme vous pouvez le voir ici, les espèces végétales ont été correctement prédites à environ 93%. L'exactitude des prédictions peut varier en fonction de l'appel de ce programme et de la quantité de données utilisées.

Essayez également ce programme avec des ensembles de données plus grands que le "15" utilisé ici. Plus vous fournissez de données à ce programme, plus il est en mesure de reconnaître les modèles de données et d'en faire des prédictions. L'apprentissage machine, comme vous pouvez le voir ici dans cet exemple d'introduction, est utilisé, par exemple, en logistique pour calculer le nombre de marchandises nécessaires dans le futur. Par exemple, les données existantes sur le nombre de commandes de marchandises sont utilisées pour calculer cette prévision.



We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.

Ok