Menu
CoddyTech

Mẫu hay tổng thể?

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

Một người nuôi ong cân lượng mật ong từ 5 tổ, tính bằng kg. NumPy và pandas cho kết quả std khác nhau:

values = [18, 22, 25, 19, 26]
print(np.round(np.std(values), 2))
print(np.round(pd.Series(values).std(), 2))

Kết quả in ra:

3.16
3.54

Cả hai đều cộng các độ lệch bình phương giống nhau, rồi chia:

Các độ lệch bình phương của 5 tổ ong là 16, 0, 9, 9 và 16, cộng lại bằng 50. Một mũi tên dẫn đến np.std: 50 / 5 = 10, độ lệch chuẩn 3.16, công thức tổng thể. Mũi tên còn lại dẫn đến pandas: 50 / 4 = 12.5, độ lệch chuẩn 3.54, công thức mẫu

Chia cho n phù hợp với tổng thể, vì mọi giá trị đều nằm trong đó. Mẫu tập trung quanh giá trị trung bình của chính nó, nên độ phân tán trông nhỏ; n - 1 giúp bù lại điều đó.

ddof=1 cho NumPy biết dùng công thức mẫu: np.std(a, ddof=1) cho kết quả giống pandas. Dữ liệu mô hình là một mẫu: nếu độ lệch chuẩn khác nhau giữa các công cụ thì nguyên nhân là ddof, không phải lỗi.

challenge icon

Thử thách

Dễ

Một nhà sinh vật học tính được hai giá trị độ lệch chuẩn khác nhau cho sải cánh của một vài con dơi, tính bằng cm. Đoạn code khởi đầu đọc chúng vào mảng spans và Series column; phép kiểm tra in ra False.

  1. Các con dơi là một mẫu: sửa dòng NumPy để cả hai công cụ đều tính độ lệch chuẩn mẫu.
  2. Bên dưới dòng đó, in ra mức chênh lệch giữa np.std(spans) mặc định của NumPy và column.std(), làm tròn đến 2 chữ số thập phân.

Với sải cánh 33, 27, 30, 35 và 29:

Sample std: 3.19 cm, tools agree: True
Dividing by n underestimated it by 0.34 cm

Tự làm thử

import numpy as np
import pandas as pd

n = int(input())
values = []
for i in range(n):
    values.append(int(input()))
spans = np.array(values)
column = pd.Series(values)

# Phép kiểm tra này in ra False: sửa dòng NumPy để cả hai công cụ đều cho ra độ lệch chuẩn mẫu
numpy_std = np.round(np.std(spans), 2)
pandas_std = np.round(column.std(), 2)
print(f"Sample std: {numpy_std} cm, tools agree: {numpy_std == pandas_std}")

# 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