Due tipi di celle
Fa parte della sezione Apprendimento non supervisionato del percorso Machine Learning di Coddy. Lezione 51 di 51.
Un laboratorio ha misurato 569 campioni di tessuto, ciascuno con 30 misurazioni cellulari. Sono troppi per rappresentarli in un grafico, e nessuno riesce a classificarli a occhio:
La diagnosi di ogni campione, benigna o maligna, è contenuta in una busta sigillata. Le cellule possono dividersi in due tipi senza conoscerla?
Riduci le 30 misurazioni con PCA, raggruppa ciò che resta e solo allora apri la busta per vedere quanto si sono avvicinate le cellule.
Sfida
DifficileIl programma legge la quota di varianza da mantenere, 0.7 o più; il codice iniziale prepara un grafico.
- Scala, poi mantieni il minor numero di componenti che raggiunge quella quota. Stampa quante sono e quanta varianza mantengono.
- Raggruppa quelle componenti con k-means: k = 2,
n_init=10,random_state=0. - Apri la busta: per ogni cluster, dal più grande al più piccolo, stampa le diagnosi e la maggioranza. Poi stampa l’accordo: la quota che corrisponde alla maggioranza del cluster.
- Mostra le prime due componenti di ogni cluster in un grafico a dispersione, con l’etichetta
mostly benignomostly malignant; aggiungi la legenda e mostra il grafico.
Per i primi 300 campioni e 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.877e il relativo grafico:
Poi Coddy descrive il tuo risultato.
Provalo tu
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 campioni di tessuto, 30 misurazioni cellulari per ciascuno
cancer = load_breast_cancer(as_frame=True)
cells = cancer.data
# La busta sigillata: benigno o maligno per ogni campione. Aprila solo alla fine.
diagnosis = pd.Series(cancer.target_names[cancer.target])
# La quota di varianza da conservare, 0.7 o più
share = float(input())
fig, ax = plt.subplots()
ax.set_title("Cells on Two Components")
ax.set_xlabel("Component 1")
ax.set_ylabel("Component 2")
# Scrivi il tuo codice qui sotto
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Apprendimento non supervisionato
1Trovare gruppi
Apprendimento senza etichetteMisurare la similaritàK-Means a manoK-Means in scikit-learnRiepilogo: iscritti alla palestra4Clustering gerarchico
Unire passo dopo passoModelli agglomerativiDendrogrammiRiepilogo: razze canine7PCA nella pratica
Vedere 64 dimensioniComponenti come schemiComprimere e ricostruirePCA prima di un modelloRiepilogo: scanner facciale10Progetto: Esplorare le cifre
Osserva le cifreRiduci con PCARaggruppa le cifreDai un nome ai gruppiTrova gli elementi insoliti2Scelta di k
InerziaIl metodo del gomitoPunteggi silhouetteScala prima del clusteringRiepilogo: zone di consegna8Rilevamento delle anomalie
Individuare gli elementi anomaliIsolation ForestLocal Outlier FactorPunteggi di anomaliaRiepilogo: monitoraggio del server11Sfide finali
Segmenti di acquistiRilevamento delle frodi con carteAmmassi stellariDue tipi di celleEsercitati da solo: Compilatore Python online