Menu
CoddyTech

Xác suất có điều kiệ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 17 trên 64.

Một nửa trong số 10 email này là thư rác. Nhưng khi biết một email có liên kết, bạn chỉ cần quan tâm đến những email có liên kết:

10 email được chia thành hai nhóm ô. Một khung đánh dấu 4 email có liên kết, trong đó có 3 email rác; 6 email không có liên kết có 2 email rác

Tỷ lệ trong nhóm đó là xác suất có điều kiện để thư rác xuất hiện khi có liên kết, P(spam | link). Hãy đếm cả hai, rồi chia cho điều kiện:

emails = pd.DataFrame({
    "link": ["yes", "no", "yes", "no", "no", "no", "yes", "no", "no", "yes"],
    "spam": ["yes", "no", "yes", "no", "no", "yes", "no", "no", "yes", "yes"],
})
spam = emails["spam"] == "yes"
link = emails["link"] == "yes"
print(spam.mean())
print((spam & link).sum() / link.sum())

Kết quả in ra là:

0.5
0.75

Điều kiện bạn đã biết nằm bên dưới đường phân số: bạn lấy nó làm mẫu số. Bộ lọc thư rác hoạt động theo cách này: xác suất thư rác dựa trên các từ trong email.

challenge icon

Thử thách

Trung bình

Một khu chợ ghi lại dữ liệu trong 50 ngày ở mornings.csv: sky buổi sáng (clear, cloudy hoặc foggy) và rain, có giá trị yes nếu trời mưa vào lúc sau. Bầu trời nào là dấu hiệu cảnh báo tốt nhất?

  1. Với mỗi bầu trời trong skies, hãy in ra khả năng trời mưa khi bầu trời có trạng thái đó.
  2. In ra khả năng trời mưa vào một ngày bất kỳ.
  3. In ra dấu hiệu tốt nhất: bầu trời có khả năng cao nhất.

Với nhật ký ngắn hơn, làm tròn đến 2 chữ số thập phân:

Rain after a clear morning: 0.25
Rain after a cloudy morning: 0.33
Rain after a foggy morning: 0.75
Rain on any day: 0.45
Best clue for rain: foggy

Tự làm thử

import pandas as pd

days = pd.read_csv("mornings.csv")
skies = ["clear", "cloudy", "foggy"]

# 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