Menu
CoddyTech

Cluster vs. bekannte Labels

Teil des Abschnitts Unüberwachtes Lernen der Machine Learning-Journey von Coddy. Lektion 13 von 51.

Wenn Labels vorhanden sind, k-means sie aber nie gesehen hat, überprüfe, was es gefunden hat: pd.crosstab zählt jedes Cluster-Label-Paar.

labels = KMeans(n_clusters=3, n_init=10, random_state=0).fit_predict(X)
print(pd.crosstab(labels, kind))

Für 150 Kaffeebohnen von 3 Sorten, gruppiert nach Länge und Koffeingehalt: eine Zeile pro Cluster, eine Spalte pro Sorte:

Eine 3-mal-3-Tabelle der Anzahlen, Cluster in den Zeilen und Kaffeesorten in den Spalten: Arabica, Liberica, Robusta. Cluster 0 enthält 49 Robusta-Bohnen; Cluster 1 enthält 48 Arabica-Bohnen, 3 Liberica-Bohnen und 1 Robusta-Bohne; Cluster 2 enthält 47 Liberica-Bohnen und 2 Arabica-Bohnen

Jeder Cluster besteht größtenteils aus einer Sorte; nur 6 Bohnen sind abgewichen. Und k-means hat nie ein Label gesehen.

Cluster sind jedoch keine Klassen. Eine große Übereinstimmung bedeutet, dass sich die Klassen in den Daten unterscheiden. Eine schlechte Übereinstimmung ist eine Erkenntnis, kein Fehler.

challenge icon

Aufgabe

Mittel

Finden k-means-Cluster die Iris-Arten? Der Startcode skaliert die Blumen, speichert ihre Namen in species, liest k ein und gruppiert sie.

  1. Erstelle eine Kreuztabelle der Cluster und Arten.
  2. Gib für jede Art ihre höchste Anzahl in einem Cluster im Verhältnis zu ihrer Gesamtzahl aus.
  3. Zähle die Cluster, die nur eine Art enthalten.

Für einen anderen Garten und k = 3:

setosa: 48 of 50 share a cluster
versicolor: 41 of 50 share a cluster
virginica: 33 of 50 share a cluster
Clusters with one species: 0 of 3

Probier es selbst

import pandas as pd
from sklearn.datasets import load_iris
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans

# 150 Irisblüten, skaliert, und der Artname jeder Blüte, vor k-means verborgen
iris = load_iris()
X = StandardScaler().fit_transform(iris.data)
species = iris.target_names[iris.target]

k = int(input())
labels = KMeans(n_clusters=k, n_init=10, random_state=0).fit_predict(X)

# 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 Unüberwachtes Lernen

Übe selbstständig: Online-Python-Compiler