Menu
CoddyTech

Đường cong chuẩ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 9 trên 64.

Chiều cao, điểm thi, những bao gạo: nhiều phép đo tập trung thành phân phối chuẩn, hay đường cong hình chuông. 500 bao từ một máy:

Biểu đồ tần suất mật độ của trọng lượng 500 bao gạo, với một đường cong hình chuông màu cam phủ lên trên. Một đường nét đứt đánh dấu giá trị trung bình, 1000 g, ở đỉnh, và một mũi tên dài 8 g biểu thị độ lệch chuẩn, tức độ rộng

Hai con số xác định hình dạng: giá trị trung bình xác định đỉnh, độ lệch chuẩn xác định độ rộng. SciPy, thư viện khoa học, có công thức:

from scipy import stats

ax.hist(bags, bins=16, density=True)
xs = np.linspace(bags.min(), bags.max(), 100)
ax.plot(xs, stats.norm.pdf(xs, bags.mean(), bags.std()))

stats.norm.pdf(x, mean, std) là độ cao của đường cong tại x, với một giá trị hoặc một mảng. Diện tích dưới đường cong là 1, giống như diện tích của biểu đồ tần suất mật độ, nên cả hai có thể dùng chung một biểu đồ.

Một số mô hình hoạt động tốt hơn với các đặc trưng có phân phối gần chuẩn. Biểu đồ này kiểm tra điều đó.

challenge icon

Thử thách

Dễ

Bu lông nên dài 50 mm. Phần khởi đầu lưu 240 độ dài đã đo trong lengths và thiết lập biểu đồ. Hãy so sánh chúng với đường cong chuẩn:

  1. In ra giá trị trung bình và độ lệch chuẩn (np.std), làm tròn đến 2 chữ số thập phân, như bên dưới.
  2. Vẽ biểu đồ tần suất mật độ với bins=15.
  3. Vẽ đường cong khớp trên biểu đồ: 100 điểm từ bu lông ngắn nhất đến dài nhất.
  4. Hiển thị biểu đồ.

Với một lô khác:

Fitted curve: mean 49.99 mm, std 0.42 mm

và biểu đồ:

Biểu đồ tần suất mật độ của 180 độ dài bu lông, từ khoảng 49 đến 51 mm, với một đường cong hình chuông trơn phủ lên trên và đạt đỉnh gần 50

Tự làm thử

import numpy as np
import matplotlib.pyplot as plt
from scipy import stats

# Đừng thay đổi các dòng bên dưới
rng = np.random.default_rng(31)
lengths = np.round(rng.normal(50, 0.4, size=240), 2)

fig, ax = plt.subplots()
ax.set_title("Bolt Lengths")
ax.set_xlabel("Length (mm)")
ax.set_ylabel("Density")

# 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