Menu
CoddyTech

Représenter les classes

Fait partie de la section Données et visualisations du Journey Machine Learning de Coddy. Leçon 55 sur 60.

Les classes forment-elles des nuages distincts ? Tracez un nuage de points par classe, chacun nommé à partir de target_names :

Fleurs d’iris selon la longueur et la largeur des sépales, une couleur par espèce : setosa forme son propre nuage en haut à gauche, tandis que versicolor et virginica se chevauchent au centre et à droite

Le code qui se cache derrière :

df = iris.frame
fig, ax = plt.subplots()
for i in range(3):
    group = df[df["target"] == i]
    ax.scatter(group["sepal length (cm)"], group["sepal width (cm)"], label=iris.target_names[i])
ax.set_title("Iris flowers by sepal size")
ax.set_xlabel("sepal length (cm)")
ax.set_ylabel("sepal width (cm)")
ax.legend()
plt.show()

Chaque appel obtient sa propre couleur, et label=iris.target_names[i] transforme 0, 1 et 2 en noms pour la légende.

Setosa se distingue ; versicolor et virginica se chevauchent. C’est dans les zones de chevauchement des nuages qu’un modèle fera des erreurs.

challenge icon

Défi

Moyen

Les échantillons malins et bénins forment-ils des nuages distincts ? Le graphique d’un coéquipier ne permet pas de le savoir : il représente toutes les données de load_breast_cancer avec un seul nuage de points, d’une seule couleur.

  1. Remplace ce nuage de points par un par classe : mean radius en abscisse, mean concave points en ordonnée.
  2. Étiquette chaque nuage avec le nom de sa classe, tiré de target_names.

Conserve les lignes déjà prêtes. Le résultat devrait ressembler à celui-ci, réalisé à partir de deux autres mesures :

Nuage de points des échantillons de tissu mammaire selon la texture moyenne et la douceur moyenne, les échantillons malins en bleu et les bénins en orange, avec une légende nommant les deux classes

Ton programme n’affiche rien : Coddy vérifie le graphique et le décrit.

Essayez vous-même

import matplotlib.pyplot as plt
from sklearn.datasets import load_breast_cancer

cancer = load_breast_cancer(as_frame=True)
df = cancer.frame

# Ne modifiez pas la ligne ci-dessous
fig, ax = plt.subplots()

# Corrigez le code ici
ax.scatter(df["mean radius"], df["mean concave points"])

# Ne modifiez pas les lignes ci-dessous
ax.set_title("Cells by Diagnosis")
ax.set_xlabel("mean radius")
ax.set_ylabel("mean concave points")
ax.legend()
plt.show()
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Données et visualisations

Entraînez-vous par vous-même : Compilateur Python en ligne