Việc đánh giá một giải thuật học máy cho bộ dữ liệu là rất quan trọng, nĩ cho phép đánh giá được độ chính xác của các kết quả phân lớp và so sánh các giải thuật học máy khác nhau.
Các tiêu chuẩn đánh giá thường phụ thuộc vào các yếu tố như sau:
Tập dữ liệu càng lớn thì độ chính xác càng tốt.
Tập kiểm thử cần lớn thì việc đánh giá càng chính xác.
Vấn đề là rất khĩ (ít khi) cĩ thể cĩ được các tập dữ liệu (rất) lớn. Phân loại đa lớp (Multiclass classification)
Phân loại đa lớp mơ tả về một vấn đề phân loại khi nhãn M > 2 ( Trường hợp M = 2 là phân loại nhị phân).
Đối với phân loại đa lớp, khái niệm về lớp âm (negative) và lớp dương (posi- tive) được định nghĩa khác so với phân loại đơn lớp. Dự đốn và nhãn vẫn cĩ thể là lớp dương hoặc âm nhưng chúng phải được xem xét trong ngữ cảnh của một lớp cụ thể. Mỗi nhãn và dự đốn đưa vào giá trị của một trong nhiều lớp. Do đĩ chúng được cho là lớp dương đối với lớp cụ thể của chúng và là lớp âm cho tất cả các lớp khác.
Vì vậy, một số đúng dương (TP – True positive) xảy ra bất cứ khi nào dự đốn và nhãn phù hợp. Trong khi đĩ, một số đúng âm ( TN – True negative) xảy ra khi khơng dự đốn cũng khơng phải là nhãn đưa vào giá trị của một lớp nhất định. Theo đĩ, cĩ thể cĩ nhiều số đúng âm cho một mẫu dữ liệu nhất định. Việc mở rộng các số sai âm (FN – False negative) và các số sai dương (FP – False positive) từ các định nghĩa lớp dương và lớp âm là đơn giản.
- Precision: trong tập tìm được thì bao nhiêu cái (phân loại) đúng. Dành cho việc đo lường. Độ chính xác theo nhãn chỉ xem xét một lớp và đo số lần mà một nhãn cụ thể được dự đốn chính xác được chuẩn hĩa theo số lần nhãn xuất hiện
Các cơng thức tiêu chuẩn đánh giá [19]: - Định nghĩa cho lớp hoặc nhãn là:
L = {ℓ0, ℓ1, … , ℓ𝑀−1} - Kết quả đầu ra với vecto y bao gồm N thành phần:
𝑦0, 𝑦1, … , 𝑦𝑁−1 ∈ L - Vector dự đốn 𝑦̂ gồm N thành phần: 𝑦0 ̂, 𝑦̂, … 𝑦1 ̂𝑁−1 𝜖 𝐿 - Khi đĩ, một hàm 𝛿̂(𝑥) được xác định: 𝛿̂(𝑥) = { 1 𝑛ế𝑢 𝑥 = 00 𝑣ớ𝑖 𝑥 𝑐ị𝑛 𝑙ạ𝑖 (3.1) - Ma trận: (3.2) - Độ chính xác (Accuracy) ACC = 𝑇𝑃 𝑇𝑃 + 𝐹𝑃 + 𝑇𝑁 + 𝐹𝑁 = 1 N∑𝛿̂(𝑦̂𝑖− 𝑦𝑖) N−1 i=0 (3.3) - Precision by label (3.4) - Recall by labe (3.5)
- F-measure by label (3.6) - Weighted precision (3.7) - Weighted recall (3.8) - Weighted F-measure (3.9) 3.6. Phương pháp thực nghiệm 3.6.1. Cơng cụ dùng để phân lớp
Để phân loại văn bản bằng mơ hình họ máy Multimomial Bayes, tác giả sử dụng bộ cơng cụ Apache Spark MLLib (Apache Spark's scalable machine learning library) trên ngơn ngữ lập trình Java.
Apache Spark MLLib là bộ thư viện hỗ trợ xây dựng các mơ hình học máy, hỗ trợ các ngơn ngữ lập trình [7] : Java, Scala, Python và R. Thư viện MLLib hỗ trợ nhiều thuật tốn Học máy bao gồm:
- Phân loại(Logistic, Bayes, SVM, Random forest, Multilayer percep- tron,..), hồi quy(Linear, Decision tree,...)
- Phân nhĩm(K-mean, LDA, GMM,..) - Khuyến nghị(ALS,..).
3.6.2. Xây dựng dữ liệu huấn luyện và kiểm tra
Từ tập dữ liệu “data.txt” gồm 18758 dịng tương ứng với 18758 văn bản. Ta chia tập này thành 5 phần Cross-Validation. Một tập con sẽ được giữ lại để làm tập dữ liệu kiểm tra, cịn 4 tập cịn lại sẽ được sử dụng để huấn luyện Multinomial
Quá trình này sẽ được lặp đi lặp lại 5 lần sao cho tất cả các tập con đều sẽ được chọn làm tập dữ liệu kiểm tra.
3.7. Kết quả thực nghiệm
Thực nghiệm trên 5 phần Cross-Validation ta chạy thuật tốn như sau: - Lần 1 (Fold #1):
Giữ lại phần thứ 1 để làm dữ liệu đánh giá (test), phần 2, 3, 4 ,5 đưa vào mơ hình huấn luyện Multinomial Bayes (train)
- Lần 2 (Fold #2):
Giữ lại phần thứ 2 để làm dữ liệu đánh giá (test), phần 1, 3 ,4 ,5 đưa vào mơ hình huấn luyện Multinomial Bayes (train)
- Lần 3 (Fold #3):
Giữ lại phần thứ 3 để làm dữ liệu đánh giá (test), phần 1, 2 ,4 ,5 đưa vào mơ hình huấn luyện Multinomial Bayes (train)
- Lần 4(Fold #4):
Giữ lại phần thứ 4 để làm dữ liệu đánh giá (test), phần 1, 2, 3, 5 đưa vào mơ hình huấn luyện Multinomial Bayes (train)
- Lần 5(Fold #5):
Giữ lại phần thứ 5 để làm dữ liệu đánh giá (test), phần 1, 2, 3, 4 đưa vào mơ hình huấn luyện Multinomial Bayes (train)
Kết quả thực nghiệm như sau bảng sau: Lần kiểm tra thứ 1 Fold #1:
Bảng 3.2 Kết quả lần kiểm tra Fold #1
Class Train Test Precision
by label Recall by label F- measure by label talk.politics.mideast 747 186 0.9459 0.9409 0.9434 rec.autos 789 197 0.9050 0.9188 0.9118 comp.sys.mac.hardware 763 190 0.7689 0.8579 0.8109 alt.atheism 639 159 0.8580 0.9119 0.8841 rec.sport.baseball 789 197 0.9600 0.9746 0.9673 comp.os.ms- windows.misc 784 195 0.9583 0.3538 0.5169 rec.sport.hockey 794 198 0.9596 0.9596 0.9596 sci.crypt 792 197 0.9192 0.9239 0.9215 sci.med 782 195 0.9531 0.9385 0.9457 talk.politics.misc 620 155 0.8553 0.8774 0.8662 rec.motorcycles 795 198 0.9461 0.9747 0.9602 comp.windows.x 788 197 0.8265 0.9188 0.8702 comp.graphics 777 194 0.7706 0.8660 0.8155 comp.sys.ibm.pc.hardware 780 195 0.6296 0.8718 0.7312 sci.electronics 787 196 0.8486 0.8010 0.8241 talk.politics.guns 727 181 0.8719 0.9779 0.9219 sci.space 788 196 0.9239 0.9286 0.9262 soc.religion.christian 798 199 0.9133 0.8995 0.9063 misc.forsale 772 193 0.8869 0.7720 0.8255 talk.religion.misc 502 125 0.8980 0.7040 0.7892
- Weighted precision = (0.9459 + 0.9050 + 0.7689 + 0.8580 + 0.9600 + 0.9583 + 0.9596 + 0.9192 + 0.9531 + 0.8553 + 0.9461 + 0.8265 + 0.7706 + 0.6296 + 0.8486 + 0.8719 + 0.9239 + 0.9133 + 0.8869 + 0.8980 ) /20 = 0.8803 - Weighted recall = (0.9409 + 0.9188 + 0.8579 + 0.9119 + 0.9746 + 0.3538 + 0.9596 + 0.9239 + 0.9385 + 0.8774 + 0.9747 + 0.9188 + 0.8660 + 0.8718 + 0.8010 + 0.9779 + 0.9286 + 0.8995 + 0.7720 + 0.7040 ) /20 = 0.8710 - Weighted F1 score = (0.9434 + 0.9118 + 0.8109 + 0.8841 + 0.9673 + 0.5169 + 0.9596 + 0.9215 + 0.9457 + 0.8662 + 0.9602 + 0.8702 + 0.8155 + 0.7312 + 0.8241 + 0.9219 + 0.9262 + 0.9063 + 0.8255 + 0.7892) / 20 = 0.8661
Bảng 3.3 Kết quả trung bình của lần chạy Fold #1
Weighted precision
Weighted recall Weighted F1 score
Accuracy
0.8803 0.8710 0.8661 0.8710
Tương tự, ta tính được kết quả trung bình cho các lần chạy Fold #2, Fold #3, Fold #4, Fold #5 như sau:
Bảng 3.4 Kết quả thực nghiệm thuật tốn Multinomial Bayes với 5 phần Cross vali- dation
K-Fold Weighted
Precision
Weighted
Recall F-Score Accuracy
Fold #1 0.8803 0.8710 0.8661 0.8710 Fold #2 0.8622 0.8547 0.8466 0.8547 Fold #3 0.8677 0.8592 0.8537 0.8592 Fold #4 0.8450 0.8389 0.8244 0.8389 Fold #5 0.8522 0.8375 0.8243 0.8375 Trung bình 0.8615 0.8523 0.8430 0.8523
Trung bình sau 5-fold Cross-Validation thuật tốn Multinomial Bayes trên tập 18758 văn bản với kích thước vector 100.000 thu được kết quả độ chính xác (accuracy) xấp xỉ 85.23%.
3.8. So sánh với một số phương pháp khác
Để đánh giá thêm hiệu suất của mơ hình dự đốn, luận văn đã tiến hành huấn luyện tập dữ liệu trên các mơ hình học máy phổ biến khác Multinomial Logistic Regression với cùng bộ 5-fold Cross-Validation tương tự với bước thực nghiệm thuật tốn Multinomial Bayes.
Kết quả thực nghiệm như sau bảng sau:
Bảng 3.5 Kết quả thực nghiệm thuật tốn Multinomial Logistic Regression với 5 phần cross - validation
K-Fold Precision Recall F-Score Accuracy
Fold #1 0.8555 0.8437 0.8462 0.8437 Fold #2 0.8542 0.8373 0.8413 0.8373 Fold #3 0.8625 0.8507 0.8535 0.8507 Fold #4 0.8443 0.8229 0.828 0.8229 Fold #5 0.8411 0.8245 0.8286 0.8245 Trung bình 0.8515 0.8358 0.8395 0.8358 Nhận xét:
Từ 02 lần thực nghiệm trên, thuật tốn Multinomial Bayes đạt độ chính xác 85.22% tốt hơn thuật tốn Multinomial Logistic Regression với độ chính xác xấp xỉ 83.58%.
So sánh với mơ hình tốt nhất hiện nay với bộ dữ liệu “20 Newsgroups” của nhĩm nghiên cứu Đại học Stanford cĩ tên “Stanford Classifier” đạt độ chính xác xấp xỉ 88.7% (https://nlp.stanford.edu/wiki/Software/Classifier/20_Newsgroups)
3.9. Kết luận
Trong chương này, nội dung được nêu ra là cách thức mơ tả dữ liệu và chuẩn hĩa bộ dữ liệu 20 Newsgroups được sử dụng trong luận văn. Các bước tiền xử lý dữ liệu, chạy thuật tốn phân loại Multinomial Bayes với tập dữ liệu 18758 văn bản với cơng cụ Apache Spark MLLib. Kết quả với độ chính xác trên 85.23% tốt hơn so với thuật tốn Multinomial Logistic Regression với độ chính xác 83.58% và gần với thuật tốn tốt nhất đối với bộ dữ liệu 20 Newsgroups – Stanford Classifier với độ chính xác 88.7%.
KẾT LUẬN 1. Kết quả đạt được
Luận văn tiến hành nghiên cứu giải quyết bài tốn phân loại văn bản áp dụng thuật tốn Multinomial Bayes. Từ việc giải quyết bài tốn giúp cho chúng ta tiến gần hơn đến sự thơng minh của thế giới ảo, giúp quản lý tốt hơn hệ thống thơng tin ngập tràn những nội dung. Bài tốn là nền tảng cho nhiều ứng dụng quan trọng thực tế như quảng cáo nhắm mục tiêu, các hệ thống cung cấp tiếp thị dịch vụ thương mại tới đúng người dùng…
Những kết quả chính mà luận văn đạt được:
Nghiên cứu và tìm hiểu về thuật tốn Multinomial Bayes trên tập nhiều nhãn, đưa ra ưu điểm của thuật tốn Multinomial Bayes so với các thuật tốn phân loại văn bản khác.
Nghiên cứu và làm thực nghiệm khi áp dụng Multinomial Bayes để đánh giá trên tập dữ liệu 20 Newsgroups – Stanford Classifier với 18758 văn bản trên cơng cụ Apache Spark MLLib cĩ được độ chính xác tốt.
So sánh và phân tích các kết quả thực nghiệm với các mơ hình thuật tốn khác và đưa ra được trường hợp cho kết quả tốt nhất.
2. Hạn chế:
Nghiên cứu dựa trên dữ liệu cĩ sẵn
Kết quả thực nghiệm đạt được vẫn chưa thực sự tốt so với kỳ vọng.
Tốc độ xử lý dữ liệu vẫn chậm khi tập dữ liệu lớn
3. Hướng phát triển
Thu thập bộ dữ liệu lớn hồn chỉnh, phong phú về các lịch sử truy cập của người dùng Internet.
Dựa trên nhiều đặc trưng để gĩp phần cải thiện khả năng phân loại và áp dụng cho các bài tốn thực tiễn.
Ngồi ra nghiên cứu và thử nghiệm với một số mơ hình thuật tốn khác để tìm ra thuật tốn phù hợp với bài tốn phân loại người dùng.
DANH MỤC TÀI LIỆU THAM KHẢO
[1] Nguyễn Minh Thành (2011) – Xử lý ngơn ngữ tự nhiên – Đồ án mơn học, Đại học Quốc gia Thành phố Hồ Chí Minh (2-6) 2011.
[2] Đỗ Thanh Nghị, Phạm Nguyên Khang – Phân loại văn bản: Mơ hình túi từ và tập hợp mơ hình máy học tự động - Tạp chí Khoa học trường Đại học Cần Thơ số 28 - (10-11) 2013.
[3] Trần, C.Đ và Phạm N.K.: Phân loại văn bản với máy học véc tơ hỗ trợ và cây quyết định. Tạp chí Khoa học Trường Đại học Cần Thơ số (21a): 52-63 (2012). [4] Xiaojin Zhu (2008). Semi-Supervised Learning Literature Survey. Computer Sciences TR 1530, University of Wisconsin – Madison, February 22, (9) 2008. [5] Xiaojin Zhu (2005). Semi-Supervised Learning with Graphs. PhD thesis, Carnegie Mellon University, CMU-LTI-05-192, May 2005.
[6] Dunja Mladenic' . Machine Learning on Non-homogeneous, Distributed Text Data. PhD. Thesis, University of Ljubljana, Slovenia. 2 (1988).
[7] Xiangrui Meng, Ameet Talwalkar, Evan Sparks, Virginia Smith, Xinghao Pan, Shivaram Venkataraman, Matei Zaharia, Rean Griffith, John Duchi, Joseph Gonzalez, Michael Franklin, Michael I. Jordan, Tim Kraska – Mlib: Scalable Ma- chine Learnig on Spark (4-6).
https://stanford.edu/~rezab/sparkworkshop/slides/xiangrui.pdf
[8] Multiclass classification - https://spark.apache.org/docs/2.2.0/mllib- evaluation-metrics.html#multiclass-classification
[9] Mendenhall's studies of word-length distribution in the works of Shakespeare and Bacon. Available from:
https://academic.oup.com/biomet/article-abstract/62/1/207/220350/Mendenhall-s- studies-of-word-length-distribution
[10] Argamon, S., Koppel, M., Fine, J. and Shimoni, A. (2003). Gender, Genre, and Writing Style in Formal Written Texts, Text 23(3), August.
[12] Sebastiani, F.: Machine learning in automated text categorization. ACM Computing Surveys 34(1), 1–47 (1999).
[13] Breiman, L.: Random forests. Machine Learning 45(1), 5–32 (2001).
[14] Lewis, D. and Gale, W (1994), “A sequential algorithm for training test clas- sifiers”. In proc, of SIGIR-94.
[15] McCallum, A., Nigam, K,: A comparion of event models for nạve Bayes text classification. Technical report, American Association for Artificial Intelli- gence Workshop on Learning for Text Categorization, 2 (1998).
http://www.cs.cmu.edu/~knigam/papers/multinomial-aaaiws98.pdf
[16] Ashraf M.Kibriya, Eibe Frank, Bernhard Pfahringer, and Geoffrey, and Geoffrey Holmes “ Multinomial Nạve Bayes for Text Categorization Revisited”, Department of Computer Science. University of Waikato – Hamilton, New Zealand (chap 2.3).
[17] Naive Bayes Classifier, Feature Engineering – Machine learning cơ bản https://machinelearningcoban.com/2017/08/08/nbc/
https://machinelearningcoban.com/general/2017/02/06/featureengineering/ [18] Dominhhai - Hồi quy logistic (Logistic Regression)
https://dominhhai.github.io/vi/404.html?fbclid=IwAR2SD5krRlkrV3QtRXfahQtUL -Ze4mz1vPjfzwHbJbUo0a6zR2YjxXe3ABA
[19] Multiclass classification - Evaluation Metrics - RDD-based API https://spark.apache.org/docs/2.2.0/mllib-evaluation-metrics.html#multiclass- classification
[20] Bài giảng khai phá dữ liệu web – Đại học cơng nghệ - Đại học Quốc Gia Hà Nội