Với mỗi văn bản D document, người ta sẽ tính cho mỗi loại một xác suất mà tài liệu D có thể thuộc vào lớp tài liệu đó bằng việc sử dụng luật Bayes: Tài liệu D sẽ được gán cho lớp tài
Trang 1Các thành viên:
Nguyễn Đình Dũng 20086079
DÙNG THUẬT TỐN NẠVE
GRAHAM ”
Trang 2 Thư rác:
- Chứa các quảng cáo sản phẩm, dịch vụ, đăng
kí website trả phí,… được gửi với số lượng lớn
và có giá trị thấp
- Gây phiền toái, mất thời gian cho việc sắp
xếp, tìm kiếm thư cá nhân
- Mất thông tin cá nhân, thông tin tài khoản, thông tin thẻ tín dụng,… và các hình thức lừa đảo qua mạng
Thư rác – Tác hại thư rác
Trang 3 Tốc độ tăng trưởng của thư rác: chiếm tỉ lệ
lớn trong tổng số thư được gửi đi trên phạm vi toàn cầu …
Thư rác – tác hại thư rác
Trang 4 Đối với các email cá nhân thì phương pháp lọc
thư rác phổ biến hiện nay là “phân loại qua
nội dung của các email” bằng việc ứng dụng các phương pháp phân loại văn bản
Phân loại email thực chất là phương pháp
“phân loại văn bản hai lớp” dựa vào nội dung của các email được gửi đến
Trong đề tài này nhóm em xin trình bày một phương pháp phân loại văn bản khá phổ biến
“Naive Bayes”
Bài toán Phân loại thư rác
Trang 5 Cơ sở của phương pháp phân loại văn bản Naive
Bayes là chủ yếu dựa trên các giả định của Bayes
Với mỗi văn bản D (document), người ta sẽ tính cho mỗi loại một xác suất mà tài liệu D có thể thuộc vào lớp tài liệu đó bằng việc sử dụng luật Bayes:
Tài liệu D sẽ được gán cho lớp tài liệu nào có xác
suất hậu nghiệm cao nhất tức là lớp Ci nào có giá trị
P(Ci | D) cao nhất trong tất cả các lớp Ci
Bài toán Phân loại văn bản
Trang 6 Do bài tốn PLTR chính là bài tốn PLVB với 2 lớp là SPAM và NON-SPAM (HAM) nên cĩ thể áp dụng thuật tốn NB của PLVB sang PLTR.
Nguyên tắc tính các xác suất bằng thuật tốn
Bayes:
- Giả sử nội dung của mỗi thư điện tử là: content
- Lớp thư rác kí hiệu là: spam
- Lớp thư hợp lệ kí hiệu là: ham
- Word1, word2, word3…wordm là các từ đặc trưng
xuất hiện trong content
cần tính: Xác suất để một thư điện tử là thư rác:
P(spam|content)
Thuật tốn Nạve Bayes trong
PLTR
Trang 7 Trong đĩ total được xác định như sau:
Total = P(content | spam)*P(spam) + P(content |
ham)*P(ham)
P(spam) = total spam / total messages
P(ham) = total ham / total messages
ĐẾM TẦN SỐ XUẤT
XUẤT HIỆN CỦA TỪ,
ĐẾM SỐ THƯ mỗi loại.
Thuật tốn Nạve Bayes trong
PLTR
Trang 8 Theo tác giả của bài viết Paul
Graham, để giải quyết bài tốn thư rác, ta vẫn cĩ thể sử dụng thuật tốn Nạve Bayes với một vài thay đổi so với thuật tốn ban đầu
Ý tưởng cơ bản của thuật tốn cải
tiến này là sử dụng xác suất kết
hợp của các từ xuất hiện trong mail
Thuật tốn Nạve Bayes của Paul Graham
Trang 9Một người có chiều cao trên 1m9 thì xác suất anh ta có chơi bóng rổ là 60% Một người đang cầm 1 quả bóng rổ thì xác suất anh ta chơi bóng rổ lên đến 80% Hỏi một người vừa cao trên 1m9, vừa cầm bóng rổ trên tay thì xác suất anh ta chơi bóng rổ là bao nhiêu?
Bài toán trên cho ta một cách hiểu dễ dàng nhất về khái niệm xác suất kết hợp Nếu gọi a, b là hai xác suất đơn Thì xác suất kết hợp của chúng sẽ được tính bằng:
ab / (ab + (1-a)*(1-b))
Xác suất kết hợp = 0.6*0.8/(0.6*0.8 + 0.4*0.2) =
0.857
Xác suất kết hợp
Trang 10Tổng quát hóa công thức xác suất kết hợp của các xác suất đơn p1, p2, …, pn:
p1*p2*…*pn / (p1*p2*…*pn +(1-p1)*(1-p2)*…*(1-pn))
Từ đó, có thể suy ra cách áp dụng xác suất kết hợp vào
việc tính xác suất là thư rác của một email sẽ bằng xác
suất kết hợp của các từ trong email đó với giả thiết các từ độc lập xác suất với nhau Dễ thấy một mail các
có nhiều từ có xác suất là thư rác cao thì giá trị của xác suất kết hợp cũng sẽ cao
Xác suất kết hợp và thuật toán của PG
Trang 11Từ tập dữ liệu mẫu là các file text (mỗi file chứa nội dung của một
email) và một file index lưu giữ thông tin về nhãn đúng của từng email (dùng cho việc tối ưu tham số và tạo báo cáo), ta chia các file text
(email) ra làm 2 tập: tập huấn luyện (Training Set) và tập kiểm tra (Test Set)
Đọc nội dung của các email trong Training Set, đọc file index để tìm
nhãn đúng của mỗi email Nếu một email là SPAM thì ghi thêm nội
dung của mail này (không bao gồm tiêu đề và các thông tin khác) vào file SPAM.txt, ngược lại nội dung của mail sẽ được ghi thêm vào file
HAM.txt
Sau khi tiến hành đọc này, ta thu được 2 file có kích thước tương đối lớn Mục đích của bước lưu tất cả nội dung mail của mỗi nhóm (SPAM vs
HAM) vào 1 file lớn là để tiện cho việc đếm tần số và tính xác suất Đến đây, ta bắt đầu đếm số lần xuất hiện của một từ trong mỗi nhóm SPAM
vs HAM, từ đó tính ra xác suất từ đó xuất hiện trong SPAM Sau đó lưu các giá trị xác suất này vào một danh sách được sắp xếp theo giá trị xác suất (kiểu SortedList) và gọi danh sách này là Bảng xác suất
Thuật toán NB cải tiến – Training Phrase
Trang 12Xác suất một từ xuất hiện trong thư rác được tính bởi công
thức:
P (SPAM|w) = P(w|SPAM) / ((P(w|SPAM) + P(w|HAM)
Trong đó:
- P(w|SPAM) = số lần xuất hiện của w trong SPAM / số từ trong tập
SPAM
- P(w|HAM) = số lần xuất hiện của w trong HAM / số từ trong tập HAM
Xác suất của toàn bộ email sẽ được tính dựa vào xác suất của
15 từ “đáng quan tâm” nhất trong thư đó (15 most interesting words) chứ không phải của tất cả các từ trong thư Trong đó, mức độ đáng quan tâm của mỗi từ được tính dựa vào độ chênh lệch về xác suất P(SPAM|w) với giá trị trung lập 0.5, tức là đây
là 15 từ đặc trưng cho email này, các giá trị xác suất này rất
gần giá trị xác suất tuyệt đối 0 hoặc 1 và có ảnh hưởng lớn đến việc phân loại email đó Con số 15 cũng được Paul Graham lựa chọn, có thể thay đổi để đánh giá hiệu quả theo tham số này
Thuật toán NB cải tiến – Training Phrase
Trang 13 Sau khi xong xác suất là thư rác của toàn bộ
email,cần một giá trị ngưỡng để thực hiện điều
này Lẽ ra việc chọn ngưỡng sẽ thuộc về pha tối
ưu (Cross Validation) dựa vào việc đánh giá hiệu quả của pha huấn luyện với các giá trị ngưỡng khác nhau (trong bài toán Học máy thì ngưỡng
là một tham số học – learning parameter - cần được xác định trong pha Tối ưu) bỏ qua
Lấy giá trị ngưỡng được chọn = 0.9, nghĩa là
xác suất một email là SPAM: P(SPAM|Mail) >
0.9 thì thư đó sẽ được phân loại là thư rác, trái lại nó sẽ là thư thường.
Thuật toán NB cải tiến – Training Phrase
Trang 14 Công việc: nạp tất cả các email trong tập
Test vào bộ lọc thư rác, để bộ lọc phân loại
và trả về nhãn của mỗi email dựa trên kinh nghiệm của nó - những gì mà bộ lọc đã được
“học” từ các ví dụ trong tập huấn luyện - để đánh giá các email mới mà nó “chưa được
học”
Cuối cùng là so sánh kết quả nhãn mà bộ lọc trả về với nhãn đúng của mỗi email được lưu trong file index để đưa ra đánh giá hiệu quả thuật toán phân loại bằng cách thống kê và viết báo cáo
Thuật toán NB cải tiến – Test
Phrase
Trang 15 -Áp dụng thuật toán NB cải tiến
-Công việc của nhóm: tìm tập mẫu khác,
phân chia tập mẫu thành các tập Training Set và Test Set có kích thước khác nhau để đánh giá và so sánh hiệu quả của thuật
toán, thiết kế thêm tính năng kiểm tra
hàng loạt Test Batch và tự động so khớp
kết quả nhãn thu được để đưa ra các chỉ
số đặc trưng về hiệu năng: Precision và
Recall
Demo bộ lọc thư rác
SpamFilterSample
Trang 16 Để chương trình có thể chạy thì cần có thư
mục \Test Data chứa:
mẫu,
HAM2000.txt: lưu các tập huấn luyện với kích thước
tương ứng 4000 thư và 2000 thư đầu tiên trong tập mẫu.
hiện nạp dữ liệu huấn luyện.
khi kiểm tra hàng loạt (Test Batch)
Hướng dẫn sử dụng chương
trình:
Trang 17Cảm ơn mọi người đã lắng
nghe
-The end-