Menu
CoddyTech

Biểu đồ tần suất mật độ

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

Chương này nói về hình dạng của dữ liệu. Khi kết thúc chương, bạn sẽ khớp một đường cong hình chuông với biểu đồ tần suất và tìm ra phần tử khác biệt:

Biểu đồ tần suất của 300 quả dưa với một đường cong hình chuông màu cam mượt mà bên trên và một chấm đỏ bên dưới quả dưa nhẹ nhất

Trước tiên, cần sửa một điểm. Số lượng mẫu có thể khiến một nhóm lớn lấn át nhóm nhỏ, như thời gian phản ứng của 500 người trưởng thành so với 50 game thủ:

Hai biểu đồ thể hiện cùng một tập hợp thời gian phản ứng. Bên trái, số lượng mẫu: 500 người trưởng thành áp đảo 50 game thủ, các cột của nhóm này gần như không thấy. Bên phải, density=True: cả hai nhóm đều hiện rõ, nhóm game thủ phản ứng nhanh hơn và tập trung hơn

density=True điều chỉnh từng nhóm sao cho tổng diện tích các cột của nhóm bằng 1:

ax.hist(adults, bins=16, density=True, alpha=0.5, label="adults")
ax.hist(gamers, bins=16, density=True, alpha=0.5, label="gamers")

Mỗi chiều cao bằng count / (n * bin width), nên diện tích của một cột biểu thị tỷ lệ của nhóm đó. Giờ đây, các nhóm có kích thước bất kỳ đều được so sánh công bằng.

challenge icon

Thử thách

Dễ

Một bệnh viện ở thành phố cân 400 trẻ sơ sinh, còn một bệnh viện ở nông thôn cân 60 trẻ. Phần code khởi đầu lưu cân nặng trong city và rural, đồng thời thiết lập biểu đồ có tiêu đề và nhãn.

  1. Vẽ biểu đồ tần suất mật độ cho mỗi nhóm với bins=10, alpha=0.5 và nhãn city hoặc rural.
  2. Thêm chú giải và hiển thị biểu đồ.

Coddy mô tả biểu đồ của bạn. Biểu đồ sẽ trông giống biểu đồ này, từ hai người trồng cà chua:

Hai biểu đồ tần suất mật độ trong suốt có tiêu đề Cân nặng cà chua: cà chua trồng ở trang trại nặng khoảng 90 đến 200 gram, cà chua trong vườn nhẹ hơn, chủ yếu từ 95 đến 145 gram, kèm chú giải

Tự làm thử

import numpy as np
import matplotlib.pyplot as plt

# Đừng thay đổi các dòng bên dưới
rng = np.random.default_rng(23)
city = np.round(rng.normal(3.4, 0.5, size=400), 2)
rural = np.round(rng.normal(3.2, 0.45, size=60), 2)

fig, ax = plt.subplots()
ax.set_title("Birth Weights")
ax.set_xlabel("Weight (kg)")
ax.set_ylabel("Density")

# 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