Menu
CoddyTech

Le due feature migliori

Fa parte della sezione Statistica per il machine learning del percorso Machine Learning di Coddy. Lezione 59 di 64.

Ecco l’immagine promessa in questo capitolo: le due caratteristiche medie più forti in un unico grafico a dispersione, un colore per classe.

Campioni di tessuto in base alla media dei punti concavi sull’asse orizzontale e alla media del perimetro sull’asse verticale: i campioni benigni si concentrano in basso a sinistra, quelli maligni si distribuiscono verso l’alto e a destra, con le due nuvole che si incontrano in una fascia stretta

I campioni benigni si concentrano in basso a sinistra, quelli maligni si distribuiscono verso l’alto e a destra. Dove le nuvole si incontrano, un modello che usa questa coppia commetterà i suoi errori.

Un ultimo controllo: sono due copie quasi identiche?

first = strength.index[0]
second = strength.index[1]
print(np.round(df[first].corr(df[second]), 2))

Questo stampa 0.85: correlate, non copie. A 0.99 la seconda caratteristica ripeterebbe la prima e non aggiungerebbe quasi nulla di nuovo.

challenge icon

Sfida

Medio

Le caratteristiche error misurano quanto una misurazione è variata tra le cellule di un campione. Le due più forti riescono a distinguere le classi? Il codice iniziale le classifica in first e second; label(ax) assegna i nomi al grafico.

  1. Stampa r between them: e il loro r, con 2 cifre decimali.
  2. Disegna uno scatter plot per classe, con first sull’asse orizzontale e con il nome della classe come etichetta.
  3. Chiama label(ax), aggiungi una legenda e visualizzala.

Come questo, per la coppia worst più forte (r 0.82):

Uno scatter plot intitolato Worst Features, con worst concave points sull’asse orizzontale e worst perimeter su quello verticale; i campioni maligni in blu in alto a destra e quelli benigni in arancione in basso a sinistra

Poi valuta il tuo grafico: le nuvole sono separate? E, in base al tuo r, sono copie?

Provalo tu

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_breast_cancer

cancer = load_breast_cancer(as_frame=True)
df = cancer.frame
y = cancer.target
# Le dieci caratteristiche di errore: quanto varia ciascuna misurazione tra le cellule di un campione
X = cancer.data[cancer.feature_names[10:20]]

# In ordine di intensità: first e second sono le due più forti
strength = np.abs(X.corrwith(y)).sort_values(ascending=False)
first = strength.index[0]
second = strength.index[1]


# Imposta il titolo del grafico e assegna agli assi i nomi della coppia
def label(ax):
    ax.set_title("Error Features")
    ax.set_xlabel(first)
    ax.set_ylabel(second)


# Scrivi il tuo codice qui sotto
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Statistica per il machine learning

Esercitati da solo: Compilatore Python online