Menu
CoddyTech

A regra do IQR

Parte da seção Estatística para ML do Journey de Machine Learning da Coddy. Lição 25 de 64.

Um gráfico de caixa representa valores distantes como pontos. Para encontrá-los no código, transforme sua regra em duas cercas, a 1.5 IQRs além de cada extremidade da caixa:

12 preços de ingressos para shows como pontos em uma linha. Dez ficam dentro de uma caixa estreita em torno de 37 a 43 euros. Cercas tracejadas ficam a 1.5 IQRs de cada extremidade da caixa, em 28.1 e 51.1, e os preços 18 e 72 ficam além delas, marcados como valores atípicos em vermelho

No código, com máscaras:

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)])

Isso imprime:

28.125 51.125
[72 18]

Os quartis ignoram os extremos, então um valor atípico não pode alargar os limites para se esconder. Sinalize esses valores antes do treinamento: um único valor extremo pode puxar um modelo em sua direção.

challenge icon

Desafio

Médio

Um professor cronometrou um teste, e o programa lê os minutos de cada estudante em minutes. O código inicial imprime os limites que iqr_fences retorna.

  1. Complete iqr_fences(a) para que retorne o limite inferior e o limite superior do IQR de a.
  2. Abaixo, imprima Unusual: e os tempos fora dos limites, na ordem original.

Para 9 estudantes que levaram 8, 11, 9, 10, 27, 12, 9, 10 e 11 minutos:

Fences: 6.0 to 14.0 minutes
Unusual: [27]

Experimente você mesmo

import numpy as np


# Retorna os limites inferior e superior do IQR de um array
def iqr_fences(a):
    # Escreva seu código aqui
    return 0.0, 0.0


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

# Não altere as linhas abaixo
low, high = iqr_fences(minutes)
print(f"Fences: {np.round(low, 2)} to {np.round(high, 2)} minutes")

# Escreva seu código abaixo
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Estatística para ML

Pratique por conta própria: Compilador de Python online