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ć:
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.
Wyzwanie
TrudnyProgram odczytuje udział wariancji do zachowania, 0.7 lub więcej; kod początkowy przygotowuje wykres.
- Przeskaluj dane, a następnie zachowaj jak najmniej składowych, osiągając ten udział. Wyświetl ich liczbę i informację, jaki udział zachowują.
- Pogrupuj te składowe metodą k-średnich: k = 2,
n_init=10,random_state=0. - 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.
- Utwórz wykres punktowy dwóch pierwszych składowych dla każdego klastra, z etykietą
mostly benignlubmostly 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.877a oto ich wykres:
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
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Uczenie nienadzorowane
1Znajdowanie grup
Uczenie się bez etykietMierzenie podobieństwaK-Means krok po krokuK-Means w scikit-learnPodsumowanie: członkowie siłowni4Klasteryzacja hierarchiczna
Łączenie krok po krokuModele aglomeracyjneDendrogramyPodsumowanie: rasy psów7PCA w praktyce
Poznajemy 64 wymiarySkładowe jako wzorceKompresuj i odtwórzPCA przed modelemPodsumowanie: skaner twarzy10Projekt: Odkrywca cyfr
Przyjrzyj się cyfromZmniejsz wymiar za pomocą PCAGrupuj cyfryNazwij grupyZnajdź te nietypowe2Wybór k
InercjaMetoda łokciaWyniki silhouetteSkalowanie przed klasteryzacjąPodsumowanie: strefy dostawPoćwicz samodzielnie: Kompilator Python online