Menu
CoddyTech

Die zwei besten Merkmale

Teil des Abschnitts Statistik für ML der Machine Learning-Journey von Coddy. Lektion 59 von 64.

Hier ist die Abbildung, die dieses Kapitel versprochen hat: die beiden aussagekräftigsten Merkmale als Mittelwerte in einem Streudiagramm, eine Farbe pro Klasse.

Gewebeproben nach der mittleren Anzahl konkaver Punkte auf der x-Achse und dem mittleren Umfang auf der y-Achse: Gutartige Proben häufen sich links unten, bösartige verteilen sich nach oben und rechts, wobei sich die beiden Punktwolken in einem schmalen Bereich treffen

Gutartige Proben häufen sich unten links, bösartige verteilen sich nach oben und rechts. Wo die Wolken aufeinandertreffen, wird ein Modell, das dieses Paar verwendet, seine Fehler machen.

Noch eine Prüfung: Sind die beiden fast identisch?

first = strength.index[0]
second = strength.index[1]
print(np.round(df[first].corr(df[second]), 2))

Das gibt 0.85 aus: verwandt, aber keine Kopien. Bei 0.99 würde das zweite Merkmal das erste wiederholen und kaum etwas Neues hinzufügen.

challenge icon

Aufgabe

Mittel

error-Merkmale messen, wie stark ein Messwert zwischen den Zellen einer Stichprobe variierte. Können die zwei stärksten die Klassen unterscheiden? Der Starter-Code ordnet sie first und second zu; label(ax) benennt das Diagramm.

  1. Gib r between them: und ihren r-Wert mit 2 Dezimalstellen aus.
  2. Zeichne für jede Klasse ein Streudiagramm, mit first auf der x-Achse und beschriftet mit dem Klassennamen.
  3. Rufe label(ax) auf, füge eine Legende hinzu und zeige das Diagramm an.

So sieht es für das stärkste Paar worst aus (r 0.82):

Ein Streudiagramm mit dem Titel Schlechteste Merkmale, worst concave points auf der x-Achse und worst perimeter auf der y-Achse, bösartige Proben blau oben rechts und gutartige orange unten links

Beurteile dann dein Diagramm: getrennte Punktwolken? Und sind sie angesichts deines r redundant?

Probier es selbst

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

cancer = load_breast_cancer(as_frame=True)
df = cancer.frame
y = cancer.target
# Die zehn Fehlermerkmale: wie stark jede Messung zwischen den Zellen einer Probe variierte
X = cancer.data[cancer.feature_names[10:20]]

# Nach Stärke sortiert: first und second sind die beiden stärksten
strength = np.abs(X.corrwith(y)).sort_values(ascending=False)
first = strength.index[0]
second = strength.index[1]


# Legt den Titel des Diagramms fest und benennt die Achsen nach dem Paar
def label(ax):
    ax.set_title("Error Features")
    ax.set_xlabel(first)
    ax.set_ylabel(second)


# Schreibe deinen Code unten
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 Statistik für ML

Übe selbstständig: Online-Python-Compiler