intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Thuật toán Cây quyết định trong dữ liệu lớn để phân loại thư rác

Chia sẻ: Tưởng Trì Hoài | Ngày: | Loại File: PDF | Số trang:5

6
lượt xem
3
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Nghiên bài báo "Thuật toán Cây quyết định trong dữ liệu lớn để phân loại thư rác", tác giả tìm hiểu dữ liệu lớn là gì, học có giám sát của dữ liệu lớn, một số thuật toán của dữ liệu lớn. Ngoài ra, tôi tìm hiểu vấn nạn thư rác gây phiền phức cho người dùng, để ngăn chặn vấn nạn trên tôi dùng thuật toán của dữ liệu lớn. Mời các bạn cùng tham khảo!

Chủ đề:
Lưu

Nội dung Text: Thuật toán Cây quyết định trong dữ liệu lớn để phân loại thư rác

  1. Kỷ yếu Hội thảo khoa học Khoa Công nghệ thông tin, năm 2024 THUẬT TOÁN CÂY QUYẾT ĐINH TRONG DỮ LIỆU LỚN ĐỂ PHÂN LOẠI THƯ RÁC Nguyễn Tiến Trình Trường Đại học Công Thương Thành phố Hồ Chí Minh * Email: 1001230008@hufi.edu.vn Ngày nhận bài: 02/05/2024; Ngày chấp nhận đăng: 20/05/2024 TÓM TẮT Nghiên bài báo này, tôi tìm hiểu dữ liệu lớn là gì, học có giám sát của dữ liệu lớn, một số thuật toán của dữ liệu lớn. Ngoài ra, tôi tìm hiểu vấn nạn thư rác gây phiền phức cho người dùng, để ngăn chặn vấn nạn trên tôi dùng thuật toán của dữ liệu lớn. Dữ liệu lớn có nhiều thuật toán như thuật toán rừng ngẫu nhiên, cây quyết định… Bài toán phân loại thư rác hay không loại thư rác tôi dùng thuật toán cây quyết định vì thuật toán dễ hiểu, cơ bản, giúp sinh viên dễ nghiên cứu thuật toán cây quyết định. Từ khóa: thư rác, dữ liệu lớn, thuật toán cây quyết định. 1. GIỚI THIỆU Với sự phát triển của cuộc cách mạng 4.0 và phát triển nạnh mẽ của công nghệ thông tin, vấn đề về thư rác đã trở thành một trong những thách thức quan trọng của hệ thống thư điện tử. Với số lượng lớn các thư điện tử gửi đi hàng ngày, việc phải lọc ra thông điệp quan trọng từ những thư điện tử không mong muốn là một nhiệm vụ phức tạp và cần sự hiệu quả cao. Thuật toán cây quyết định là một giải pháp thông minh trong việc xử lý vấn đề này. Thuật toán này hoạt động bằng cách xây dựng một cây quyết định dựa trên các thuộc tính của thư điện tử như tiêu đề, nội dung, địa chỉ người gửi, và nhiều yếu tố khác. Cây quyết định được huấn luyện trên một lượng lớn dữ liệu, trong đó mỗi thư điện tử được gán nhãn là "thư rác" hoặc "không phải thư rác". Quá trình huấn luyện này giúp cho cây quyết định “học" được các mẫu và quy tắc để phân loại thư điện tử một cách tự động và chính xác. Khi đã hoàn thành quá trình huấn luyện, cây quyết định có thể được triển khai vào hệ thống thư điện tử thực tế, nơi nó sẽ tự động phân loại các thư điện tử đến vào các hộp thư tương ứng, giúp người dùng tiết kiệm thời gian. Với ứng dụng thuật toán cây quyết định này, chúng ta có thể đạt được hiệu suất cao trong việc lọc thư rác, đồng thời giảm thiểu số lượng thư điện tử không mong muốn đến trong hộp thư của người dùng. Điều này giúp cải thiện trải nghiệm người dùng và tăng cường hiệu suất làm việc của họ khi sử dụng thư điện tử trong môi trường công việc và cá nhân. 2. CƠ SỞ LÝ THUYẾT 2.1 Dữ liệu lớn là gì Dữ liệu lớn là một tập hợp dữ liệu có khối lượng khổng lồ theo cấp số nhân theo thời gian. Đó là một dữ liệu có kích thước rất lớn và phức tạp không có công cụ quản lý dữ liệu truyền thống nào có thể lưu trữ hoặc xử lý nó một cách hiệu quả. [1]. 253
  2. Nguyễn Tiến Trình Bài toán phân loại thư rác làm việc với dữ liệu lớn và dữ liệu chỉ tập trung một số đặc tính của thư rác như chủ đề thư điện tử, nội dung thư điện tử, địa chỉ gửi thư điện tử, địa chỉ nhận thư điện tử. 2.2 Học có giám sát trong dữ liệu lớn Học có giám sát là một quá trình học máy trong đó mô hình tự đào tạo để học được đặc trưng bên trong của dữ liệu [2]. Tôi sử dụng học có giám sát trong dữ liệu lớn dán nhãn đẻ phân loại thư điện tử mới có phải thư rác không. Thư rác dán nhãn 1 và không phải thư rác dán nhãn 0. 3. THUẬT TOÁN CÂY QUYẾT ĐỊNH BÀI TOÁN PHÂN LOẠI THƯ RÁC 3.1 Tìm hiểu thuật toán cây quyết định Cây quyết định là một thuật toán học tập có giám sát không tham số, được sử dụng cho cả nhiệm vụ phân loại và hồi quy. Nó có cấu trúc dạng cây, phân cấp, bao gồm nút gốc, các nhánh , các nút bên trong và các nút lá. Cây quyết định bắt đầu bằng một nút gốc, không có bất kỳ nhánh nào đến. Các nhánh đi từ nút gốc sau đó đưa vào các nút bên trong, còn được gọi là nút quyết định. Dựa trên các đặc điểm sẵn có, cả hai loại nút đều tiến hành đánh giá để tạo thành các tập con đồng nhất, được ký hiệu bằng các nút lá, hoặc các nút đầu cuối. Các nút lá đại diện cho tất cả các kết quả có thể có trong tập dữ liệu [2]. Trong cây quyết định, để dự đoán lớp của tập dữ liệu đã cho, thuật toán bắt đầu từ nút gốc của cây. Thuật toán này so sánh các giá trị của thuộc tính gốc với thuộc tính bản ghi (tập dữ liệu thực) và dựa trên sự so sánh, đi theo nhánh và nhảy đến nút tiếp theo. Đối với nút tiếp theo, thuật toán lại so sánh giá trị thuộc tính với các nút con khác và di chuyển xa hơn. Nó tiếp tục quá trình cho đến khi nó đạt đến nút lá của cây [2]. Quy trình hoàn chỉnh có thể được hiểu rõ hơn bằng cách sử dụng thuật toán dưới đây: Bước 1: Bắt đầu cây với nút gốc (Đặt tên: S), nút này chứa tập dữ liệu hoàn chỉnh. Bước 2: Tìm thuộc tính tốt nhất trong tập dữ liệu bằng cách sử dụng phép đo lựa chọn thuộc tính. Bước 3: Chia S thành các tập con chứa các giá trị có thể có cho các thuộc tính tốt nhất. Bước 4: Tạo nút cây quyết định chứa thuộc tính tốt nhất. Bước 5: Tạo một cách đệ quy cây quyết định mới bằng cách sử dụng các tập con của tập dữ liệu đã tạo ở bước 3. Tiếp tục quá trình này cho đến khi đạt đến một giai đoạn mà bạn không thể phân loại thêm các nút và được gọi là nút cuối cùng là nút lá. 3.2 Công cụ và các thư viện Trong bài nghiên cứu này, tôi sử dụng ngôn ngữ lập trình Python và một số thư viện cần thiết như sau: Pandas: Xử lý, phân tích dữ liệu dưới dạng bảng [3]. Sklearn: Tree: Xây dựng mô hình cây quyết định [4]. Feature_extraction: Trích xuất đặc trưng. Mục đích là để định nghĩa các thuộc tình với dữ liệu hình ảnh và dữ liệu ngôn ngữ [4]. 254
  3. Kỷ yếu Hội thảo khoa học Khoa Công nghệ thông tin, năm 2024 Model_selection: cung cấp các công cụ hỗ trợ cho việc chia dữ liệu thành các tập train và test, đánh giá mô hình [4]. Metrics: Đo độ chính xác [4]. 3.3 Các bước xây dựng thuật toán cây quyết định của dữ liệu lớn để phân loại thư rác Bước 1: Import các thư viện: Pandas, Tree, Feature_extraction, Model_selection, Metrics. Bước 2: Hàm read_csv đọc dữ liệu từ file spam_dataset.csv đã dán nhãn. Bước 3: Chia dữ liệu thành các đặc trưng và các nhãn và kết hợp các cột thành 1 cột duy nhất. x = data[['subject', 'email to', 'email from', 'message']] Cột chứa nội dung thư điện tử. y = data['label_num'] Cột chứa nhãn (1 là thư rác, 0 là không phải thư rác). x_combined = x['subject'] + ' ' + x['email to'] + ' ' + x['email from'] + ' ' + x['message'] Bước 3: Hàm train_test_split chia dữ liệu thành tập huấn luyện 0,8 và tập kiểm tra 0,2. x_train, x_test, y_train y_test = train_test_split(x_combined, y, test_size=0.2, random_state=42) Bước 4: Gọi hàm CountVectorizer và hàm fit_transform chuyển đổi văn bản thành vector đặc trưng. vectorizer = CountVectorizer() x_train_vectorized = vectorizer.fit_transform(x_train) x_test_vectorized = vectorizer.transform(x_test) Bước 5: Gọi hàm DecisionTreeClassifier và fit hàm xây dựng mô hình cây quyết định. clf = DecisionTreeClassifier() clf.fit(x_train_vectorized, y_train) Bước 6: Hàm score đánh giá mô hình trên tập kiểm tra. Thông báo ra màn hình độ chính xác của thuật toán cây quyết định. accuracy = clf.score(x_test_vectorized, y_test) Bước 7: Hàm predict dùng mô hình để phân loại một thư điện tử mới. Thông báo ra màn hình đã phân loại thư rác. new_thư điện tử = ["Nhập nội dung thư điện tử"] new_thư điện tử_vectorized = vectorizer.transform(new_thư điện tử) prediction = clf.predict(new_thư điện tử_vectorized) 4. THỰC NGHIỆM 4.1 Mô tả bài toán Đầu vào: Nội dung của thư điện tử mới, chủ đề thư điện tử mới, địa chỉ nhận của thư điện tử, địa chỉ gửi thư điện tử. Đầu ra: Phân loại thư điện tử mới có phải thư rác hay không phải thư rác. 4.2 Dữ liệu Dữ liệu file được download từ trang website: 255
  4. Nguyễn Tiến Trình https://www.kaggle.com/datasets/neildavid/email-spam-classification-from- shantanu-dhakad File spam_data.csv gồm 70606 dòng và 4 cột (subject, email to, email from, message) 1 cột label gán nhãn 1 và 0 để phân loại thư rác. Trong đó: Thư rác nhãn 1 có 46063 nhãn. Không phải thư rác nhãn 0 có 25542 nhãn. 4.3 Kết quả thực nghiệm Khai báo các thư viện ở hình 1 và đọc file dữ liệu ở hình 2. Hình 1. Các thư viện và đọc file dữ liệu Hình 2. In ra dữ liệu Tôi đã xây dựng bài toán phân loại thư rác: chia dữ liệu theo đặc trưng và nhãn, kết nối các cột thành 1 cột duy nhất, chia dữ liệu thành tập huấn luyện và tập kiểm tra, chuyển đổi văn bản thành vector đặc trưng, xây dựng mô hình và đánh giá mô hình ở hình 3. Hình 3. Đánh giá mô hình Hình 4. Mô hình phân loại thư rác Sau khi chạy mô hình, thuật toán cây quyết định với độ chính xác 0,94. Mô hình để phân loại thư mới ở hình 4 và kết quả thử nghiệm phân loại thư rác hay không phải thư rác ỏ bảng 1. Bảng 1. Kết quả phân loại thư rác Chủ đề Kết quả phân loại Generic Cialis, branded quality@ 1 authentic viagra 1 Nice talking with ya 1 or trembling; stomach cramps; trouble in sleeping; weakness 1 loose Which is duty 1 Typo in /debian/README 0 [R] Confidence-Intervals.... help... 0 Your daily e-mail from the BBC 0 Re: Broken ACPI with kernel 2.6.18-4-686 in HP nx6110 laptop 0 [R] Failure of mcsamp() but not mcmcsamp() 0 256
  5. Kỷ yếu Hội thảo khoa học Khoa Công nghệ thông tin, năm 2024 So sánh độ chính xác thuật toán cây quyết định và thuật toán rừng ngẫu nhiên, tương tự thuật toán cây quyết định, tôi có thuật toán rừng ngẫu nhiên độ chính xác 0,97 độ chính xác của thuật toán rừng ngẫu nhiên cao hơn độ chính xác thuật toán cây quyết định. Tác giả vẫn dùng toán cây quyết định trong dữ liệu lớn vì thuật toán giúp độc giả dễ hiểu. 5. KẾT LUẬN Trong bài báo cáo này, tôi đã khái quát về dữ liệu lớn, nghiên cứu về thư rác và xây dựng thuật toán cây quyết định của dữ liệu lớn phân loại thư điện tử mới có phải thư rác hay thư bình thường. Tóm lại, việc tìm hiểu về dữ liệu lớn là một kỹ năng quan trọng đối với doanh nghiệp phát triển phần mền phân loại thư rác hoặc sinh viên, học viên để nghiên cứu, học tập ứng dụng của dữ liệu lớn phân loại thư rác. TÀI LIỆU THAM KHẢO 1. "Big Data: A Revolution That Will Transform How We Live, Work, and Think" của Viktor Mayer-Schönberger và Kenneth Cukier. 2. “Machine Learning, revised and updated edition” của Ethem Alpaydin 3. https://codelearn.io/sharing/xu-ly-du-lieu-voi-pandas-trong-python 4. https://codelearn.io/sharing/scikit-learn-trong-python-la-gi ABSTRACT DECISION TREE ALGORITHM OF BIG DATA FOR SPAM CLASSIFICATION Nguyen Tien Trinh Faculty of Information Technology, Ho Chi Minh City University of Industry and Trade Email: 1001230008@hufi.edu.vn Analyzing this article, I learn about big data, supervised learning of big data, and some algorithms of big data. Furthermore, I explore the nuisance of spam that annoys users, and to combat this issue, I utilize algorithms of big data. Big data encompasses various algorithms such as random forest algorithm, decision tree... For the spam classification problem, I employ the decision tree algorithm because it is easy to understand, fundamental, and helps students to easily research the decision tree algorithm. Keywords: spam mail, big data, decision tree algorithm Keywords: spam mail, big data, decision tree algorithm. Tôi xin cam kết bài báo này chưa được đăng và gửi đăng ở bất kỳ tạp chí nào khác. Tác giả: Họ và tên: Nguyễn Tiến Trình Số điện thoại liên hệ:0902734064 257
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2