Menu
CoddyTech

Klassen darstellen

Teil des Abschnitts Daten und Diagramme der Machine Learning-Journey von Coddy. Lektion 55 von 60.

Bilden die Klassen getrennte Wolken? Zeichne für jede Klasse ein Streudiagramm, das nach target_names benannt ist:

Irisblüten nach Kelchblattlänge und -breite, eine Farbe pro Art: Setosa bildet links oben eine eigene Wolke, während sich Versicolor und Virginica in der Mitte und rechts überlappen

Der dazugehörige Code:

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()

Jeder Aufruf erhält eine eigene Farbe, und label=iris.target_names[i] wandelt 0, 1 und 2 in Namen für die Legende um.

Setosa hebt sich ab; Versicolor und Virginica überschneiden sich. Dort, wo sich die Wolken überschneiden, wird ein Modell Fehler machen.

challenge icon

Aufgabe

Mittel

Bilden bösartige und gutartige Proben getrennte Punktwolken? Anhand des Diagramms eines Teammitglieds lässt sich das nicht erkennen: Es zeichnet alle Daten aus load_breast_cancer mit einem Scatterplot in einer Farbe.

  1. Ersetze diesen Scatterplot durch einen pro Klasse: mean radius auf der horizontalen Achse, mean concave points auf der vertikalen.
  2. Beschrifte jeden mit dem Klassennamen aus target_names.

Lass die vorgegebenen Zeilen stehen. Dein Diagramm sollte so aussehen wie dieses hier, das anhand zweier anderer Messwerte erstellt wurde:

Ein Streudiagramm von Brustgewebeproben nach mean texture und mean smoothness, bösartige Proben in Blau und gutartige in Orange, mit einer Legende, die beide Klassen benennt

Dein Programm gibt nichts aus: Coddy prüft das Diagramm und beschreibt es.

Probier es selbst

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

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

# Ändere die folgende Zeile nicht
fig, ax = plt.subplots()

# Korrigiere den Code hier
ax.scatter(df["mean radius"], df["mean concave points"])

# Ändere die folgenden Zeilen nicht
ax.set_title("Cells by Diagnosis")
ax.set_xlabel("mean radius")
ax.set_ylabel("mean concave points")
ax.legend()
plt.show()
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Daten und Diagramme

Übe selbstständig: Online-Python-Compiler