Menu
CoddyTech

Feature a confronto con l'etichetta

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

Quali caratteristiche si muovono insieme all’etichetta? Calcola la correlazione di ciascuna con essa, 0 per maligno e 1 per benigno, e ordinale in base all’intensità:

Barre orizzontali di r per le dieci caratteristiche medie dei dati dei tessuti, dalla più forte in alto: punti concavi medi -0.78, perimetro medio -0.74, raggio medio -0.73, fino alla dimensione frattale media a 0.01

X.corrwith(y) restituisce subito l'r di ogni caratteristica:

X = cancer.data[cancer.feature_names[:10]]
r = X.corrwith(cancer.target)
strength = np.abs(r).sort_values(ascending=False)
for name in strength.index[:3]:
    print(name, np.round(r[name], 2))

Questo stampa:

mean concave points -0.78
mean perimeter -0.74
mean radius -0.73

Un valore negativo di r significa che la caratteristica è maggiore nella classe 0: le cellule maligne hanno più punti concavi. np.abs ordina in base all'intensità, indipendentemente dal segno.

Vicino a 0, come la dimensione frattale, una caratteristica differisce appena tra le classi: una candidata da escludere.

challenge icon

Sfida

Medio

Quali caratteristiche del tessuto dovrebbe provare per prime un modello? Gli input sono un gruppo, error o worst, e k; il codice iniziale inserisce le caratteristiche del gruppo in X.

  1. Ordina le caratteristiche in base alla forza della loro correlazione r con y.
  2. Stampa le prime k con il loro valore r con segno, con 2 decimali.
  3. Controlla il segno: stampa le medie per classe della caratteristica più forte.

Per il gruppo mean e k = 2:

Top 2 mean features:
mean concave points: -0.78
mean perimeter: -0.74
mean concave points by class: malignant 0.09, benign 0.03

Provalo tu

import numpy as np
from sklearn.datasets import load_breast_cancer

group = input()
k = int(input())
cancer = load_breast_cancer(as_frame=True)
df = cancer.frame
y = cancer.target
# Las diez características del grupo: mean, error o worst
start = {"mean": 0, "error": 10, "worst": 20}[group]
X = cancer.data[cancer.feature_names[start:start + 10]]

# Escribe tu código a continuación
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