Menu
CoddyTech

Deux types de cellules

Fait partie de la section Apprentissage non supervisé du Journey Machine Learning de Coddy. Leçon 51 sur 51.

Un laboratoire a mesuré 569 échantillons de tissus, avec 30 mesures cellulaires chacun. Trop nombreux pour être représentés sur un graphique, et aucun œil ne peut les trier :

Une grille de 24 échantillons par 30 mesures, chaque cellule colorée du bleu pour les valeurs basses au rouge pour les valeurs élevées, une mosaïque sans motif clair

Le diagnostic de chaque échantillon, bénin ou malin, se trouve dans une enveloppe scellée. Les cellules peuvent-elles se répartir en deux catégories sans en avoir connaissance ?

Réduisez les 30 mesures avec PCA, regroupez ce qu’il en reste, puis ouvrez seulement l’enveloppe pour voir à quel point les cellules se sont rapprochées.

challenge icon

Défi

Difficile

Le programme lit la part de variance à conserver, 0.7 ou plus ; le code de départ prépare un graphique.

  1. Mets les données à l’échelle, puis conserve le plus petit nombre de composantes permettant d’atteindre cette part. Affiche leur nombre et la part qu’elles conservent.
  2. Regroupe ces composantes avec k-means : k = 2, n_init=10, random_state=0.
  3. Ouvre l’enveloppe : pour chaque cluster, en commençant par le plus grand, affiche les diagnostics et la classe majoritaire. Puis affiche le taux de concordance : la part des échantillons correspondant à la classe majoritaire de leur cluster.
  4. Représente les deux premières composantes de chaque cluster dans un nuage de points, avec la légende mostly benign ou mostly malignant ; affiche la légende, puis le graphique.

Pour les 300 premiers échantillons et 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

et leur graphique :

Les 300 premiers échantillons selon les deux premières composantes : un cluster majoritairement bénin à gauche et un cluster majoritairement malin qui s’étend vers la droite, avec une légende

Ensuite, Coddy décrit le tien.

Essayez vous-même

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 échantillons de tissus, 30 mesures cellulaires chacun
cancer = load_breast_cancer(as_frame=True)
cells = cancer.data
# L’enveloppe scellée : bénin ou malin pour chaque échantillon. Ne l’ouvrez qu’à la fin.
diagnosis = pd.Series(cancer.target_names[cancer.target])

# La part de variance à conserver, 0.7 ou plus
share = float(input())

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

# Écrivez votre code ci-dessous
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Apprentissage non supervisé

Entraînez-vous par vous-même : Compilateur Python en ligne