LỜI MỞ ĐẦU Machine Learning là một lĩnh vực của trí tuệ nhân tạo nghiên cứu và phát triển các thuật toán và mô hình để giúp máy tính học hỏi từ dữ liệu một cách tự động và cải thiện hiệu suất theo thời gian. Học máy có rất nhiều ứng dụng trong các lĩnh vực như y tế, tài chính, marketing, công nghệ thông tin và nhiều lĩnh vực khác. Tìm hiểu thuật toán KNN và ứng dụng cho bài toán phân loại rượu là một chủ đề rất thú vị và hấp dẫn trong lĩnh vực Machine Learning. Thuật toán KNN (KNearest Neighbors) là một trong những thuật toán phân loại đơn giản và hiệu quả nhất trong Machine Learning. Thuật toán này dựa trên nguyên lý rằng các điểm dữ liệu có các đặc trưng tương tự sẽ nằm gần nhau trong không gian đặc trưng. Trong bài toán phân loại rượu, chúng ta có một tập dữ liệu chứa thông tin về các loại rượu và nhãn cho biết chúng thuộc loại rượu nào. Chúng ta có thể sử dụng thuật toán KNearest Neighbors (KNN) để phân loại các loại rượu dựa trên các đặc trưng của chúng.
Trang 1BÁO CÁO BÀI TẬP LỚN HỌC PHẦN: HỌC MÁY
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
-Hà Nội, 2023
CHỦ ĐỀ NGHIÊN CỨU TÌM HIỂU THUẬT TOÁN KNN VÀ ỨNG DỤNG CHO
BÀI TOÁN PHÂN LOẠI RƯỢU
Trang 2MỤC LỤC
CHƯƠNG 1 TỔNG QUAN VỀ HỌC MÁY 7
1.1 Đặt vấn đề 7
1.2 Machine Learning là gì? 8
1.3 Các phương pháp Machine Learning 9
1.3.1 Supervised machine learning 9
1.3.2 Unsupervised machine learning 9
1.3.3 Semi-supervised learning 10
1.4 CÁc thuật toÁn phổ biến của Machine Learning 10
1.5 Ứng dụng thực tế của Machine Learnings 10
CHƯƠNG 2: BÀI TOÁN VÀ PHƯƠNG PHÁP SỬ DỤNG 12
2.1 Thuật toán Decision Tree 12
2.1.1 Xây dựng cây quyết định 12
2.1.2 Phân loại mẫu dữ liệu mới 13
2.1.3 Ưu điểm và nhược điểm 13
2.2 Thuật toán Random Forest 13
2.2.1 Xây dựng Random Forest 13
2.2.2 Ưu điểm và nhược điểm của Random Forest 14
2.3 Thuật toán K-Nearest Neighbors (KNN) 14
2.3.1 Xây dựng KNN 15
2.3.2 Ưu điểm và nhược điểm của KNN 15
2.4 Thuật toán Naive Bayes 15
2.4.1 Xây dựng Naive Bayes 16
2.4.2 Ưu điểm của Naive Bayes 16
2.4.3 Nhược điểm của Naive Bayes 16
Trang 32.5 Thuật toán Support Vector Machine (SVM) 17
2.5.1 Xây dựng SVM 17
2.5.2 Phân loại mẫu dữ liệu mới 17
2.5.3 Ưu điểm của SVM 17
CHƯƠNG 3: ỨNG DỤNG THUẬT TOÁN KNN CHO BÀI TOÁN PHÂN LOẠI RƯỢU 18
3.1 Phân tích thuật toán KNN (K-Nearest Neighbors) 18
3.1.1 Lý do chọn thuật toán 18
3.1.2 Quy trình làm việc của thuật toán KNN 18
3.1.3 Ví dụ minh họa 19
3.1.4 Ví dụ về KNN nhiễu 19
3.1.5 Phân tích toán học 20
3.2 Các thư viện chính được sử dụng 24
3.3 Bộ dữ liệu Wine 24
3.4 Cài đặt môi trường 25
3.5 Thực hiện xây dựng mô hình 29
3.6 Kết quả đạt được 31
KẾT LUẬN 33
TÀI LIỆU THAM KHẢO 33
Trang 4MỤC LỤC HÌNH ẢNH
Hình 1 : Mối quan hệ gin Al, Machine Learning và Deep Learning 7
Hình 2 : Ví dụ về thuật toán KNN 19
Hình 3 : Bản đồ minh họa KNN nhiễu với K=1 19
Hình 4 : Giao diện trang chủ của PyCharm tại JetBrains 26
Hình 5 : Tùy vào nhu cầu của bạn, hãy lựa chọn tải về phiên bản phù hợp .26 Hình 6 : Màn hình chào mừng của PyCharm 27
Hình 7 : Lựa chọn thư mục chứa PyCharm 27
Hình 8 : Hướng dẫn một số cài đặt PyCharm 28
Hình 9 : Chọn Install để bắt đầu cài đặt 28
Hình 10 : Kết thúc quá trình cài đặt bằng cách nhấn Finish 29
Trang 5LỜI CÁM ƠN
Lời đầu tiên cho phép nhóm chúng em gửi lời cám ơn sâu sắc tới thầy côtrong Khoa Công nghệ thông tin đã truyền đạt những kiến thức và viết thành giáotrình để chúng em có cơ hội học tập Đó là những kiến thức quý báu và bổ ích
Để hoàn thành được bài tập lớn này, đặc biệt nhóm chúng em xin được bày
tỏ sự tri ân và chân thành cảm ơn giảng viên TS Trần Hùng Cường người trựctiếp hướng dẫn, chỉ bảo nhóm chúng em trong suốt quá trình học tập và nghiêncứu để hoàn thành bài tập lớn này Nhờ có sự giúp đỡ của thầy nhóm chúng em đã
có thể hoàn thành bài tập một cách tốt nhất và đạt được những kết quả khả quan
Trong quá trình nghiên cứu và làm báo cáo do năng lực, kiến thức còn hạnhẹp nên không tránh khỏi những thiếu sót Nhóm chúng em kính mong nhận được
sự thông cảm và những ý kiến đóng góp của quý thầy cô và các bạn
Một lần nữa, em xin chân thành cảm ơn thầy/cô vì sự hỗ trợ và đóng gópcủa mình trong quá trình thực hiện bài tập lớn này
Nhóm em xin chân thành cảm ơn!
Trang 6LỜI MỞ ĐẦU
Machine Learning là một lĩnh vực của trí tuệ nhân tạo nghiên cứu và pháttriển các thuật toán và mô hình để giúp máy tính học hỏi từ dữ liệu một cách tựđộng và cải thiện hiệu suất theo thời gian Học máy có rất nhiều ứng dụng trongcác lĩnh vực như y tế, tài chính, marketing, công nghệ thông tin và nhiều lĩnh vựckhác
Tìm hiểu thuật toán KNN và ứng dụng cho bài toán phân loại rượu là mộtchủ đề rất thú vị và hấp dẫn trong lĩnh vực Machine Learning Thuật toán KNN(K-Nearest Neighbors) là một trong những thuật toán phân loại đơn giản và hiệuquả nhất trong Machine Learning Thuật toán này dựa trên nguyên lý rằng cácđiểm dữ liệu có các đặc trưng tương tự sẽ nằm gần nhau trong không gian đặctrưng Trong bài toán phân loại rượu, chúng ta có một tập dữ liệu chứa thông tin
về các loại rượu và nhãn cho biết chúng thuộc loại rượu nào Chúng ta có thể sửdụng thuật toán K-Nearest Neighbors (KNN) để phân loại các loại rượu dựa trêncác đặc trưng của chúng
Chương 1 của bài tập lớn này sẽ giới thiệu cơ sở lý thuyết của MachineLearning, bao gồm các khái niệm cơ bản như supervised learning, unsupervisedlearning, Ngoài ra, chương này cũng sẽ giới thiệu về bài toán phân loại và cácphương pháp tiếp cận khác nhau để giải quyết bài toán này
Chương 2 sẽ tập trung vào thuật toán KNN và các quy trình của nó vào bàitoán phân loại rượu Chúng em tìm hiểu cách thuật toán KNN hoạt động, các tham
số quan trọng của thuật toán và cách lựa chọn giá trị tối ưu cho các tham số này vàlấy ví dụ về thuật toán KNN
Chương 3 sẽ trình bày về quá trình thử nghiệm của chúng em trên tập dữliệu rượu Chúng em sẽ đánh giá hiệu suất của thuật toán KNN trên tập dữ liệunày và tính độ chính xác của tập dữ liệu
Qua bài tập lớn này, nhóm chúng em đã có cơ hội tìm hiểu sâu hơn về thuật toán KNN và các ứng dụng của nó trong bài toán phân loại rượu Chúng em cũng
sẽ có thể áp dụng các kiến thức đó để giải quyết các bài toán phân loại khác trong
Trang 7CHƯƠNG 1 TỔNG QUAN VỀ HỌC MÁY
1.1 Đặt vấn đề
Những năm gần đây, AI nổi lên như một bằng chứng của cuộc cách mạngcông nghiệp lần thứ tư Trí tuệ nhân tạo có thể được định nghĩa như một nghànhcủa khoa học máy tính liên quan đến việc tự động hóa các hành vi thông minh.Theo đà phát triển của công nghệ, ứng dụng trí tuệ nhân tạo luôn là xu hướngcông nghệ tương lai mà các hãng công nghệ trên toàn thế giới đua nhau sáng tạo,
nó là nền tảng cốt lõi của cuốc cách mạng công nghệ 4.0
MI (Machine Learning) là một lĩnh vực của trí tuệ nhân tạo được sinh ra từ
ML (Machine Learning) là một lĩnh vực của trí tuệ nhân tạo, được sinh ra từ khảnăng nhận diện mẫu và từ lý thuyết các máy tính có thể học mà không cần phảilập trình để xử lý các nhiệm vụ cụ thể nào đó
Các ứng dụng của ML đã quá quen thuộc với con người: xe tự hành củaGoogle và Tesla, hệ thống tự tag khuôn mặt trên Facebook, hệ thống gợi ý sảnphẩm của Amazon, hệ thống gợi ý phim của Netflix , chỉ là một vài trong vô vànnhững ứng dụng của trí tuệ nhân tạo và cụ thể là ML
Hình 1 : Mối quan hệ gin Al, Machine Learning và Deep Learning
Xu hướng phát triển công nghệ thông tin ngày càng tăng, song song với nólượng dữ liệu được sinh ra cũng ngày một lớn Vì vậy nhu cầu để xử lý dữ liệu
Trang 8cũng lớn hơn, ML đang góp phần giải quyết vấn đề này Một trong những thuậttoán thường dùng trong ML đó là thuật toán K- nearest neighbor (KNN).
Ứng dụng của thuật toán này được sử dụng rất nhiều và rộng rãi trong cácbài toán phân lớp Cụ thể thì trong bài tập lớn này nhóm chúng em sẽ ứng dụngthuật toán KNN vào bài toán phân loại rượu
Để áp dụng thuật toán KNN cho bài toán phân loại rượu, chúng ta cần xácđịnh các đặc trưng quan trọng để phân loại Các đặc trưng này có thể bao gồmnồng độ cồn, độ axit, độ đường, màu sắc, v.v
Khi đã xác định các đặc trưng, chúng ta sẽ sử dụng tập dữ liệu huấn luyện
để huấn luyện mô hình KNN Sau đó, chúng ta sẽ sử dụng mô hình đã huấn luyện
để phân loại các chai rượu mới dựa trên các đặc trưng của chúng
Tóm lại, thuật toán KNN là một trong những thuật toán phổ biến trongMachine Learning được sử dụng để phân loại dữ liệu dựa trên khoảng cách giữachúng và các điểm dữ liệu trong tập huấn luyện Áp dụng thuật toán KNN cho bàitoán phân loại rượu có thể giúp chúng ta phân loại các chai rượu mới dựa trên cácđặc trưng của chúng
1.2 Machine Learning là gì?
Machine Learning (hay học máy) là một lĩnh vực của trí tuệ nhân tạo (AI)
mà nghiên cứu cách để máy tính học hỏi từ dữ liệu mà không cần được lập trìnhmột cách cụ thể Thay vì chỉ đơn giản là thực hiện các chỉ thị được lập trìnhtrước đó, máy tính được lập trình để tìm ra các mô hình và kết luận từ dữ liệuđầu vào
Machine Learning được áp dụng rộng rãi trong nhiều lĩnh vực khác nhau,bao gồm kinh doanh, y học, khoa học dữ liệu, thị giác máy tính, xử lý ngôn ngữ
tự nhiên, và robot học Với sự phát triển của công nghệ và dữ liệu, MachineLearning đang trở thành một công cụ quan trọng để giải quyết các vấn đề và tạo
ra giá trị mới trong nhiều lĩnh vực
Trang 91.3 Các phương pháp Machine Learning
1.3.1 Supervised machine learning
Supervised learning còn được gọi là học máy có giám sát, được định nghĩabằng cách sử dụng các tập dữ liệu được gắn nhãn để huấn luyện các thuật toánphân loại dữ liệu hoặc dự đoán kết quả một cách chính xác
Khi dữ liệu đầu vào được đưa vào mô hình, mô hình sẽ điều chỉnh trọnglượng của nó cho đến khi nó được lắp một cách thích hợp Điều này xảy ra nhưmột phần của quá trình xác nhận chéo để đảm bảo rằng mô hình tránh trang bịquá nhiều hoặc trang bị thiếu thông tin
Supervised machine learning giúp các tổ chức giải quyết nhiều vấn đề trongthế giới thực trên quy mô lớn, chẳng hạn như phân loại thư rác trong một thưmục riêng biệt từ hộp thư đến của bạn.
Một số phương pháp được sử dụng trong Supervised machine learning baogồm: logistic regression, neural networks, linear regression, naive bayes, randomforest, và support vector machine (SVM)
1.3.2 Unsupervised machine learning
Unsupervised machine learning là phương pháp sử dụng các thuật toán máyhọc để phân tích và phân cụm các tập dữ liệu không được gắn nhãn
Không cần sự can thiệp của con người, các thuật toán này có thể phát hiện
ra các mẫu hoặc nhóm dữ liệu ẩn Khả năng phát hiện ra những điểm tươngđồng và khác biệt trong thông tin của phương pháp này khiến nó trở nên lýtưởng cho việc phân tích dữ liệu khám phá, chiến lược bán chéo (cross-sell),phân khúc khách hàng cũng như nhận dạng hình ảnh và mẫu.
Unsupervised machine learning cũng được sử dụng để giảm số lượng cáctính năng trong một mô hình thông qua quá trình giảm kích thước Phân tíchthành phần chính (PCA) và phân tích giá trị đơn lẻ (SVD) là hai cách tiếp cậnphổ biến cho việc này.
Trang 10Các thuật toán khác được sử dụng trong học tập không giám sát bao gồm:k-means clustering, neural networks, và probabilistic clustering methods.
1.3.3 Semi-supervised learning
Semi-supervised learning cung cấp một phương pháp hiệu quả giữa học tập
có giám sát và không giám sát Trong quá trình đào tạo, nó sử dụng một tập dữliệu có nhãn nhỏ hơn để hướng dẫn phân loại và trích xuất tính năng từ mộttập dữ liệu lớn hơn, không được gắn nhãn.
Phương pháp Semi-supervised learning có thể giải quyết vấn đề không có
đủ dữ liệu được gắn nhãn cho thuật toán học có giám sát Nó cũng hữu ích nếuquá tốn kém để gắn nhãn đủ dữ liệu.
1.4 CÁc thuật toÁn phổ biến của Machine Learning
Neural networks: Mô phỏng cách thức hoạt động của bộ não con người, vớimột số lượng khổng lồ các nút xử lý được liên kết Neural networks là thuậttoán được dùng trong việc nhận dạng các mẫu và đóng một vai trò quantrọng trong các ứng dụng bao gồm dịch ngôn ngữ tự nhiên, nhận dạng hìnhảnh, nhận dạng giọng nói và tạo hình ảnh
Linear regression: Thuật toán này được sử dụng để dự đoán các giá trị số,dựa trên mối quan hệ tuyến tính giữa các giá trị khác nhau
Logistic regression: Thuật toán giúp đưa ra dự đoán cho các biến phản hồiphân loại, chẳng hạn như câu trả lời “có/không” cho các câu hỏi Nó có thểđược sử dụng cho các ứng dụng như phân loại thư rác và kiểm soát chấtlượng trên dây chuyền sản xuất
Clustering: Các thuật toán phân cụm có thể xác định các mẫu trong dữ liệu
để nó có thể được nhóm lại Máy tính có thể giúp các nhà khoa học dữ liệubằng cách xác định sự khác biệt giữa các mục dữ liệu mà con người đã bỏqua
Decision trees: Là thuật toán được sử dụng để dự đoán giá trị số (hồi quy)
và phân loại dữ liệu Decision trees sử dụng một chuỗi phân nhánh của cácquyết định được liên kết có thể được biểu diễn bằng sơ đồ cây Một trong
Trang 11những ưu điểm của decision trees là chúng dễ xác thực và kiểm tra, khônggiống thuật toán Neural networks.
Random forests: Trong một khu rừng ngẫu nhiên, thuật toán máy học dựđoán một giá trị hoặc danh mục bằng cách kết hợp các kết quả từ một sốcây quyết định
1.5 Ứng dụng thực tế của Machine Learnings
Một số ứng dụng thực tế của Machine Learning như:
Speech recognition: Dùng để nhận dạng giọng nói tự động (ASR), nhậndạng giọng nói máy tính hoặc chuyển giọng nói thành văn bản Đây là mộtkhả năng sử dụng xử lý ngôn ngữ tự nhiên (NLP) để dịch giọng nói của conngười sang định dạng viết
Customer service: Chatbots trực tuyến đang thay thế các tác nhân con ngườitrong hành trình của khách hàng, thay đổi cách chúng ta nghĩ về sự tươngtác của khách hàng trên website và nền tảng xã hội
Computer vision: Công nghệ AI này cho phép máy tính lấy thông tin có ýnghĩa từ video, hình ảnh kỹ thuật số và các đầu vào trực quan khác, sau đóthực thi hành động thích hợp
Recommendation engines: Sử dụng dữ liệu hành vi tiêu dùng trong quákhứ, các thuật toán AI learning có thể giúp khám phá các xu hướng dữ liệu
có thể được sử dụng để phát triển các chiến lược cross-sell hiệu quả hơn
Automated stock trading: Được thiết kế để tối ưu hóa danh mục đầu tưchứng khoán, các nền tảng giao dịch tần suất cao do AI điều khiển để hàngtriệu giao dịch mỗi ngày mà không cần đến sự can thiệp của con người
Fraud detection: Các ngân hàng và các tổ chức tài chính có thể sử dụng máyhọc để phát hiện các giao dịch đáng ngờ
Trang 12CHƯƠNG 2: BÀI TOÁN VÀ PHƯƠNG PHÁP SỬ DỤNG
Các thuật toán có thể sử dụng cho bài toán phân loại rượu
Có nhiều thuật toán khác nhau để giải quyết bài toán phân loại rượu, tuynhiên một số thuật toán phổ biến bao gồm:
1 Decision Tree: thuật toán xây dựng một cây quyết định dựa trên các thuộc tínhcủa dữ liệu đầu vào, từ đó phân loại các mẫu dữ liệu
2 Random Forest: thuật toán kết hợp nhiều cây quyết định để tạo ra một mô hìnhphân loại chính xác hơn
3 K-Nearest Neighbors (KNN): thuật toán dựa trên việc tìm kiếm các điểm dữliệu gần nhất với điểm dữ liệu đang xét để phân loại
4 Naive Bayes: thuật toán dựa trên định lý Bayes để tính xác suất của từng lớp vàphân loại mẫu dữ liệu mới dựa trên xác suất cao nhất
5 Support Vector Machine (SVM): thuật toán tìm ra một siêu phẳng tốt nhất đểphân chia các lớp dữ liệu
Và trong bài toán phân loại rượu này nhóm chúng em sử dụng thuật toán nearest neighbor hay KNN để phân loại tính toán từng loại rượu và tính độ chínhxác của bài toán
K-2.1 Thuật toán Decision Tree
Thuật toán Decision Tree là một thuật toán học có giám sát được sử dụng
để phân loại hoặc dự đoán giá trị của một biến mục tiêu dựa trên các thuộc tínhđầu vào Đầu tiên, thuật toán sẽ xây dựng một cây quyết định bằng cách chia tập
dữ liệu thành các tập con dựa trên các thuộc tính của chúng Mỗi nút trên cây đạidiện cho một thuộc tính và mỗi cạnh đại diện cho một giá trị của thuộc tính đó
2.1.1 Xây dựng cây quyết định
1 Chọn thuộc tính tốt nhất để chia tập dữ liệu ban đầu thành các tập con Một
số phương pháp để chọn thuộc tính tốt nhất bao gồm Information Gain,Gain Ratio và Gini Index
Trang 132 Chia tập dữ liệu ban đầu thành các tập con dựa trên giá trị của thuộc tínhđược chọn.
3 Lặp lại quá trình trên với các tập con mới cho đến khi các tập con chỉ cònchứa các mẫu dữ liệu thuộc cùng một lớp hoặc không còn thuộc tính nào đểchia
2.1.2 Phân loại mẫu dữ liệu mới
Khi cây quyết định đã được xây dựng, ta có thể sử dụng nó để phân loạimẫu dữ liệu mới bằng cách đi từ gốc của cây đến lá tương ứng với mẫu dữ liệu đó.Mỗi nút trên cây đại diện cho một thuộc tính và giá trị của nó, ta sẽ di chuyểnxuống theo cạnh tương ứng với giá trị của thuộc tính của mẫu dữ liệu mới Khiđến lá, ta sẽ phân loại mẫu dữ liệu mới vào lớp tương ứng với lá đó
2.1.3 Ưu điểm và nhược điểm
- Dễ bị quá khớp khi cây quyết định quá phức tạp
- Không thể xử lý được các thuộc tính liên tục
- Không phù hợp cho các bài toán có số lượng lớn các lớp dữ liệu khác nhau
2.2 Thuật toán Random Forest
Thuật toán Random Forest là một thuật toán học có giám sát được sử dụng
để phân loại hoặc dự đoán giá trị của một biến mục tiêu dựa trên các thuộc tínhđầu vào Nó là một phương pháp kết hợp nhiều cây quyết định để tạo ra một môhình phân loại chính xác hơn
2.2.1 Xây dựng Random Forest
1 Chọn ngẫu nhiên một tập con các mẫu dữ liệu từ tập dữ liệu ban đầu
Trang 142 Xây dựng một cây quyết định trên tập con dữ liệu được chọn Khi xây dựngcây, ta chỉ chọn ngẫu nhiên một số thuộc tính để xem xét khi tìm kiếm thuộc tính tốt nhất để chia tập dữ liệu.
3 Lặp lại quá trình trên để xây dựng nhiều cây quyết định khác nhau
4 Khi có một mẫu dữ liệu mới cần phân loại, ta cho mỗi cây quyết định trả vềkết quả phân loại của nó Kết quả cuối cùng được tính toán bằng cách chọnlớp có số phiếu bầu (votes) cao nhất
2.2.2 Ưu điểm và nhược điểm của Random Forest
2 Tính phức tạp: Random Forest có nhiều siêu tham số cần được điều chỉnh
để đạt hiệu suất tốt nhất, điều này có thể khiến cho việc sử dụng thuật toánnày trở nên phức tạp hơn so với các thuật toán khác
2.3 Thuật toán K-Nearest Neighbors (KNN)
Thuật toán K-Nearest Neighbors (KNN) là một thuật toán học có giám sátđược sử dụng để phân loại hoặc dự đoán giá trị của một biến mục tiêu dựa trên cácthuộc tính đầu vào Nó dựa trên việc tìm ra các điểm dữ liệu gần nhất với mẫu dữliệu cần phân loại và dựa trên chúng để đưa ra dự đoán
Trang 15 Chọn K điểm dữ liệu gần nhất với mẫu dữ liệu mới.
Đối với bài toán phân loại, ta đếm số lượng điểm dữ liệu trong K điểm gầnnhất của mẫu dữ liệu mới thuộc vào từng lớp và chọn lớp có số lượng điểm
dữ liệu nhiều nhất là kết quả phân loại
Đối với bài toán dự đoán, ta tính trung bình giá trị của K điểm gần nhất đểđưa ra dự đoán
2.3.2 Ưu điểm và nhược điểm của KNN
2.4 Thuật toán Naive Bayes
Thuật toán Naive Bayes là một thuật toán học có giám sát được sử dụng đểphân loại hoặc dự đoán giá trị của một biến mục tiêu dựa trên các thuộc tính đầuvào Nó dựa trên định lý Bayes để tính xác suất của từng lớp và phân loại mẫu dữliệu mới dựa trên xác suất cao nhất
Trang 162.4.1 Xây dựng Naive Bayes
1 Tính xác suất của từng lớp dựa trên tập huấn luyện Để tính xác suất của một lớp, ta đếm số lần mỗi lớp xuất hiện trong tập huấn luyện và chia cho tổng số mẫu dữ liệu trong tập huấn luyện
2 Tính xác suất của từng thuộc tính dựa trên tập huấn luyện Để tính xác suấtcủa một thuộc tính, ta đếm số lần thuộc tính đó xuất hiện trong các mẫu dữliệu của từng lớp và chia cho tổng số mẫu dữ liệu trong từng lớp
3 Tính xác suất của một mẫu dữ liệu mới thuộc về từng lớp bằng cách ápdụng định lý Bayes Để tính xác suất này, ta nhân các xác suất của từngthuộc tính trong mẫu dữ liệu với nhau và nhân kết quả với xác suất của lớp.Lớp có xác suất cao nhất sẽ được chọn là kết quả phân loại
2.4.2 Ưu điểm của Naive Bayes
1 Tính đơn giản: Naive Bayes là một thuật toán đơn giản và nhanh chóng đểtriển khai
2 Hiệu suất tốt: Naive Bayes thường cho kết quả phân loại tốt trên các tập dữliệu lớn và có nhiều thuộc tính
3 Khả năng xử lý dữ liệu thiếu: Naive Bayes có thể xử lý các mẫu dữ liệu bịthiếu giá trị cho một số thuộc tính bằng cách bỏ qua thuộc tính đó trong quátrình tính toán xác suất
2.4.3 Nhược điểm của Naive Bayes
1 Giả định về tính độc lập giữa các thuộc tính: Naive Bayes giả định rằng cácthuộc tính là độc lập với nhau, điều này có thể không đúng trong thực tế
2 Không hiệu quả khi số lượng mẫu dữ liệu nhỏ: Naive Bayes có thể khônghiệu quả khi số lượng mẫu dữ liệu nhỏ hoặc khi các thuộc tính có phân phốikhông đồng đều giữa các lớp