Menu
CoddyTech

Phân phối mẫu

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

Các phiên xem video có phân phối lệch phải: hầu hết chỉ kéo dài vài phút, một số kéo dài hai giờ. Tuy vậy, giá trị trung bình của 1000 mẫu, mỗi mẫu gồm 40 phiên, tạo thành hình chuông:

Hai biểu đồ tần suất trên cùng một biểu đồ. Các phiên riêng lẻ có màu xám tập trung gần mốc 0 phút, với đuôi dài đến 120. Giá trị trung bình của 40 phiên tạo thành hình chuông màu xanh hẹp quanh giá trị trung bình tổng thể là 30 phút

Biểu đồ tần suất của nhiều giá trị trung bình mẫu là phân phối lấy mẫu. Khi mỗi mẫu có đủ giá trị, biểu đồ có dạng hình chuông và tập trung quanh giá trị trung bình của tổng thể, ngay cả với dữ liệu lệch:

means = sample_means(sessions, 40, 1000)  # hàm (function) của bạn từ bài học Sample Means Vary
ax.hist(means, bins=12)

Đó là định lý giới hạn trung tâm (central limit theorem). Định lý này giúp ta dự đoán các giá trị trung bình: sai số trung bình của một mô hình trên một tập dữ liệu kiểm tra (test set) cũng xấp xỉ phân phối chuẩn.

challenge icon

Thử thách

Trung bình

6000 kích thước tệp trên ổ đĩa đám mây trong files (MB) có phân phối lệch phải: nhiều tài liệu, một vài video. Chương trình đọc kích thước mẫu; đoạn code khởi đầu có sample_means và hai biểu đồ.

  1. Tính 500 giá trị trung bình mẫu với kích thước đó.
  2. In trung bình trừ trung vị của các tệp, rồi đến các giá trị trung bình (2 chữ số thập phân).
  3. Vẽ biểu đồ tần suất của các tệp trên axs[0] và của các giá trị trung bình trên axs[1], đặt bins=12, rồi hiển thị.

Với một ổ đĩa khác và 60:

Files: mean - median = 25.28 MB
Sample means: mean - median = 0.55 MB

Hai biểu đồ tần suất đặt cạnh nhau. Tất cả tệp: cột đầu tiên cao và phần đuôi mỏng kéo dài sang phải. Giá trị trung bình mẫu: hình chuông đối xứng

Sau đó, Coddy hiển thị từng biểu đồ. Khoảng cách gần 0 nghĩa là độ lệch đã biến mất.

Tự làm thử

import numpy as np
import matplotlib.pyplot as plt

size = int(input())

# Đừng thay đổi các dòng bên dưới: kích thước tính bằng MB của từng tệp trong ổ đĩa
rng = np.random.default_rng(21)
files = np.round(rng.random(6000) ** 4 * 300 + 5, 2)


# Hàm (function) của bạn trong Sample Means Vary: giá trị trung bình của count mẫu
def sample_means(data, size, count):
    means = []
    for i in range(count):
        sample = rng.choice(data, size=size, replace=False)
        means.append(sample.mean())
    return np.array(means)


fig, axs = plt.subplots(1, 2)
axs[0].set_title("All Files")
axs[0].set_xlabel("File size (MB)")
axs[1].set_title("Sample Means")
axs[1].set_xlabel("Mean file size (MB)")

# Viết code 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