Menu
CoddyTech

La regla del RIC

Parte de la sección Estadística para ML del Journey de Machine Learning de Coddy. Lección 25 de 64.

Un diagrama de caja muestra los valores alejados como puntos. Para encontrarlos en el código, convierte su regla en dos límites, a 1.5 IQR de cada borde de la caja:

12 precios de entradas para conciertos como puntos en una línea. Diez se encuentran dentro de una caja estrecha alrededor de 37 a 43 euros. Los límites discontinuos están a 1.5 IQR de cada borde de la caja, en 28.1 y 51.1, y los precios 18 y 72 quedan más allá de ellos, marcados en rojo como valores atípicos

En código, con 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)])

Esto imprime:

28.125 51.125
[72 18]

Los cuartiles ignoran los extremos, así que un valor atípico no puede estirar los límites para ocultarse. Marca estos valores antes del entrenamiento: un valor extremo puede arrastrar el modelo hacia él.

challenge icon

Desafío

Intermedio

Un profesor cronometró un cuestionario, y el programa lee los minutos de cada estudiante en minutes. El código inicial imprime los límites que devuelve iqr_fences.

  1. Completa iqr_fences(a) para que devuelva el límite inferior y el límite superior del IQR de a.
  2. Abajo, imprime Unusual: y los tiempos que quedan fuera de los límites, en su orden original.

Para 9 estudiantes que tardaron 8, 11, 9, 10, 27, 12, 9, 10 y 11 minutos:

Fences: 6.0 to 14.0 minutes
Unusual: [27]

Pruébalo tú mismo

import numpy as np


# Devuelve los límites inferior y superior del IQR de un array
def iqr_fences(a):
    # Escribe tu código aquí
    return 0.0, 0.0


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

# No cambies las líneas siguientes
low, high = iqr_fences(minutes)
print(f"Fences: {np.round(low, 2)} to {np.round(high, 2)} minutes")

# Escribe tu código a continuación
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Estadística para ML

Practica por tu cuenta: Compilador de Python online