Menu
CoddyTech

Zwei Arten von Zellen

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

Ein Labor hat 569 Gewebeproben mit jeweils 30 Zellmessungen untersucht. Zu viele, um sie darzustellen, und kein Auge kann sie sortieren:

Ein Raster aus 24 Proben und 30 Messungen, jede Zelle von Blau für niedrig bis Rot für hoch eingefärbt, ein Flickenteppich ohne klares Muster

Die Diagnose jeder Probe, gutartig oder bösartig, steckt in einem versiegelten Umschlag. Können sich die Zellen auch ohne sie in zwei Gruppen einteilen?

Reduziere die 30 Messwerte mit PCA, bilde Cluster aus dem, was übrig bleibt, und öffne erst dann den Umschlag, um zu sehen, wie nahe die Zellen beieinander lagen.

challenge icon

Aufgabe

Schwer

Das Programm liest den Anteil der beizubehaltenden Varianz ein, 0.7 oder mehr; der Starter richtet ein Diagramm ein.

  1. Skaliere und behalte dann die wenigsten Komponenten, die diesen Anteil erreichen. Gib aus, wie viele es sind und welchen Anteil sie beibehalten.
  2. Gruppiere diese Komponenten mit k-means: k = 2, n_init=10, random_state=0.
  3. Öffne den Umschlag: Gib pro Cluster, beginnend mit dem größten, die Diagnosen und die Mehrheit aus. Gib dann die Übereinstimmung aus: den Anteil, der mit der Mehrheit des jeweiligen Clusters übereinstimmt.
  4. Stelle die ersten beiden Komponenten pro Cluster als Streudiagramm dar und beschrifte sie mit mostly benign oder mostly malignant; füge eine Legende hinzu und zeige das Diagramm an.

Für die ersten 300 Stichproben und 0.8:

Components for 80% of the variance: 5 (they keep 0.844)
Cluster of 175: 146 benign, 29 malignant, so mostly benign
Cluster of 125: 8 benign, 117 malignant, so mostly malignant
Agreement with the diagnosis: 0.877

und das zugehörige Diagramm:

Die ersten 300 Stichproben auf den ersten beiden Komponenten: ein überwiegend gutartiger Cluster links und ein überwiegend bösartiger Cluster, der sich nach rechts erstreckt, mit einer Legende

Dann beschreibt Coddy deine Lösung.

Probier es selbst

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_breast_cancer
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans

# 569 Gewebeproben mit jeweils 30 Zellmesswerten
cancer = load_breast_cancer(as_frame=True)
cells = cancer.data
# Der versiegelte Umschlag: gutartig oder bösartig für jede Probe. Öffne ihn erst am Ende.
diagnosis = pd.Series(cancer.target_names[cancer.target])

# Der beizubehaltende Anteil der Varianz, 0.7 oder mehr
share = float(input())

fig, ax = plt.subplots()
ax.set_title("Cells on Two Components")
ax.set_xlabel("Component 1")
ax.set_ylabel("Component 2")

# Schreibe deinen Code darunter
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