Gestire i valori anomali
Fa parte della sezione Statistica per il machine learning del percorso Machine Learning di Coddy. Lezione 27 di 64.
Dieci appartamenti hanno usato circa 10 m³ d’acqua ciascuno, ma una perdita ha portato uno di loro a 64. Puoi eliminarlo oppure limitarlo al limite più vicino:
np.clip(a, low, high) limita un intero array:
water = np.array([8, 11, 9, 10, 12, 9, 64, 10, 11, 8])
low, high = 6.0, 14.0 # i limiti dell'IQR
dropped = water[(water >= low) & (water <= high)]
capped = np.clip(water, low, high)
print(len(dropped), len(capped))
print(capped)Questo stampa:
9 10
[ 8. 11. 9. 10. 12. 9. 14. 10. 11. 8.]Un modello potrebbe inseguire quel dato isolato, quindi decidi prima dell'addestramento. Correggi o elimina gli errori di battitura; mantieni o limita i valori estremi reali. Non eliminare mai nulla senza dirlo: specifica quanti ne hai modificati.
Sfida
MedioUn'app di ciclismo ha registrato le velocità medie di 15 corse in speeds; due sembrano anomale. Il codice iniziale ha inserito i limiti IQR in low e high.
- Crea
dropped, con le velocità comprese entro i limiti (inclusi entrambi), ecapped. - Stampa una riga ciascuno per keep, drop e cap: le corse, la loro media e il loro
.std(), arrotondati a 2 decimali. - Stampa quante corse sono state modificate dal cap.
Per le 10 corse di un altro ciclista:
Keep: 10 rides, mean 21.38, std 6.58
Drop: 9 rides, mean 19.2, std 0.77
Cap: 10 rides, mean 19.45, std 1.04
Capping changed 1 of 10 ridesProvalo tu
import numpy as np
# Restituisce i limiti IQR inferiore e superiore di un array
def iqr_fences(a):
q1 = np.percentile(a, 25)
q3 = np.percentile(a, 75)
iqr = q3 - q1
return q1 - 1.5 * iqr, q3 + 1.5 * iqr
speeds = np.array([24.5, 22.8, 26.1, 23.9, 3.1, 25.4, 21.7, 24.2, 27.3, 78.4, 23.1, 25.8, 22.4, 24.9, 26.6])
low, high = iqr_fences(speeds)
# 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 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 soleEsercitati da solo: Compilatore Python online