Introduction
En apprentissage automatique, les fonctions de perte sont utilisées pour mesurer la différence entre la sortie prédite et la sortie réelle. La bibliothèque scikit-learn fournit diverses fonctions de perte convexes pour les problèmes de classification. Dans ce laboratoire, nous allons visualiser et comparer certaines de ces fonctions de perte.
Conseils sur la machine virtuelle
Une fois le démarrage de la machine virtuelle terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Notebook pour accéder à Jupyter Notebook pour la pratique.
Parfois, vous devrez peut-être attendre quelques secondes pour que Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limites de Jupyter Notebook.
Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez votre feedback après la session, et nous réglerons rapidement le problème pour vous.
Importation des bibliothèques et définition des fonctions
Nous commençons par importer les bibliothèques nécessaires et en définissant la fonction de perte de Huber modifiée.
import numpy as np
import matplotlib.pyplot as plt
def modified_huber_loss(y_true, y_pred):
z = y_pred * y_true
loss = -4 * z
loss[z >= -1] = (1 - z[z >= -1]) ** 2
loss[z >= 1.0] = 0
return loss
Définir la plage pour la fonction de décision
Nous définissons la plage de valeurs pour la fonction de décision f(x).
xmin, xmax = -4, 4
xx = np.linspace(xmin, xmax, 100)
Tracer les fonctions de perte
Nous traçons les diverses fonctions de perte convexes prises en charge par scikit-learn à l'aide de la bibliothèque matplotlib.
lw = 2
plt.plot([xmin, 0, 0, xmax], [1, 1, 0, 0], color="gold", lw=lw, label="Zero-one loss")
plt.plot(xx, np.where(xx < 1, 1 - xx, 0), color="teal", lw=lw, label="Hinge loss")
plt.plot(xx, -np.minimum(xx, 0), color="yellowgreen", lw=lw, label="Perceptron loss")
plt.plot(xx, np.log2(1 + np.exp(-xx)), color="cornflowerblue", lw=lw, label="Log loss")
plt.plot(xx, np.where(xx < 1, 1 - xx, 0) ** 2, color="orange", lw=lw, label="Squared hinge loss")
plt.plot(xx, modified_huber_loss(xx, 1), color="darkorchid", lw=lw, linestyle="--", label="Modified Huber loss")
plt.ylim((0, 8))
plt.legend(loc="upper right")
plt.xlabel(r"Decision function $f(x)$")
plt.ylabel("$L(y=1, f(x))$")
plt.show()
Interpréter le graphique
Nous interprétons le graphique et analysons le comportement de chaque fonction de perte.
Sommaire
Dans ce laboratoire, nous avons visualisé et comparé certaines des fonctions de perte convexes prises en charge par scikit-learn. Comprendre les fonctions de perte est cruciale en apprentissage automatique, car elles sont utilisées pour optimiser les paramètres du modèle pendant l'entraînement.