Menu
CoddyTech

La regola dell'IQR

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

Un diagramma a scatola rappresenta i valori lontani con dei punti. Per trovarli nel codice, trasforma la sua regola in due limiti, a 1.5 IQR oltre ciascun bordo della scatola:

12 prezzi dei biglietti per un concerto rappresentati come punti su una linea. Dieci si trovano all'interno di una scatola stretta intorno a 37 e 43 euro. I limiti tratteggiati si trovano a 1.5 IQR da ciascun bordo della scatola, a 28.1 e 51.1, e i prezzi 18 e 72 li superano, contrassegnati in rosso come valori anomali

Nel codice, con le maschere:

prices = np.array([35, 42, 38, 45, 40, 72, 37, 44, 39, 41, 36, 18])
q1 = np.percentile(prices, 25)
q3 = np.percentile(prices, 75)
iqr = q3 - q1
low = q1 - 1.5 * iqr
high = q3 + 1.5 * iqr
print(low, high)
print(prices[(prices < low) | (prices > high)])

Questo stampa:

28.125 51.125
[72 18]

I quartili ignorano i valori estremi, quindi un valore anomalo non può allargare i limiti per nascondersi. Segnala questi valori prima dell'addestramento: un valore fuori scala può attirare un modello verso di sé.

challenge icon

Sfida

Medio

Un insegnante ha cronometrato un quiz e il programma legge i minuti di ogni studente in minutes. Il codice iniziale stampa i limiti restituiti da iqr_fences.

  1. Completa iqr_fences(a) in modo che restituisca il limite inferiore e quello superiore dell’IQR di a.
  2. Qui sotto, stampa Unusual: e i tempi al di fuori dei limiti, nel loro ordine originale.

Per 9 studenti che impiegano 8, 11, 9, 10, 27, 12, 9, 10 e 11 minuti:

Fences: 6.0 to 14.0 minutes
Unusual: [27]

Provalo tu

import numpy as np


# Restituisce i limiti inferiore e superiore dell'IQR di un array
def iqr_fences(a):
    # Scrivi qui il tuo codice
    return 0.0, 0.0


n = int(input())
values = []
for i in range(n):
    values.append(int(input()))
minutes = np.array(values)

# Non modificare le righe sottostanti
low, high = iqr_fences(minutes)
print(f"Fences: {np.round(low, 2)} to {np.round(high, 2)} minutes")

# 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