Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Xác suất - Thống kê] Bộ lọc thư rác Bayes ngây thơ

    Một bộ lọc thư dùng mô hình Naive Bayes để phân loại email vào kkk lớp (ví dụ: thư thường, thư rác, quảng cáo, ...) dựa trên sự xuất hiện của mmm từ khoá cho trước.

    Với lớp iii, biết xác suất tiên nghiệm πi\pi_iπi​ (∑iπi=1\sum_i \pi_i = 1∑i​πi​=1) và, với mỗi từ khoá jjj, xác suất từ khoá đó xuất hiện trong một email thuộc lớp iii là qijq_{ij}qij​ (giả định các từ khoá độc lập có điều kiện — "ngây thơ").

    Cho một email được mã hoá thành vector nhị phân độ dài mmm (1 nếu từ khoá xuất hiện, 0 nếu không), hãy tính xác suất hậu nghiệm mỗi lớp theo định lý Bayes:

    P(lớp i∣x)∝πi∏j=1mqijxj(1−qij)1−xjP(\text{lớp } i \mid x) \propto \pi_i \prod_{j=1}^m q_{ij}^{x_j} (1-q_{ij})^{1-x_j}P(lớp i∣x)∝πi​∏j=1m​qijxj​​(1−qij​)1−xj​

    và xác định lớp có xác suất hậu nghiệm lớn nhất (nếu đồng hạng, chọn chỉ số nhỏ nhất).

    • Định dạng đầu vào:

      Dòng 1: hai số nguyên kkk và mmm (1≤k1 \le k1≤k, 0≤m0 \le m0≤m). kkk dòng tiếp theo, dòng thứ iii gồm m+1m+1m+1 số thực: πi\pi_iπi​ rồi đến qi1,…,qimq_{i1}, \dots, q_{im}qi1​,…,qim​ (tối đa 6 chữ số thập phân). Dòng cuối: mmm số nguyên 0/1 là vector đặc trưng của email cần phân loại (nếu m=0m=0m=0 dòng này có thể để trống).

    • Định dạng đầu ra:

      In ra hai giá trị cách nhau bởi khoảng trắng: chỉ số lớp dự đoán (1-based) và xác suất hậu nghiệm tương ứng làm tròn 6 chữ số thập phân (ví dụ 1 0.666667). Nếu với mọi lớp xác suất sinh ra dữ liệu này đều bằng 0 (tổng chuẩn hoá bằng 0), in ra UNDEFINED.

    Ví dụ:

    Đầu vào:

    2 3
    0.4 0.8 0.1 0.05
    0.6 0.05 0.2 0.3
    1 0 1
    

    Đầu ra:

    1 0.666667
    

    Đầu vào:

    1 0
    1.0
    

    Đầu ra:

    1 1.000000
    

    Đang tải editor...