How to Evaluate the Performance of Your ML/ AI Models | by Sara A. Metwalli

Une évaluation précise est le seul moyen d’améliorer les performances

Sara A. Metwalli
Vers la science des données
Photo de Scott Graham sur Unsplash

Apprendre en faisant est l’une des meilleures approches pour apprendre quoi que ce soit, de la technologie à une nouvelle langue ou à la cuisine d’un nouveau plat. Une fois que vous avez appris les bases d’un domaine ou d’une application, vous pouvez développer ces connaissances en agissant. Construire des modèles pour diverses applications est le meilleur moyen de concrétiser vos connaissances en matière d’apprentissage automatique et d’intelligence artificielle.

Bien que les deux domaines (ou vraiment des sous-domaines, puisqu’ils se chevauchent) aient des applications dans une grande variété de contextes, les étapes pour apprendre à construire un modèle sont plus ou moins les mêmes quel que soit le domaine d’application cible.

Les modèles de langage d’IA tels que ChatGPT et Bard gagnent en popularité et en intérêt auprès des novices en technologie et du grand public, car ils peuvent être très utiles dans notre vie quotidienne.

Maintenant que plus de modèles sont publiés et présentés, on peut se demander ce qui fait un “bien« Modèle IA/ML, et comment en évaluer les performances ?

C’est ce que nous allons couvrir dans cet article. Mais encore une fois, nous supposons que vous avez déjà construit un modèle AI ou ML. Maintenant, vous souhaitez évaluer et améliorer ses performances (si nécessaire). Mais, encore une fois, quel que soit le type de modèle dont vous disposez et votre application finale, vous pouvez prendre des mesures pour évaluer votre modèle et améliorer ses performances.

Pour nous aider à suivre les concepts, utilisons le jeu de données Wine de sklearn [1]appliquez le classificateur de vecteurs de support (SVC), puis testez ses métriques.

Alors, sautons dedans…

Tout d’abord, importons les bibliothèques que nous utiliserons (ne vous inquiétez pas de ce que chacune d’elles fait maintenant, nous y reviendrons !).

import pandas as pd
import numpy as np
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
from sklearn.metrics import confusion_matrix
from sklearn.metrics import precision_score, recall_score, f1_score, accuracy_score
import matplotlib.pyplot as plt

Maintenant, nous lisons notre ensemble de données, appliquons le classifieur et l’évaluons.

wine_data = datasets.load_wine()
X = wine_data.data
y = wine_data.target

En fonction de votre étape dans le processus d’apprentissage, vous devrez peut-être accéder à une grande quantité de données que vous pouvez utiliser pour la formation, les tests et l’évaluation. De plus, vous pouvez utiliser différentes données pour former et tester votre modèle, car cela vous empêchera d’évaluer véritablement les performances de votre modèle.

Pour surmonter ce défi, divisez vos données en trois ensembles aléatoires plus petits et utilisez-les pour la formation, les tests et la validation.

Une bonne règle de base pour faire cette division est une approche 60,20,20. Vous utiliserez 60 % des données pour la formation, 20 % pour la validation et 20 % pour les tests. Vous devez mélanger vos données avant de procéder à la scission pour assurer une meilleure représentation de ces données.

Je sais que cela peut sembler compliqué, mais heureusement, ticket-learn est venu à la rescousse en offrant une fonction pour effectuer cette division pour vous, train_test_split().

Ainsi, nous pouvons prendre notre jeu de données et le diviser comme suit :

X_train, X_test, Y_train, Y_test = train_test_split(X, y, test_size=0.20, train_size=0.60, random_state=1, stratify=y)

Utilisez ensuite la partie formation de celui-ci comme entrée du classifieur.

#Scale data
sc = StandardScaler()
sc.fit(X_train)
X_train_std = sc.transform(X_train)
X_test_std = sc.transform(X_test)
#Apply SVC model
svc = SVC(kernel="linear", C=10.0, random_state=1)
svc.fit(X_train, Y_train)
#Obtain predictions
Y_pred = svc.predict(X_test)

À ce stade, nous avons quelques résultats à “évaluer”.

Avant de commencer le processus d’évaluation, nous devons nous poser une question essentielle sur le modèle que nous utilisons : qu’est-ce qui rendrait ce modèle bon?

La réponse à cette question dépend du modèle et de la façon dont vous comptez l’utiliser. Cela étant dit, il existe des métriques d’évaluation standard que les data scientists utilisent lorsqu’ils souhaitent tester les performances d’un modèle d’IA/ML, notamment :

  1. Précision est le pourcentage de prédictions correctes par le modèle sur la prédiction totale. Cela signifie que, lorsque j’exécute le modèle, combien de prédictions sont vraies parmi toutes les prédictions ? Cet article explique en détail comment tester la précision d’un modèle.
  2. Précision est le pourcentage de vraies prédictions positives par le modèle sur toutes les prédictions positives. Malheureusement, précision et exactitude sont souvent confondues ; une façon de clarifier la différence entre eux est de considérer la précision comme la proximité des prédictions avec les valeurs réelles, tandis que la précision est la proximité des prédictions correctes les unes par rapport aux autres. Ainsi, la précision est une mesure absolue, mais les deux sont importantes pour évaluer les performances du modèle.
  3. Rappel est la proportion de vraies prédictions positives de toutes les instances positives réelles dans l’ensemble de données. Le rappel vise à trouver des prédictions associées dans un ensemble de données. Mathématiquement, si on augmente le rappel, on diminue la précision du modèle.
  4. Le score F1 est tLa moyenne combinée de la précision et du rappel fournit une mesure équilibrée des performances d’un modèle en utilisant à la fois la précision et le rappel. Cette vidéo de CodeBasics traite de la relation entre la précision, le rappel et le score F1 et comment trouver l’équilibre optimal de ces métriques d’évaluation.
Vidéo par CodeBasics

Maintenant, calculons les différentes métriques pour les données prédites. Pour ce faire, nous allons d’abord afficher la matrice de confusion. La matrice de confusion est simplement les résultats réels des données par rapport aux résultats prédits.

conf_matrix = confusion_matrix(y_true=y_test, y_pred=y_pred)
#Plot the confusion matrix
fig, ax = plt.subplots(figsize=(5, 5))
ax.matshow(conf_matrix, cmap=plt.cm.Oranges, alpha=0.3)
for i in range(conf_matrix.shape[0]):
for j in range(conf_matrix.shape[1]):
ax.text(x=j, y=i,s=conf_matrix[i, j], va="center", ha="center", size="xx-large")
plt.xlabel('Predicted Values', fontsize=18)
plt.ylabel('Actual Values', fontsize=18)
plt.show()

La matrice de confusion de notre ensemble de données ressemblera à quelque chose comme,

Si nous regardons cette matrice de confusion, nous pouvons voir que la valeur réelle était “1” dans certains cas alors que la valeur prédite était “0”. Ce qui signifie que le classificateur n’est pas précis à 100 %.

Nous pouvons calculer l’exactitude, la précision, le rappel et le score f1 de ce classificateur à l’aide de ce code.

print('Precision: %.3f' % precision_score(Y_test, Y_pred, average="micro"))
print('Recall: %.3f' % recall_score(Y_test, Y_pred, average="micro"))
print('Accuracy: %.3f' % accuracy_score(Y_test, Y_pred))
print('F1 Score: %.3f' % f1_score(Y_test, Y_pred, average="micro"))

Pour cet exemple particulier, les résultats pour ceux-ci sont :

  1. Précision = 0,889
  2. Rappel = 0,889
  3. Précision = 0,889
  4. Note F1 = 0,889

Bien que vous puissiez vraiment utiliser différentes approches pour évaluer vos modèles, certaines méthodes d’évaluation permettront de mieux estimer les performances du modèle en fonction du type de modèle. Par exemple, en plus des méthodes ci-dessus, si le modèle que vous évaluez est un modèle de régression (ou s’il inclut une régression), vous pouvez également utiliser :

– Erreur quadratique moyenne (MSE) est mathématiquement la moyenne des différences au carré entre les valeurs prédites et réelles.

– Erreur absolue moyenne (MAE) est la moyenne des différences absolues entre les valeurs prédites et réelles.

Ces deux métriques sont étroitement liées, mais du point de vue de la mise en œuvre, MAE est plus simple (au moins mathématiquement) que MSE. Cependant, MAE ne réussit pas bien avec des erreurs significatives, contrairement à MSE, qui accentue les erreurs (car il les met au carré).

Avant de discuter des hyperparamètres, différencions d’abord un hyperparamètre d’un paramètre. Un paramètre est une façon dont un modèle est défini pour résoudre un problème. En revanche, les hyperparamètres sont utilisés pour tester, valider et optimiser les performances du modèle. Les hyperparamètres sont souvent choisis par les data scientists (ou le client, dans certains cas) pour contrôler et valider le processus d’apprentissage du modèle et donc ses performances.

Il existe différents types d’hyperparamètres que vous pouvez utiliser pour valider votre modèle ; certains sont généraux et peuvent être utilisés sur n’importe quel modèle, tels que :

  • Taux d’apprentissage: cet hyperparamètre contrôle le degré de modification du modèle en réponse à une erreur lorsque les paramètres du modèle sont mis à jour ou modifiés. Le choix du taux d’apprentissage optimal est un compromis avec le temps nécessaire au processus de formation. Si le taux d’apprentissage est faible, cela peut ralentir le processus de formation. En revanche, si le taux d’apprentissage est trop élevé, le processus d’apprentissage sera plus rapide, mais les performances du modèle peuvent en souffrir.
  • Taille du lot: La taille de votre ensemble de données d’entraînement affectera considérablement le temps d’entraînement et le taux d’apprentissage du modèle. Ainsi, trouver la taille de lot optimale est une compétence qui est souvent développée au fur et à mesure que vous construisez plus de modèles et que vous développez votre expérience.
  • Nombre d’époques : Une époque est un cycle complet d’entraînement du modèle d’apprentissage automatique. Le nombre d’époques à utiliser varie d’un modèle à l’autre. Théoriquement, plus d’époques entraînent moins d’erreurs dans le processus de validation.

En plus des hyperparamètres ci-dessus, il existe des hyperparamètres spécifiques au modèle tels que la force de régularisation ou le nombre de couches cachées dans la mise en œuvre d’un réseau de neurones. Cette vidéo de 15 minutes par APMonitor explore divers hyperparamètres et leurs différences.

Vidéo par APMonitor

La validation d’un modèle AI/ML n’est pas un processus linéaire mais plutôt itératif. Vous passez par la division des données, le réglage des hyperparamètres, l’analyse et la validation des résultats souvent plus d’une fois. Le nombre de fois que vous répétez ce processus dépend de l’analyse des résultats. Pour certains modèles, vous n’aurez peut-être besoin de le faire qu’une seule fois. pour d’autres, vous devrez peut-être le faire plusieurs fois.

Si vous devez répéter le processus, vous utiliserez les informations de l’évaluation précédente pour améliorer l’architecture du modèle, le processus de formation ou les paramètres d’hyperparamètre jusqu’à ce que vous soyez satisfait des performances du modèle.

Lorsque vous commencerez à créer vos propres modèles ML et AI, vous réaliserez rapidement que le choix et la mise en œuvre du modèle constituent la partie la plus simple du flux de travail. Cependant, les tests et l’évaluation sont la partie qui occupera la majeure partie du processus de développement. L’évaluation d’un modèle d’IA/ML est un processus itératif et souvent chronophage, et il nécessite une analyse, une expérimentation et un réglage minutieux pour atteindre les performances souhaitées.

Heureusement, plus vous avez d’expérience dans la construction de modèles, plus le processus d’évaluation des performances de votre modèle sera systématique. Et c’est une compétence utile compte tenu de l’importance de l’évaluation de votre modèle, par exemple :

  1. L’évaluation de nos modèles nous permet de mesurer objectivement les métriques du modèle, ce qui aide à comprendre ses forces et ses faiblesses et donne un aperçu de ses capacités prédictives ou décisionnelles.
  2. S’il existe différents modèles capables de résoudre les mêmes problèmes, leur évaluation nous permet de comparer leurs performances et de choisir celui qui convient le mieux à notre application.
  3. L’évaluation donne un aperçu des faiblesses du modèle, permettant des améliorations en analysant les erreurs et les domaines où le modèle est moins performant.

Alors, soyez patient et continuez à construire des modèles ; il devient meilleur et plus efficace avec le nombre de modèles que vous construisez. Ne laissez pas les détails du processus vous décourager. Cela peut sembler être un processus complexe, mais une fois que vous aurez compris les étapes, cela deviendra une seconde nature pour vous.

[1] En ligneLichman, M. (2013). Référentiel d’apprentissage automatique UCI. Irvine, Californie : Université de Californie,
École d’information et d’informatique. (CC BY 4.0)

free diamonds giveaway beans bigo free a
100 free coin master free spin generato
craving ice and what it means everyday h
Family Island Free energy links daily –
bingo blitz free credits bingoblitzfans
episode choose your story mod apk ios un
WHO APP APP CHEATS UNLIMITED COINS GENER
HOW TO GET FREE COINS IN CUPIDABO ANDROI
insane unlimited vc glitch for nba 2k22
livu 5000 coins direct top up the gamers
get 10 million coins 8 ball pool free
watch all episodes of big break golfpass
ALL APP HACK COINS DOWNLOAD APK FOR ANDR
how to enter cheat codes in bingo blitz
bigo live unlimited diamonds and beans g

Leave a Reply

Your email address will not be published. Required fields are marked *