Standardizzazione
Fa parte della sezione Statistica per il machine learning del percorso Machine Learning di Coddy. Lezione 49 di 64.
Molti modelli apprendono al meglio quando ogni caratteristica è centrata su 0 con una dispersione di 1. La standardizzazione fa proprio questo: ogni valore diventa il suo punteggio z all'interno della colonna.
Cinque zucche, peso in kg e larghezza in cm:
Il broadcasting standardizza tutte le colonne contemporaneamente:
pumpkins = np.array([[30, 60],
[8, 30],
[22, 55],
[40, 65],
[15, 40]])
z = (pumpkins - pumpkins.mean(axis=0)) / pumpkins.std(axis=0)
print(np.round(z.mean(axis=0), 2))
print(np.round(z.std(axis=0), 2))Questo stampa:
[0. 0.]
[1. 1.]Arrotonda prima di controllare: senza arrotondamento, una media di 0 può essere stampata come 2.22044605e-17, una minima imprecisione dovuta all’arrotondamento.
A differenza di min-max, non esiste un intervallo fisso: la maggior parte dei valori rientra tra -2 e 2.
Sfida
MedioUna fattoria casearia individua mucche insolite. Ogni riga di cows corrisponde a una mucca: latte (litri al giorno), peso (kg) ed età (anni), indicati in features. Il programma legge la posizione di una mucca, k.
- Completa
standardize(X). Le righe di controllo stampano quindi[0. 0. 0.]e[1. 1. 1.]. - Trova il punteggio z della mucca
kpiù lontano da 0, ignorando il segno, e stampalo come mostrato, con 2 decimali.
Per una mucca di un'altra fattoria:
Column means: [0. 0. 0.]
Column stds: [1. 1. 1.]
Cow 2 stands out by weight: 1.76 std above the herdProvalo tu
import numpy as np
features = ["milk", "weight", "age"]
# Una riga per ogni mucca: latte in litri al giorno, peso in kg, età in anni
cows = np.array([[28, 610, 6],
[22, 540, 3],
[35, 680, 6],
[31, 590, 9],
[19, 650, 4],
[26, 520, 2],
[30, 600, 7]])
k = int(input())
# Restituisce X con ogni colonna standardizzata: media 0 e std 1
def standardize(X):
# Sostituisci la riga seguente con la standardizzazione
return X
# Non modificare le tre righe seguenti: verificano la tua funzione
z = standardize(cows)
print("Column means:", np.round(z.mean(axis=0), 2))
print("Column stds:", np.round(z.std(axis=0), 2))
# Scrivi il tuo codice qui sotto: cosa distingue la mucca k
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
1Centro e dispersione
Media e medianaPercentili e quartiliVarianza e deviazione standardCampione o popolazione?Il valore più frequenteRiepilogo: tempi di consegna4Campioni e popolazioni
Popolazione e campioneLe medie campionarie varianoDistribuzione campionariaCampioni più grandi, meno rumoreRiepilogo: sondare una città7Linee di tendenza
ResiduiAdattamento dei minimi quadratiTracciare la retta di adattamentoFare previsioni con una rettaQuanto è buono l’adattamento?Riepilogo: ore di pratica10Codifica delle categorie
Categorie come numeriCodifica one-hotRaggruppamento dei numeri in intervalliRiepilogo: annunci di auto2Distribuzioni
Istogrammi di densitàForme dei datiCurva normaleRegola 68-95-99,7Punteggi ZRiepilogo: durata della batteria5Valori anomali
Diagrammi a scatolaLa regola dell'IQRLa regola dello z-scoreGestire i valori anomaliRiepilogo: anomalie dei sensori3Probabilità tramite simulazione
La probabilità come frequenzaLa legge dei grandi numeriSomme dei dadiValore attesoProbabilità condizionataRiepilogo: probabilità al banco dei dadi6Relazioni
Leggere i grafici a dispersioneCorrelazioneMatrice di correlazioneMappe di calore della correlazioneCorrelazione non significa causalitàRiepilogo: gelato e sole9Scalatura delle feature
Perché scalare le featureScalatura Min-MaxStandardizzazioneStandardScalerRiepilogo: compagni di scalataEsercitati da solo: Compilatore Python online