Construire votre premier classificateur d'apprentissage automatique en Python

Cet article vous aidera à créer un classificateur d'apprentissage automatique en Python à partir de zéro. Il vous fournira également une connaissance détaillée de la classification.

est le mot à la mode en ce moment. Des choses incroyables sont réalisées avec l'aide de l'apprentissage automatique. D'être notre assistant personnel , pour décider de notre itinéraires de voyage , nous aider à magasiner, nous aider dans la gestion de nos entreprises, à prendre soin de nos santé et bien-être, l'apprentissage automatique est intégré à notre vie quotidienne à des niveaux si fondamentaux que la plupart du temps, nous ne réalisons même pas que nous comptons sur lui. Dans cet article, nous suivrons une approche de débutant pour implémenter un classificateur d'apprentissage automatique standard en Python.



Présentation de l'apprentissage automatique

L'apprentissage automatique est un concept qui permet à la machine d'apprendre à partir d'exemples et d'expériences, et cela aussi sans être explicitement programmé. Ainsi, au lieu d'écrire le code, ce que vous faites est de fournir des données à l'algorithme générique, et l'algorithme / la machine construit la logique en fonction des données données.



Classificateur d

L'apprentissage automatique implique la capacité des machines à prendre des décisions, à évaluer les résultats de leurs actions et à améliorer leur comportement pour obtenir de meilleurs résultats successivement.



Le processus d'apprentissage se déroule de trois manières principales

  • Enseignement supervisé
  • Apprentissage non supervisé
  • Apprentissage par renforcement

Un modèle pour les classificateurs d'apprentissage automatique

Les outils d'apprentissage automatique sont fournis assez facilement dans une bibliothèque Python nommée scikit-learn, qui sont très simples à accéder et à appliquer.



tutoriel développeur pl sql pour les débutants

Installez scikit-learn via l'invite de commande en utilisant:

pip install -U scikit-learn

Si vous êtes un utilisateur anaconda, à l'invite anaconda, vous pouvez utiliser:

conda installer scikit-learn

L'installation nécessite l'installation préalable des packages NumPy et SciPy sur votre système.

Prétraitement: La première étape et la plus nécessaire de toute analyse de données basée sur l'apprentissage automatique est la partie de prétraitement. Une représentation et un nettoyage corrects des données sont absolument essentiels pour que le modèle ML s'exerce correctement et fonctionne à son potentiel.

Étape 1 - Importez les bibliothèques nécessaires

import numpy comme np importer des pandas comme pd importer matplotlib.pyplot comme plt

Étape 2 - Importer le jeu de données

ensemble de données = pd.read_csv ()

Ensuite, nous divisons l'ensemble de données en variables indépendantes et dépendantes. Les variables indépendantes doivent être les données d'entrée et la variable dépendante sont les données de sortie.

X = dataset.iloc []. Values ​​y = dataset.iloc []. Values

Étape 3 - Gérer les données manquantes

L'ensemble de données peut contenir des valeurs vides ou nulles, ce qui peut entraîner des erreurs dans nos résultats. Par conséquent, nous devons traiter de telles entrées. Une pratique courante consiste à remplacer les valeurs nulles par une valeur commune, comme la moyenne ou la valeur la plus fréquente dans cette colonne.

de sklearn.preprocessing import Imputer imputer = Imputer (missing_values ​​= 'NaN', strategy = 'mean', axis = 0) imputer = imputer.fit (X []) X [] = imputer.transform (X [])

Étape 4 - Convertir les variables catégorielles en variables numériques

depuis sklearn.preprocessing import LabelEncoder le_X = LabelEncoder () X [] = le_X.fit_transform (X []) labelencoder_y = LabelEncoder () y = labelencoder_y.fit_transform (y)

Maintenant, après le codage, il peut arriver que la machine assume les données numériques comme un classement pour les colonnes codées. Ainsi, pour fournir un poids égal, nous devons convertir les nombres en vecteurs one-hot, en utilisant la classe OneHotEncoder.

depuis sklearn.preprocessing import OneHotEncoder oneHE = OneHotEncoder (categorical_features = []) X = oneHE.fit_transform (X) .toarray ()

Étape 5 - Effectuer la mise à l'échelle

Cette étape consiste à traiter les écarts résultant d'échelles non concordantes des variables. Par conséquent, nous les mettons tous à l'échelle dans la même plage, de sorte qu'ils reçoivent le même poids tout en entrant dans le modèle. Nous utilisons un objet de la classe StandardScaler à cet effet.

depuis sklearn.preprocessing import StandardScaler sc_X = StandardScaler () X = sc_X.fit_transform (X)

Étape 6 - Divisez l'ensemble de données en données d'entraînement et de test

En tant que dernière étape du prétraitement, l'ensemble de données doit être divisé en un ensemble d'apprentissage et un ensemble de test. Le rapport standard de la répartition train-essai est de 75% -25%. Nous pouvons modifier selon les exigences. La fonction train_test_split () peut le faire pour nous.

depuis sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.25)

Construction modèle: Cette étape est en fait assez simple. Une fois que nous avons décidé quel modèle appliquer sur les données, nous pouvons créer un objet de sa classe correspondante et ajuster l'objet sur notre ensemble d'apprentissage, en considérant X_train comme entrée et y_train comme sortie.

de sklearn. import classifier = () classifier.fit (X_train, y_train)

Le modèle est maintenant formé et prêt. Nous pouvons maintenant appliquer notre modèle à l'ensemble de test et trouver la sortie prévue.

y_pred = classificateur.predict (X_test)

Affichage des résultats: La performance d'un classificateur peut être évaluée par les paramètres d'exactitude, de précision, de rappel et de score f1. Ces valeurs peuvent être visualisées en utilisant une méthode connue sous le nom de classification_report (). t peut également être considéré comme une matrice de confusion qui nous aide à savoir combien de quelles catégories de données ont été classées correctement.

depuis sklearn.metrics import confusion_matrix cm = confusion_matrix (y_test, y_pred) print (cm) depuis sklearn.metrics import classification_report target_names = [] print (classification_report (y_test, y_pred, target_names = target_names))

Problème de classificateur d'apprentissage automatique

Nous utiliserons le jeu de données Iris très populaire et simple, contenant les dimensions des fleurs en 3 catégories - Iris-setosa, Iris-versicolor et Iris-virginica. Il y a 150 entrées dans l'ensemble de données.

comment arrêter un programme java dans le code

# Importation des bibliothèques import numpy comme np import matplotlib.pyplot comme plt import pandas comme pd # Importation du dataset dataset = pd.read_csv ('iris.csv')

Voyons maintenant l'ensemble de données.

dataset.head ()

Nous avons 4 variables indépendantes (à l'exclusion de l'Id), à savoir les numéros de colonne 1 à 4, et la colonne 5 est la variable dépendante. Nous pouvons donc les séparer.

X = dataset.iloc [:, 1: 5] .values ​​y = dataset.iloc [:, 5] .values

Nous pouvons maintenant diviser l'ensemble de données en formation et test.

# Fractionnement de l'ensemble de données dans l'ensemble d'apprentissage et l'ensemble de test à partir de sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.25)

Nous allons maintenant appliquer un classificateur de régression logistique à l'ensemble de données.

# Construction et entraînement du modèle à partir de sklearn.linear_model import LogisticRegression classifier = LogisticRegression () classifier.fit (X_train, y_train) # Prédiction des résultats de l'ensemble de tests y_pred = classifier.predict (X_test)

La dernière étape consistera à analyser les performances du modèle entraîné.

# Création de la matrice de confusion à partir de sklearn.metrics import confusion_matrix cm = confusion_matrix (y_test, y_pred) print (cm)

Cela nous montre que 13 entrées de la première catégorie, 11 de la deuxième et 9 de la troisième catégorie sont correctement prédites par le modèle.

# Génération de la précision, de la précision, du rappel et du score f1 à partir de sklearn.metrics import classification_report target_names = ['Iris-setosa', 'Iris-versicolor', 'Iris-virginica'] print (classification_report (y_test, y_pred, target_names = target_names) )

Le rapport montre les valeurs de précision, de rappel, de score f1 et d'exactitude du modèle sur notre ensemble de test, qui se compose de 38 entrées (25% de l'ensemble de données).

Félicitations, vous avez créé et implémenté avec succès votre premier classificateur d'apprentissage automatique en Python! Pour acquérir des connaissances approfondies sur avec ses diverses applications, vous pouvez vous inscrire à une formation en ligne Python en direct avec une assistance 24/7 et un accès à vie.