Bối cảnh và vấn đề nghiên cứu
Sự phát triển mạnh mẽ của mạng Internet và các công nghệ lưu trữ, truyền dẫn dữ liệu đã thúc đẩy sự chuyển dịch thói quen của người dùng từ các phương thức truyền thống sang môi trường trực tuyến trong các hoạt động học tập, giải trí, làm việc và giao dịch thương mại điện tử. Đi kèm với xu hướng này là sự gia tăng nhanh chóng của các hình thức tội phạm mạng, đặc biệt là hành vi tấn công lừa đảo trực tuyến (phishing). Các đối tượng xấu thiết lập các trang web giả mạo có giao diện tương tự các trang web hợp pháp nhằm thu thập trái phép thông tin nhạy cảm của người dùng như tên đăng nhập, mật khẩu, thông tin thẻ ngân hàng và số điện thoại phục vụ mục đích chiếm đoạt tài sản.
Thực tiễn đặt ra yêu cầu cấp thiết phải phân biệt chính xác giữa website lừa đảo và website hợp pháp. Tuy nhiên, các website giả mạo ngày càng được thiết kế tinh vi, gây khó khăn cho việc nhận biết bằng các dấu hiệu trực quan thông thường. Mặc dù nhiều kỹ thuật và phương pháp phát hiện đã được đề xuất trong các nghiên cứu trước đây, hiện vẫn chưa có sự đồng nhất về phương pháp tối ưu cũng như tập thuộc tính hiệu quả nhất để đánh giá tính hợp pháp của một trang web. Trong số các giải pháp học máy hiện nay, mô hình phân lớp Rừng ngẫu nhiên (Random Forest) được ghi nhận có hiệu năng cao trong việc nhận diện lừa đảo trên nhiều lĩnh vực. Do đó, đề tài tập trung nghiên cứu giải pháp phát hiện website lừa đảo dựa trên mô hình phân lớp Random Forest.
Mục tiêu nghiên cứu của khóa luận bao gồm:
- Thu thập dữ liệu thực nghiệm, tiến hành huấn luyện và kiểm thử dữ liệu với các bộ phân lớp học máy trên phần mềm Weka.
- Xây dựng một ứng dụng giao diện đồ họa trên nền tảng Java Swing nhằm thực hiện dự đoán nhãn lớp cho các bộ dữ liệu chưa được gán nhãn (Unlabel Set).
Đối tượng nghiên cứu của đề tài là mô hình phân lớp Random Forest, bộ dữ liệu Phishing Website, quy trình xây dựng mô hình phân lớp và phương pháp thiết lập hệ thống dự đoán website lừa đảo. Phạm vi nghiên cứu tập trung vào bài toán phân loại nhị phân trên không gian 30 thuộc tính đặc trưng trích xuất từ cấu trúc URL, mã nguồn trang web, chứng chỉ bảo mật và các dịch vụ mạng liên quan.
Cơ sở lý thuyết và phương pháp
Khóa luận xây dựng trên nền tảng lý thuyết về quá trình Khám phá tri thức từ cơ sở dữ liệu (Knowledge Discovery in Databases - KDD) và Khai phá dữ liệu (Data Mining). Tác giả tổng quan quy trình khai phá dữ liệu chuẩn gồm 5 bước: (1) Xác định vấn đề và tìm hiểu dữ liệu; (2) Chuẩn bị dữ liệu (làm sạch, tích hợp, chọn lọc, biến đổi); (3) Khai phá dữ liệu (lựa chọn kỹ thuật và thuật toán); (4) Đánh giá tri thức; (5) Triển khai ứng dụng.
Khóa luận hệ thống hóa các nhóm kỹ thuật khai phá dữ liệu cơ bản:
- Khai phá luật kết hợp: Trình bày nguyên lý xác định tập mục phổ biến và các luật mạnh thỏa mãn ngưỡng độ hỗ trợ tối thiểu ($min_sup$) và độ tin cậy tối thiểu ($min_conf$) thông qua hai thuật toán Apriori và FP-Growth.
- Phân cụm dữ liệu: Bao gồm phương pháp phân cụm phẳng (thuật toán $k$-means dựa trên khoảng cách và cập nhật trọng tâm cụm) và phân cụm phân cấp (phân cụm gộp, Birch, Diana, Rock).
- Phân lớp dữ liệu: Nghiên cứu các giải pháp học có giám sát để thiết lập ánh xạ $f(x) = y$, bao gồm: mô hình xác suất Naïve Bayes dựa trên định lý Thomas Bayes; mô hình láng giềng gần nhất $K$-NN (IBk) dựa trên khoảng cách không gian Euclid; mô hình máy vector hỗ trợ (Support Vector Machines - SVM) tối ưu hóa siêu phẳng phân tách; mô hình Mạng nơ-ron nhân tạo nhiều tầng (Multilayer Perceptron).
- Phân tích hồi quy: Các kỹ thuật dự báo giá trị liên tục (tuyến tính, phi tuyến, đơn biến, đa biến).
Về mặt toán học, bài toán phát hiện website lừa đảo được phát biểu như sau: Cho tập dữ liệu $X = {x_1, x_2, \dots, x_n}$ mô tả các website, trong đó mỗi phần tử $x_i$ là một vector 30 chiều biểu diễn 30 thuộc tính đặc trưng. Tập nhãn lớp xác định là $Y = {y_1, y_2}$ với $y_1 = \text{Phishing}$ (lừa đảo) và $y_2 = \text{Legitimate}$ (hợp pháp). Mục tiêu là xây dựng hàm phân lớp:
$$f: X \to Y$$
$$x_i \mapsto y_i \quad (i = 1, \dots, n; , y_i \in {y_1, y_2})$$
Mô hình phân lớp trọng tâm là Random Forest (được phát triển ban đầu bởi Tin Kam Ho năm 1995 dựa trên không gian con ngẫu nhiên và Leo Breiman hoàn thiện). Thuật toán áp dụng cơ chế kết hợp mẫu Bootstrap Aggregating (Bagging). Tại mỗi nút phân chia của từng cây quyết định trong rừng, thuật toán chọn ngẫu nhiên $k$ thuộc tính từ tập $m$ thuộc tính ban đầu để tìm thuộc tính phân nhánh tối ưu. Kết quả dự đoán cuối cùng cho một mẫu dữ liệu mới được xác định thông qua cơ chế bỏ phiếu đa số (Majority Voting) từ tất cả các cây quyết định thành phần.
Phương pháp đánh giá hiệu năng mô hình sử dụng công cụ Đường cong đặc trưng hoạt động của máy thu (Receiver Operating Characteristic - ROC), biểu diễn mối tương quan giữa tỷ lệ dương tính thật (True Positive Rate - TPR) và tỷ lệ dương tính giả (False Positive Rate - FPR) tại các ngưỡng quyết định khác nhau.
Nguồn dữ liệu thực nghiệm là bộ dữ liệu Phishing Website Dataset từ kho lưu trữ máy học UCI (UCI Machine Learning Repository), do các tác giả Rami Mustafa A Mohammad, Lee McCluskey và Fadi Thabtah xây dựng từ các nguồn PhishTank, MillerSmiles và Google Search. Bộ dữ liệu gồm 11.055 bản ghi với 30 thuộc tính đặc trưng và 1 thuộc tính nhãn lớp.
Thiết kế và triển khai
Hệ thống dự đoán website lừa đảo được thiết kế và hiện thực hóa dưới dạng một ứng dụng phần mềm độc lập:
- Môi trường phát triển và công nghệ: Ứng dụng được xây dựng bằng ngôn ngữ Java trên môi trường NetBeans IDE. Giao diện đồ họa người dùng sử dụng thư viện Java Swing (
JFrame, các thành phần bảng và nút điều khiển).
- Tích hợp thư viện học máy: Hệ thống tích hợp trực tiếp thư viện
weka.jar và tài nguyên thư mục tài liệu doc của bộ công cụ Weka vào cấu hình dự án để gọi các thuật toán phân lớp và xử lý cấu trúc tệp ARFF (.arff).
- Quy trình xử lý của ứng dụng:
- Nạp dữ liệu: Cho phép người dùng chọn tệp dữ liệu huấn luyện định dạng ARFF từ hệ thống tệp.
- Phân chia dữ liệu tự động: Ứng dụng tự động chia tập dữ liệu thành 70% tập huấn luyện (Training Set) và 30% tập kiểm thử (Test Set).
- Huấn luyện và kiểm định: Thực hiện huấn luyện mô hình phân lớp Random Forest kết hợp kỹ thuật kiểm định chéo 10 phần (10-fold Cross-Validation), sau đó đánh giá lại trên tập kiểm thử (Test Set).
- Dự đoán tập không nhãn (Unlabel Set): Người dùng nạp tệp dữ liệu không nhãn (đã loại bỏ thuộc tính
Result). Ứng dụng áp dụng mô hình Random Forest đã huấn luyện để gán nhãn cho từng trường hợp và hiển thị kết quả phân loại chi tiết trên bảng giao diện.
- Thiết lập mô hình đánh giá trên Weka Knowledge Flow: Sử dụng các thành phần chức năng gồm
ArffLoader (nạp dữ liệu), ClassAssigner (chỉ định nhãn lớp), TestSetMaker (tạo tập kiểm thử), Classifier (chứa các mô hình đã huấn luyện: Random Forest, Naïve Bayes, K-NN/IBk, SVM/SMO, MultilayerPerceptron), ClassifierPerformanceEvaluator (bộ đánh giá hiệu năng), ModelPerformanceChart (vẽ đồ thị ROC) và ImageSaver (kết xuất hình ảnh đường cong ROC).
Nội dung chính theo từng chương
Chương I: Tổng quan về khai phá dữ liệu
Chương I trình bày cơ sở lý thuyết tổng quát về khai phá dữ liệu và bài toán học máy:
- Phân tích bối cảnh bùng nổ dữ liệu và tiến hóa của công nghệ cơ sở dữ liệu theo quan điểm của J. Han và M. Kamber.
- Khái quát các phương pháp khai phá dữ liệu chính: luật kết hợp (thuật toán Apriori, FP-Growth), phân cụm (phân cụm phẳng $k$-means, phân cụm phân cấp), phân lớp (Naïve Bayes, K-NN, SVM, Multilayer Perceptron) và phân tích hồi quy.
- Trình bày chi tiết lý thuyết cây quyết định và thuật toán Random Forest, nguyên tắc tạo tập mẫu bootstrap, thuật toán chọn ngẫu nhiên tập con thuộc tính và cơ chế tổng hợp kết quả bỏ phiếu.
- Tổng thuật 17 công trình nghiên cứu trong và ngoài nước về ứng dụng học máy và Random Forest trong nhận diện URL/website/email lừa đảo (tiêu biểu như nghiên cứu của Ozgur Koray Sahingoz et al. (2019) đạt độ chính xác 97,98%; Routhu Srinivasa Rao & Alwyn Roshan Pais (2018) đạt độ chính xác 99% với PCA-RF; Kang Leng Chiew et al. (2019) với phương pháp lựa chọn đặc trưng lai HEFS đạt 94,6% chỉ với 20,8% thuộc tính ban đầu; Abdulhamit Subasi et al. (2017) đạt 97%; Adwan Yasin & Abdelmunem Abuhasan (2016) đạt 99,10%; Akinyelu & Adewumi (2014) đạt 99%).
Chương II: Xây dựng mô hình phân lớp và ứng dụng dự đoán website lừa đảo
Chương II tập trung chi tiết hóa tập dữ liệu thực nghiệm, không gian thuộc tính và thiết kế thực nghiệm:
- Phân tích chi tiết 30 thuộc tính đặc trưng của bộ dữ liệu Phishing Website và các quy tắc xác định giá trị cho từng thuộc tính (nhận các giá trị rời rạc:
1 là lừa đảo, 0 là nghi ngờ, -1 là hợp pháp):
| Nhóm đặc trưng |
Tên thuộc tính |
Quy tắc phân loại chính |
| Cấu trúc URL |
having_IP_Address |
Sử dụng địa chỉ IP thay tên miền = Lừa đảo (1), ngược lại = Hợp pháp (-1). |
|
URL_Length |
Chiều dài URL < 54 ký tự = Hợp pháp (-1); 54-75 = Nghi ngờ (0); > 75 = Lừa đảo (1). |
|
Shortining_Service |
Sử dụng dịch vụ rút ngắn liên kết = Lừa đảo (1), ngược lại = Hợp pháp (-1). |
|
having_At_Symbol |
URL chứa ký tự @ = Lừa đảo (1), ngược lại = Hợp pháp (-1). |
|
double_slash_redirecting |
Xuất hiện // ở vị trí > 7 trong URL = Lừa đảo (1), ngược lại = Hợp pháp (-1). |
|
Prefix_Suffix |
Tên miền có chứa dấu - phân tách = Lừa đảo (1), ngược lại = Hợp pháp (-1). |
|
having_Sub_Domain |
Số dấu . trong miền bằng 1 = Hợp pháp (-1); bằng 2 = Nghi ngờ (0); > 2 = Lừa đảo (1). |
|
Abnormal_URL |
Tên máy chủ không có danh tính trên cơ sở dữ liệu WHOIS = Lừa đảo (1). |
|
HTTPS_token |
Tên miền chứa chuỗi HTTPS = Lừa đảo (1), ngược lại = Hợp pháp (-1). |
| Giao thức & An ninh |
SSLfinal_State |
Có HTTPS từ tổ chức phát hành uy tín, tuổi chứng chỉ $\ge$ 1 năm = Hợp pháp (-1); nhà phát hành không uy tín = Nghi ngờ (0); còn lại = Lừa đảo (1). |
|
port |
Các cổng mạng (21-FTP, 22-SSH, 23-Telnet, 445-SMB, 1433-MSSQL, 1521-ORACLE, 3306-MySQL, 3389-RDP) mở khác trạng thái thường xuyên đóng = Lừa đảo (1). Cổng 80-HTTP, 443-HTTPS trạng thái mở = Hợp pháp (-1). |
| Mã nguồn & Liên kết |
Request_URL |
Tỷ lệ đối tượng ngoại vi (ảnh, video) tải từ miền khác < 22% = Hợp pháp (-1); 22%-61% = Nghi ngờ (0); > 61% = Lừa đảo (1). |
|
URL_of_Anchor |
Tỷ lệ liên kết thẻ <a> khác miền < 31% = Hợp pháp (-1); 31%-67% = Nghi ngờ (0); > 67% = Lừa đảo (1). |
|
Links_in_tags |
Tỷ lệ liên kết trong <Meta>, <Script>, <Link> < 17% = Hợp pháp (-1); 17%-81% = Nghi ngờ (0); > 81% = Lừa đảo (1). |
|
SFH |
Trình xử lý biểu mẫu server chứa chuỗi trống = Lừa đảo (1); liên kết miền khác = Nghi ngờ (0). |
|
Submitting_to_email |
Sử dụng hàm mail() hoặc mailto trong PHP để chuyển dữ liệu = Lừa đảo (1). |
|
Redirect |
Số lần chuyển tiếp $\le$ 1 = Hợp pháp (-1); 2 đến < 4 = Nghi ngờ (0); $\ge$ 4 = Lừa đảo (1). |
|
on_mouseover |
Tùy chỉnh thanh trạng thái qua JavaScript = Lừa đảo (1). |
|
RightClick |
Vô hiệu hóa chuột phải (event.button==2) = Lừa đảo (1). |
|
popUpWidnow |
Cửa sổ bật lên yêu cầu nhập thông tin cá nhân = Lừa đảo (1). |
|
Iframe |
Sử dụng thẻ iframe ẩn/không viền = Lừa đảo (1). |
|
Favicon |
Tải favicon từ tên miền ngoài = Hợp pháp (-1), ngược lại = Nghi ngờ (0). |
| Thông tin miền & Lưu lượng |
Domain_registeration_length |
Tên miền hết hạn $\le$ 1 năm = Lừa đảo (1), trả trước nhiều năm = Hợp pháp (-1). |
|
age_of_domain |
Tuổi tên miền $\ge$ 6 tháng = Hợp pháp (-1), < 6 tháng = Lừa đảo (1). |
|
DNSRecord |
Bản ghi DNS không tồn tại/trống = Lừa đảo (1). |
|
web_traffic |
Xếp hạng Alexa thuộc top 100.000 = Hợp pháp (-1); nhận diện ngoài 100.000 = Nghi ngờ (0); không có lưu lượng = Lừa đảo (1). |
|
Page_Rank |
Giá trị PageRank đo lường mức độ quan trọng < 0,2 = Lừa đảo (1). |
|
Google_Index |
Được Google lập chỉ mục = Hợp pháp (-1), không có trong chỉ mục = Lừa đảo (1). |
|
Links_pointing_to_page |
Số liên kết trỏ đến trang = 0 là Lừa đảo (1); 1-2 liên kết = Nghi ngờ (0); > 2 = Hợp pháp (-1). |
|
Statistical_report |
IP hoặc tên miền nằm trong báo cáo top lừa đảo của PhishTank/StopBadware = Lừa đảo (1). |
- Trình bày quy trình phân chia dữ liệu theo tỷ lệ 70% tập huấn luyện và 30% tập kiểm thử.
- Thiết lập quy trình đánh giá đường cong ROC bằng công cụ Knowledge Flow trong Weka.
- Xây dựng mô hình ứng dụng dự đoán website lừa đảo trên giao diện Java Swing.
Chương III: Thí nghiệm và kết quả
Chương III triển khai các kịch bản thực nghiệm và đánh giá kết quả:
- Kịch bản phân lớp trên Weka: Nạp tệp dữ liệu
PhishingWebsiteDataSet.arff, sử dụng bộ lọc Remove Percentage để phân chia tập dữ liệu thành Training Set (70%) và Test Set (30%). Tiến hành huấn luyện với phương pháp kiểm định chéo 10-fold Cross-Validation cho từng bộ phân lớp (Naïve Bayes, Random Forest, K-NN, SVM, Multilayer Perceptron). Sau đó sử dụng tùy chọn Supplied test set để kiểm thử lại hiệu năng trên Test Set.
- Thiết lập mô hình đánh giá: Lưu trữ các tệp mô hình đã huấn luyện (
.model) của từng thuật toán. Thiết lập sơ đồ Knowledge Flow, nạp các tệp mô hình tương ứng vào các thành phần phân lớp và kết xuất đồ thị ROC thông qua ModelPerformanceChart.
- Thực thi ứng dụng dự đoán: Thiết lập tập dữ liệu không nhãn (Unlabel Set) được trích xuất từ tập kiểm thử nhưng lược bỏ giá trị nhãn lớp
Result. Triển khai ứng dụng Java Swing, nạp dữ liệu, thực thi mô hình Random Forest và xuất bảng kết quả dự đoán chi tiết.
Kết quả và đóng góp
Khóa luận đã hoàn thành các nội dung thực nghiệm và xây dựng ứng dụng với các kết quả cụ thể:
- Thực nghiệm mô hình học máy: Đã xây dựng và kiểm thử thành công mô hình Random Forest cùng các thuật toán phân lớp cơ bản (Naïve Bayes, K-NN, SVM, Multilayer Perceptron) trên bộ dữ liệu 11.055 mẫu. Quy trình kiểm định kết hợp giữa 10-fold Cross-Validation trên tập huấn luyện và đánh giá độc lập trên tập kiểm thử 30% tách rời.
- Đánh giá so sánh trực quan: Thiết lập thành công luồng phân tích trên Knowledge Flow của Weka để so sánh đường cong ROC giữa Random Forest và các bộ phân lớp cơ bản, cho thấy trực quan hiệu năng phân loại của từng mô hình trên bộ dữ liệu Phishing Website.
- Ứng dụng phần mềm thực tiễn: Phát triển hoàn chỉnh một ứng dụng Java Swing có khả năng nạp dữ liệu định dạng ARFF, tự động chia tập huấn luyện/kiểm thử, gọi mô hình Random Forest từ thư viện Weka để phân lớp dữ liệu chưa được gán nhãn và hiển thị kết quả trực tiếp cho người dùng.
- Hệ thống hóa tri thức chuyên ngành: Khóa luận đã hệ thống hóa đầy đủ cơ sở lý luận của 30 thuộc tính đặc trưng dùng để phát hiện website lừa đảo, bao gồm các luật logic cụ thể từ tầng giao thức mạng, đặc trưng URL, mã nguồn HTML/JavaScript đến dữ liệu danh tiếng từ bên thứ ba (Alexa, Google Index, WHOIS, PhishTank).
Hạn chế và hướng nghiên cứu tiếp
Khóa luận chỉ ra một số hạn chế trong quá trình thực hiện:
- Về thuật toán Random Forest: Khối lượng tính toán của mô hình tương đối lớn; khi số lượng cây quyết định trong rừng tăng cao có thể làm giảm tốc độ xử lý, gây ảnh hưởng đến hiệu quả trong các bài toán dự đoán theo thời gian thực.
- Về phạm vi ứng dụng: Ứng dụng hiện tại hoạt động dựa trên tập dữ liệu thuộc tính tĩnh đã được tiền xử lý và lưu dưới dạng tệp ARFF, chưa tích hợp mô-đun tự động thu thập và trích xuất đặc trưng trực tiếp theo thời gian thực từ một địa chỉ URL người dùng nhập vào.
Các hướng phát triển tiếp theo được tác giả đề xuất:
- Nghiên cứu và áp dụng các kỹ thuật lựa chọn đặc trưng nâng cao (như lựa chọn đặc trưng lai HEFS, PCA kết hợp Random Forest) nhằm giảm số chiều dữ liệu mà vẫn duy trì độ chính xác cao.
- Phát triển mô-đun tự động bóc tách 30 thuộc tính đặc trưng từ URL và mã nguồn trang web trong thời gian thực.
- Mở rộng ứng dụng thành tiện ích mở rộng (extension) tích hợp trực tiếp trên các trình duyệt web phổ biến để tự động cảnh báo người dùng khi truy cập các trang web có dấu hiệu lừa đảo.
Giá trị tham khảo
Khóa luận là tài liệu tham khảo hữu ích cho:
- Sinh viên và người học ngành Hệ thống thông tin kinh tế, Khoa học dữ liệu và Công nghệ thông tin: Cung cấp tài liệu hoàn chỉnh về quy trình thực hiện một đề tài khai phá dữ liệu thực nghiệm, từ khâu tìm hiểu lý thuyết, xử lý dữ liệu thực tế đến đánh giá hiệu năng mô hình.
- Người nghiên cứu về an toàn thông tin và phòng chống lừa đảo trực tuyến: Bảng chi tiết 30 thuộc tính đặc trưng cùng các luật phân loại logic cụ thể là nguồn tham khảo giá trị để xây dựng các bộ lọc hoặc hệ thống nhận diện phishing.
- Lập trình viên Java ứng dụng học máy: Khóa luận cung cấp giải pháp thực tế về việc nhúng thư viện Weka (
weka.jar) vào ứng dụng giao diện Java Swing để triển khai các mô hình học máy vào phần mềm thương mại hoặc ứng dụng desktop.
Câu hỏi thường gặp
1. Bộ dữ liệu Phishing Website được sử dụng trong khóa luận có đặc điểm gì và lấy từ nguồn nào?
Bộ dữ liệu được lấy từ kho lưu trữ máy học UCI (UCI Machine Learning Repository), do các tác giả Rami Mustafa A Mohammad, Lee McCluskey (Đại học Huddersfield) và Fadi Thabtah (Đại học Canada Dubai) xây dựng. Dữ liệu được thu thập từ các nguồn PhishTank, MillerSmiles và Google Search, bao gồm tổng cộng 11.055 trường hợp với 30 thuộc tính đặc trưng mô tả trang web và 1 thuộc tính nhãn lớp Result (nhận giá trị 1 là lừa đảo, -1 là hợp pháp).
2. Thuộc tính độ dài URL (URL_Length) và số lượng tên miền phụ (having_Sub_Domain) được gán nhãn theo quy tắc nào?
- Thuộc tính
URL_Length: Nếu chiều dài URL < 54 ký tự thì được phân loại là hợp pháp (-1); nếu chiều dài từ 54 đến 75 ký tự thì thuộc diện nghi ngờ (0); nếu chiều dài > 75 ký tự thì bị coi là lừa đảo (1).
- Thuộc tính
having_Sub_Domain: Sau khi bỏ tiền tố www và phần đuôi mã quốc gia, nếu số dấu chấm (.) trong tên miền bằng 1 thì là hợp pháp (-1); nếu bằng 2 thì là nghi ngờ (0); nếu lớn hơn 2 thì là lừa đảo (1).
3. Quy trình thực nghiệm đánh giá mô hình phân lớp trên Weka được tiến hành ra sao?
Dữ liệu từ tệp PhishingWebsiteDataSet.arff được nạp vào Weka và chia thành 2 tập: Training Set (70%) và Test Set (30%) bằng bộ lọc Remove Percentage. Tập huấn luyện được học thông qua phương pháp kiểm định chéo 10-fold Cross-Validation trên các bộ phân lớp (Random Forest, Naïve Bayes, K-NN, SVM, Multilayer Perceptron). Sau đó, mô hình được kiểm thử lại bằng tập Test Set độc lập. Các mô hình huấn luyện được lưu dưới dạng tệp .model và nạp vào công cụ Knowledge Flow để vẽ đường cong ROC so sánh hiệu năng.
4. Ứng dụng dự đoán website lừa đảo được xây dựng trên công nghệ nào và xử lý dữ liệu ra sao?
Ứng dụng được lập trình bằng ngôn ngữ Java trên NetBeans IDE, sử dụng thư viện giao diện Java Swing và tích hợp thư viện weka.jar. Ứng dụng cho phép người dùng nạp tập dữ liệu, tự động chia tập Training/Test (70/30), huấn luyện mô hình Random Forest với 10-fold Cross-Validation, sau đó tiếp nhận các bộ dữ liệu không nhãn (Unlabel Set) để phân loại và hiển thị kết quả dự đoán nhãn lớp (1 hoặc -1) ra bảng giao diện.
Kết luận
Khóa luận đã nghiên cứu và triển khai giải pháp phát hiện website lừa đảo sử dụng mô hình học máy Random Forest trên không gian 30 thuộc tính đặc trưng từ bộ dữ liệu UCI gồm 11.055 mẫu. Tác giả đã thiết lập quy trình thực nghiệm hoàn chỉnh trên phần mềm Weka với kỹ thuật kiểm định chéo 10-fold Cross-Validation và đánh giá trực quan qua đường cong ROC. Đồng thời, đề tài đã xây dựng thành công ứng dụng Java Swing tích hợp thư viện Weka, cho phép tự động phân lớp các tập dữ liệu website chưa gán nhãn với cấu trúc xử lý rõ ràng.