Menu
CoddyTech

Dwa rodzaje komórek

Część sekcji Uczenie nienadzorowane ścieżki Machine Learning w Coddy. Lekcja 51 z 51.

Laboratorium zmierzyło 569 próbek tkanek, po 30 pomiarów komórek każda. Za dużo, by je wykreślić, i żadne oko nie potrafi ich uporządkować:

Siatka 24 próbek i 30 pomiarów, każda komórka pokolorowana od niebieskiego dla niskiej wartości do czerwonego dla wysokiej, mozaika bez wyraźnego wzoru

Diagnoza każdej próbki — łagodna lub złośliwa — znajduje się w zamkniętej kopercie. Czy komórki mogą same podzielić się na dwa rodzaje bez tej informacji?

Zredukuj 30 pomiarów za pomocą PCA, pogrupuj to, co zostało, i dopiero wtedy otwórz kopertę, aby zobaczyć, jak blisko siebie znalazły się komórki.

challenge icon

Wyzwanie

Trudny

Program odczytuje udział wariancji do zachowania, 0.7 lub więcej; kod początkowy przygotowuje wykres.

  1. Przeskaluj dane, a następnie zachowaj jak najmniej składowych, osiągając ten udział. Wyświetl ich liczbę i informację, jaki udział zachowują.
  2. Pogrupuj te składowe metodą k-średnich: k = 2, n_init=10, random_state=0.
  3. Otwórz kopertę: dla każdego klastra wyświetl jego diagnozy i większość, zaczynając od największego klastra. Następnie wyświetl zgodność: udział próbek, których diagnoza odpowiada większości w ich klastrze.
  4. Utwórz wykres punktowy dwóch pierwszych składowych dla każdego klastra, z etykietą mostly benign lub mostly malignant; dodaj legendę i wyświetl wykres.

Dla pierwszych 300 próbek i wartości 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

a oto ich wykres:

Pierwsze 300 próbek na dwóch pierwszych składowych: głównie łagodny klaster po lewej i głównie złośliwy klaster rozciągający się w prawo, z legendą

Następnie Coddy opisze twój wykres.

Spróbuj swoich sił

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 próbek tkanki, po 30 pomiarów komórek w każdej
cancer = load_breast_cancer(as_frame=True)
cells = cancer.data
# Zapieczętowana koperta: informacja, czy każda próbka jest łagodna, czy złośliwa. Otwórz ją dopiero na końcu.
diagnosis = pd.Series(cancer.target_names[cancer.target])

# Udział wariancji do zachowania: 0.7 lub więcej
share = float(input())

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

# Napisz swój kod poniżej
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Uczenie nienadzorowane

Poćwicz samodzielnie: Kompilator Python online