- Bước 4. Chọn hàm, luật,… phân loại tại mục Classify nhấn nút Choose. Thiết lập một số tùy chọn tại mục Test options, ở đây ta chọn sử dụng phương pháp Cross-validation.
- Bước 5. Nhấn nút Start để thực hiện, và theo dõi kết quả tại vùng Classifier output.
Để tìm hiểu các chức năng khác của phần mềm Weka và chi tiết cách sử dụng bạn đọc cĩ thể tìm hiểu tại: https://www.cs.waikato.ac.nz/ml/weka/.
3.2.4. Thiết kế phần mềm
Việc thử nghiệm chương trình được thực hiện theo quy tắc: Tenfold cross validation, thực hiện như sau:
- Bước 1: Chia các email thường trong file nguồn (HAM.txt) ngẫu nhiên thành 10 phần và các email SPAM trong file nguồn (SPAM.txt) thành 10 phần tương ứng được 10 file email HAM và 10 file email SPAM.
- Bước 2: Đọc số liệu trong 9 file email thường để huấn luyện.
- Bước 3: Tiến hành kiểm tra (testing), thực hiện với 1 file email thường cịn lại và tất cả các email SPAM. Số lượng các email HAM và email SPAM mà chương trình phát hiện được sẽ được tính tốn quy đổi ra 3 số liệu:
DR = TP/(TP + FN) FPR = FP/(TN + FP)
Acc = (TP + TN) /(TP + TN + FP + FN)
Chương trình thực hiện lặp bước hai và ba mười lần, mỗi lần sẽ tính tốn và cho ra 3 số liệu trên. Sau đĩ lấy giá trị trung bình mười lần tính tốn.
3.2.5. Phân tích thuật tốn
3.2.5.1 Quá trình chia file nguồn (Split file)
Input: file chứa số liệu thống kê 58 thuộc tính của email HAM - HAM.txt
Output: 10 file email HAM: HSub 1.txt, HSub 2.txt, …, HSub 10.txt
Thuật tốn
Trong cơ sở dữ liệu Spambase Data Set sử dụng cĩ số liệu thống kê từng thuộc tính của 4601 email ghi trên từng dịng. Trong đĩ, cĩ 1813 email SPAM và 2788 email HAM, ta tạo 2 file HAM.txt chứa 2788 email HAM và SPAM.txt chứa 1813 email SPAM.
Sử dụng nút Open File HAM trên giao diện để tìm đường dẫn tới file HAM.txt
Quá trình chia như sau:
- Kiểm tra trong thư mục bin\Debug đã cĩ các file HSub i.txt và SSub i.txt (i=1,…,10) chưa, nếu chưa cĩ thì tạo các file này.
- Lần lượt đọc từng dịng trong file HAM.txt, sinh ngẫu nhiên một số nn[1,10] ghi dịng dữ liệu trên vào file: HSub nn.txt.
- Đĩng các file vừa tạo.
3.2.5.2. Quá trình huấn luyện – Tạo tập bộ dị (Training)
Input: Chọn 9 trong 10 file: HSub i.txt (i=1,…,10).
Output: Tập bộ dị lưu trong bảng băm kích thước: 2r
.(ℓ-r+1).
Thuật tốn
Quá trình huấn luyện như sau:
- Đọc lần lượt các dịng của 9 file đầu vào, từ đĩ tạo mảng chuỗi lưu trữ giá trị của 57 thuộc tính (trừ thuộc tính cuối).
- Thống kê lại các chuỗi thuộc tính sao cho khơng cịn các giá trị trùng nhau.
- Chuyển đổi theo quy tắc các dãy thuộc tính sang dạng các dãy nhị phân.
- Mỗi thuộc tính của từng email sẽ ứng với một dãy nhị phân, kết hợp các dãy nhị phân của 57 thuộc tính lại ta được một dãy nhị phân của từng email và giá trị của các dịng dữ liệu trong các file khi chuyển sang dạng nhị phân sẽ cĩ độ dài như nhau.
- Duyệt ℓ - r + 1 dãy con độ dài r của từng dãy nhị phân, áp dụng cách tính tốn của phương pháp tạo tập bộ dị bằng bảng băm để xây dựng bảng A.
3.2.5.3. Quá trình kiểm tra – phân biệt HAM/SPAM (testing)
Input: Bảng băm đã tạo; File email HAM cịn lại và file emailSPAM.txt
Output: Các số liệu: Acc, DR, FPR.
Thuật tốn
Thiết lập các thơng số sau cĩ giá trị 0: TN, FP, TP, FN, Acc, DR, FPR. *) Kiểm tra khả năng phát hiện email HAM
- Đọc lần lượt từng dịng dữ liệu trong file email HAM cịn lại, ta dựng dãy nhị phân dựa vào mảng chứa các dãy nhị phân đã tạo được ở quá trình huấn luyện cho từng dịng dữ liệu. Từ đĩ ta cĩ được dãy nhị phân của từng email.
- Chuyển ℓ - r + 1 dãy nhị phân con độ dài r của từng email từ hệ nhị phân sang hệ cơ số 10 lưu bằng số nguyên k.
+ Nếu xuất hiện bất kì một trường hợp A[k, j]= 0 (các đoạn bit từ j đến bit thứ j + r - 1 với j=1,…, ℓ - r + 1) thì tăng giá trị FP thêm 1 (kết luận email đang kiểm tra là SPAM).
+ Nếu tồn bộ A[k, j]= 1 thì tăng giá trị TN thêm 1 (kết luận email đang kiểm tra là HAM).
*) Kiểm tra khả năng phát hiện email SPAM
- Đọc lần lượt từng dịng dữ liệu trong file thư SPAM: SPAM.txt, ta dựng dãy nhị phân dựa vào mảng chứa các dãy nhị phân đã tạo được ở quá trình huấn luyện cho từng dịng dữ liệu. Từ đĩ ta cĩ được dãy nhị phân của từng email.
- Chuyển ℓ - r + 1 dãy nhị phân con độ dài r của từng email từ hệ nhị phân sang hệ cơ số 10 lưu bằng số nguyên k.
+ Nếu xuất hiện bất kì một trường hợp A[k, j]= 0 (các đoạn bit từ j đến bit thứ j + r - 1 với j=1,…, ℓ - r + 1) thì tăng giá trị TP thêm 1 (kết luận email đang kiểm tra là SPAM).
+ Nếu tồn bộ A[k, j]= 1 thì tăng giá trị FN thêm 1 (kết luận email đang kiểm tra là HAM).
3.2.6. Giao diện chƣơng trình và kết quả
Hình 3.7. Giao diện chƣơng trình
Chức năng của các đối tượng trong giao diện:
- Nút Open File HAM…: Mở file email HAM.
- Nút Open File SPAM…: Mở file email SPAM.
- Hộp Select a value r: Đặt giá trị cho r.
- Nút Split File: Chia file nguồn của chương trình (file email HAM – HAM.txt, file emailSPAM – SPAM.txt).
- Nút Test:
+ Tạo tập bộ dị từ các file email HAM.
+ Cho file email HAM cịn lại (khơng sử dụng để tạo bộ dị) và file email SPAM qua tập bộ dị thực hiện so khớp.
+ Tính tốn và kết luận về khả năng phát hiện của tập bộ dị, hiển thị kết quả tại vùng Results.
Sau đây là kết quả thử nghiệm trên các hàm, luật,… trong WEKA và chương trình sử dụng NSA trên cơ sở dữ liệu Spambase.
Với 100% email HAM và email SPAM đưa vào quá trình phân loại. Với giá trị r = 8, chương trình sử dụng NSA cho kết quả như sau:
Trong 2788 email HAM, chương trình sử dụng NSA cho kết quả: - Số lượng email HAM phân loại đúng là TN = 2668.
- Số lượng email phân loại sai thành email SPAM là FP = 120. Trong 1813 email SPAM, chương trình sử dụng NSA cho kết quả: - Số lượng email SPAM phân loại đúng là TP = 1499.
- Số lượng email phân loại sai thành email HAM là FN = 314. Và các kết quả:
- DR: 82.67% - FPR: 4.31% - Acc: 90.56%
Các phương pháp phân loại trong WEKA đều sử dụng tồn bộ 2788 email HAM và 1813 email SPAM vào quá trình kiểm tra (phát hiện, phân loại) nên trong chương trình NSA cũng sẽ sử dụng tồn bộ các email HAM và email SPAM thay vì chỉ sử dụng file email HAM chưa dùng vào quá trình huấn luyện + email SPAM. (Đơn vị tính 3 thơng số DR, FPR, Acc: %).
Bảng 3.3. Kết quả thử nghiệm trên WEKA và NSA Phƣơng pháp TP TN FN FP DR FPR Acc Phƣơng pháp TP TN FN FP DR FPR Acc BayessianLogisticRegression 1758 1986 55 802 96.97 28.77 81.37 NaiveBayesUpdateable 1725 1923 88 865 95.15 31.03 79.29 bayes.DMNBtext 1617 2662 196 126 89.19 4.52 93.00 functions.logistic 1607 2645 206 143 88.64 5.13 92.41 functions.RBFNetwork 1568 2143 245 645 86.49 23.13 80.66 funtions.Spegasos 1544 2661 269 127 85.16 4.56 91.39 lazy.TB1 1592 2585 221 203 87.81 7.28 90.78 misc.HyperPipes 163 2777 1650 11 8.99 0.39 63.90 rules.ComnunctiveRule 1276 2437 537 351 70.38 12.59 80.70 trees.RandomTree 1621 2563 192 225 89.41 8.07 90.94 NSA 1499 2668 314 120 82.67 4.31 90.56
Dựa vào bảng trên ta thấy:
- Phương pháp NSA cho kết quả chính xác hơn 90% nằm trong những phương pháp cho kết quả chính xác nhất.
Bảng 3.4. So sánh NSA với một số phƣơng pháp cho kết quả tốt hơn
Phƣơng pháp TP TN FN FP DR FPR Acc bayes.DMNBtext 1617 2662 196 126 89.19 4.52 93.00 functions.logistic 1607 2645 206 143 88.64 5.13 92.41 functions.Spegasos 1544 2661 269 127 85.16 4.56 91.39 lazy.TB1 1592 2585 221 203 87.81 7.28 90.78 trees.RandomTree 1621 2563 192 225 89.41 8.07 90.94 NSA 1499 2668 314 120 82.67 4.31 90.56
Ta nhận thấy rằng, phương pháp NSA cho kết quả xấp xỉ với các phương pháp trong WEKA về độ chính xác tổng thể. NSA cĩ khả năng phát hiện các email SPAM kém hơn thể hiện ở thơng số TP và FN.Tuy nhiên, NSA phân loại các email HAM tốt hơn, thể hiện các thơng số TN, FP.
- NSA cho kết quả cao hơn về độ chính xác tổng thể so với các phương pháp trong bảng dưới:
Bảng 3.5. So sánh NSA với một số phƣơng pháp cho kết quả thấp hơn
Phƣơng pháp TP TN FN FP DR FPR Acc BayessianLogisticRegression 1758 1986 55 802 96.97 28.77 81.37 NaiveBayesUpdateable 1725 1923 88 865 95.15 31.03 79.29 functions.RBFNetwork 1568 2143 245 645 86.49 23.13 80.66 misc.HyperPipes 163 2777 1650 11 8.99 0.39 63.90 rules.ComnunctiveRule 1276 2437 537 351 70.38 12.59 80.70 NSA 1499 2668 314 120 82.67 4.31 90.56 Các phương pháp BayessianLogisticRegression,
NaiveBayesUpdateable cho khả năng phát hiện email SPAM rất tốt, nhưng kéo theo đĩ nhiều email HAM bị phân loại thành email SPAM thể hiện: trong 2788 email HAM thì BayessianLogisticRegression cĩ 802 email bị coi là email SPAM, NaiveBayesUpdateable cĩ 865 email bị coi là email SPAM.
Thơng thường, các email HAM cĩ chứa thơng tin quan trọng hơn, do vậy việc các email HAM được phân loại thành email SPAM gây ra lo ngại hơn so với việc các email SPAM bị phân loại nhầm thành email HAM. Xét về mặt này, NSA cho khả năng phân loại tốt hơn 5 phương pháp trên.
3.2.7. Đánh giá
Khả năng phát hiện của chương trình phụ thuộc vào độ chặt chẽ của bảng băm A, bảng A cĩ mức độ chặt chẽ cao hay thấp cịn tùy thuộc vào việc ta đặt giá trị của r. Giá trị r càng cao mức độ kiểm tra (so khớp) càng chặt chẽ và ngược lại.
Trong chương trình, sẽ thử nghiệm giá trị của r trong đoạn [7,10], trong đoạn giá trị này bộ dị cho những kết quả tốt nhất.
Bảng 3.6. Kết quả so khớp với giá trị tham số r thay đổi
r DR (%) FPR (%) Acc (%) Thời gian (s)
7 75.50 29.62 74.82 24.7
8 82.34 42.52 79.15 25.59
9 87.77 54.41 82.15 24.95
10 91.81 60.51 84.84 26.57
Việc lựa chọn 9/10 file email HAM để huấn luyện và 1 file email HAM cịn lại đưa vào quá trình test cùng với file các email SPAM được lựa chọn ngẫu nhiên, nên kết quả ở các lần chạy sẽ cĩ sự khác nhau, tuy nhiên cả 3 số liệu DR, FPR, Acc và thời gian chạy đều khơng chênh lệch quá lớn.
Với kết quả trên ta cĩ nhận xét: - Về khả năng phát hiện:
Với r càng lớn thì kích thước bộ dị (bảng A) càng lớn, đồng nghĩa với việc mức độ kiểm tra, so khớp sẽ chặt chẽ hơn. Do vậy, r càng lớn xác suất email HAM bị phân loại thành email SPAM càng lớn. Và ngược lại, r càng
nhỏ thì mức độ kiểm tra sẽ ít chặt chẽ hơn, dẫn đến nhiều email SPAM được phân loại là email HAM.
Những email HAM mang tính quan trọng hơn rất nhiều, do vậy khi phân loại email HAM và email SPAM, cần lựa chọn giá trị của r hợp lí để các email HAM ít bị phân loại thành email SPAM. Làm thế nào để tìm ra giá trị r hợp lý cũng là một hướng phát triển tốt.
- Về thời gian chạy chương trình: Thời gian chạy chương trình tùy thuộc vào kích thước của bảng băm là chủ yếu, với giá trị r lớn thì bảng băm cĩ kích thước lớn hơn nên việc tạo bảng cũng lâu hơn.
KẾT LUẬN
Đề tài đã đạt được những kết quả sau đây:
- Tìm hiểu tổng quan về thư rác, các phương pháp phân loại thư rác hiện đang sử dụng như: blacklisting, whitelisting, heuristic filtering, challenge/ response… Các phương pháp học máy như: SVM, Naive Bayes, kNN, Nnet. Đồng thời đánh giá ưu nhược điểm của các phương pháp.
- Tìm hiểu về hệ miễn dịch sinh học và hệ miễn dịch nhân tạo, các khái niệm cơ bản như: Self, Nonself, bộ dị…một số thuật tốn trong hệ miễn dịch nhân tạo.
- Nghiên cứu thuật tốn chọn lọc tiêu cực dạng r-chunk và r-contiguous và đưa ra phương pháp ứng dụng các thuật tốn trên cho quá trình phân loại thư rác.
- Xây dựng chương trình mơ phỏng sử dụng thuật tốn chọn lọc tiêu cực trong hệ miễn dịch nhân tạo và áp dụng vào quá trình huấn luyện cũng như phân loại thư rác, đồng thời đánh giá chương trình bằng thơng số như: TP, TN, FP, FN và các độ đo như: DR, FPR và Acc.
- Thử nghiệm phương pháp sinh tập bộ dị dạng r-chunk với các bộ dữ liệu chuẩn TREC'07, SpamBase và so sánh kết quả với một số phương pháp học máy khác.
Hướng phát triển
- Cần nghiên cứu khâu tiền xử lý văn bản, xây dựng các mẫu huấn luyện tiêu chuẩn cũng như lựa chọn tham số hợp lý cho ℓ và r để cĩ thể nâng cao độ chính xác phân loại của giải thuật hơn nữa.
- Nâng khả năng lọc thư rác với các loại email chứa nội dung là hình ảnh, ký tự lạ,…và cĩ đính kèm tệp tin.
- Kết hợp với các thuật tốn học máy khác để cĩ thể cải thiện được hiệu suất và độ chính xác.
- Xây dựng hệ thống Webmail cho một cơ quan hoặc tổ chức và tích hợp bộ lọc vào hệ thống.
- Xây dựng bộ lọc theo mức độ phù hợp cho một số nhĩm đối tượng cụ thể như: cùng chung sở thích, cùng nơi làm việc, cùng lĩnh vực nghiên cứu…
DANH MỤC CÁC CƠNG TRÌNH CƠNG BỐ
[1]. Vu Duc Quang, Vu Manh Xuan, Nguyen Van Truong, Phung Thi Thu Trang (2015), Email SPAM Filtering Using R-Chunk Detector-Based Negative Selection Algorithm, Journal of Science and Technology, Thai Nguyen University, 135 (05), 185-189.
TÀI LIỆU THAM KHẢO
Tiếng Việt
[1]. Nguyễn Xuân Hồi, Nguyễn Văn Trường, Vũ Mạnh Xuân, (2007), Hệ miễn dịch nhân tạo và ứng dụng, Tạp chí Khoa học và Cơng nghệ Đại học Thái Nguyên, 13-18.
[2]. Phạm Đình Lựu, (2005), Sinh Lý Học Y Khoa, Đại Học Y Dược TP. Hồ Chí Minh.
[3]. Lương Quốc Sơn, (2012), Nghiên cứu xây dựng bộ lọc thư rác hỗ trợ song ngữ Anh – Việt, Luận văn Thạc sĩ CNTT, Đại học Lạc Hồng.
Tiếng Anh
[4]. Csaba Gulyás, (2006), Creation of a Bayesian network-based meta SPAM filter, using the analysis of different SPAM filters.
[5]. Forrest et al, Self-Nonself Discrimination in a Computer, (1994), in Proceedings of 1994 IEEE Symposium on Research in Security and Privacy,
Oakland, CA, 202-212.
[6]. Jonathan A. Zdziarski, Ending Spam, (2005), Bayesian Content Filtering and the Art of Statistical Language Classification, No Starch Press.
[7]. M. Elberfeld, J. Textor, (2009), Efficient algorithms for string-based negative selection, Proceedings of the 8th International Conference on Artificial Immune Systems, LNCS 5666, 109-121.
[8]. Mike Spykerman, Typical SPAM characteristics, Red Earth Software, 2003.
[9]. T. Stibor et al, (2004), An investigation of r-chunk detector generation on higher alphabets, GECCO 2004, LNCS 3102, 299-30.
[10]. Tarek M Mahmoud, Alaa Ismail El Nashar, Tarek Abd-El-Hafeez, Marwa Khairy, (2014), “An Efficient Three-phase Email SPAM Filtering
Technique”, British Journal of Mathematics & Computer Science4(9): 1184- 1201.
[11]. Terri Oda, (2005), A SPAM-Detecting Artificial ImmuneSystem, Master of Computer Science, Carleton University, Ottawa, Canada.