Menu
CoddyTech

Trung bình mẫu biến thiên

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

Một mẫu gồm 30 kiện hàng cho ta một ước tính về khối lượng trung bình của chúng. Lấy mẫu lần nữa, bạn sẽ có một ước tính khác. Đây là 40 mẫu:

40 chấm, mỗi chấm biểu thị một mẫu gồm 30 kiện hàng, nằm rải rác trong khoảng từ 7.2 đến 8.8 kg quanh đường nét đứt biểu thị khối lượng trung bình thực của tất cả kiện hàng, là 8.05 kg

Để thu thập các giá trị này, hãy lặp lại việc lấy mẫu trong một vòng lặp, thêm từng giá trị trung bình vào một danh sách, rồi chuyển danh sách thành mảng:

means = []
for i in range(5):
    sample = rng.choice(parcels, size=30, replace=False)
    means.append(sample.mean())
means = np.array(means)
print(np.round(means, 2))

Kết quả in ra là:

[7.98 8.05 8.12 8.19 8.76]

giá trị trung bình mẫu (sample mean) cũng là một đại lượng ngẫu nhiên, và means.std() đo mức độ biến động của nó. Điểm kiểm tra của mô hình là một giá trị trung bình như vậy: một bộ test khác sẽ làm giá trị này thay đổi.

challenge icon

Thử thách

Trung bình

Mỗi tuần, một người làm vườn đo một mẫu ngẫu nhiên gồm 1800 cây tre trong vườn ươm. Trung bình mẫu có thể dao động bao nhiêu giữa các tuần?

Hoàn thành sample_means(data, size, count): lấy count mẫu gồm size giá trị từ data, không lấy trùng giá trị trong một mẫu, rồi thêm giá trị trung bình của mỗi mẫu. Những dòng cuối trong mã khởi đầu gọi hàm này và in báo cáo.

Với một vườn ươm khác và các mẫu gồm 10 giá trị:

200 means of 10 plants: 105.25 to 137.13 cm
Spread of the means (std): 5.27 cm

Tự làm thử

import numpy as np

size = int(input())

# Đừng thay đổi các dòng bên dưới: chiều cao tính bằng cm của từng cây tre
rng = np.random.default_rng(20)
heights = np.round(rng.normal(95, 15, size=1800), 1)


def sample_means(data, size, count):
    means = []
    # Viết code bên dưới: lấy count mẫu, mỗi mẫu gồm size giá trị, rồi lưu giá trị trung bình của từng mẫu

    return np.array(means)


# Đừng thay đổi các dòng bên dưới
means = sample_means(heights, size, 200)
print(f"200 means of {size} plants: {np.round(means.min(), 2)} to {np.round(means.max(), 2)} cm")
print(f"Spread of the means (std): {np.round(means.std(), 2)} cm")
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