Menu
CoddyTech

Quy tắc IQR

Thuộc phần Thống kê cho machine learning trong hành trình Machine Learning của Coddy. Bài học 25 trên 64.

Biểu đồ hộp biểu thị các giá trị xa bằng những dấu chấm. Để tìm chúng bằng code, hãy chuyển quy tắc của biểu đồ thành hai ngưỡng, mỗi ngưỡng cách một cạnh hộp 1.5 lần IQR:

12 mức giá vé hòa nhạc được biểu thị bằng các dấu chấm trên một đường thẳng. Mười mức giá nằm trong một hộp hẹp, khoảng từ 37 đến 43 euro. Các ngưỡng nét đứt nằm cách mỗi cạnh hộp 1.5 lần IQR, tại 28.1 và 51.1. Các mức giá 18 và 72 nằm ngoài những ngưỡng này, được đánh dấu màu đỏ là các giá trị ngoại lệ

Trong code, dùng mặt nạ:

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

Kết quả in ra là:

28.125 51.125
[72 18]

Tứ phân vị bỏ qua các giá trị cực đoan, nên giá trị ngoại lệ không thể kéo giãn các ngưỡng để tự che giấu. Hãy đánh dấu những giá trị này trước khi huấn luyện: chỉ một giá trị bất thường cũng có thể khiến mô hình lệch về phía nó.

challenge icon

Thử thách

Trung bình

Giáo viên bấm giờ cho một bài trắc nghiệm, chương trình đọc số phút làm bài của từng học sinh vào minutes. Đoạn code khung in ra các ngưỡng mà iqr_fences trả về.

  1. Hoàn thiện iqr_fences(a) để hàm trả về ngưỡng dưới và ngưỡng trên của IQR cho a.
  2. Bên dưới, in ra Unusual: và các khoảng thời gian nằm ngoài hai ngưỡng, theo thứ tự ban đầu.

Với 9 học sinh làm bài trong 8, 11, 9, 10, 27, 12, 9, 10 và 11 phút:

Fences: 6.0 to 14.0 minutes
Unusual: [27]

Tự làm thử

import numpy as np


# Trả về ngưỡng IQR dưới và trên của một mảng
def iqr_fences(a):
    # Viết code của bạn ở đây
    return 0.0, 0.0


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

# Đừng thay đổi các dòng bên dưới
low, high = iqr_fences(minutes)
print(f"Fences: {np.round(low, 2)} to {np.round(high, 2)} minutes")

# Viết code của bạn bên dưới
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Thống kê cho machine learning

Tự luyện tập: Trình biên dịch Python online