Thuật toán Navie Bayes a Giới thiệu thuật toán: +Naive Bayes là một giải thuật thuộc lớp giải thuật thống kê, nó có thể dự đoán xác suất của một phần tử dữ liệu thuộc vào một lớp là bao
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
CHUYÊN ĐỀ HỆ THỐNG THÔNG TIN
Chủ đề: Học máy với WeKa
Họ và tên: Trần Đức Minh
Mã Sinh Viên: B18DCCN412
Mã nhóm: 02 Giảng viên : Dương Trần Đức
download by : skknchat@gmail.com
Trang 2I.NGHIÊN CỨU THUẬT TOÁN
1 Thuật toán Navie Bayes
a) Giới thiệu thuật toán:
+Naive Bayes là một giải thuật thuộc lớp giải thuật thống kê, nó có thể dự đoán xác suất của một phần tử dữ liệu thuộc vào một lớp là bao nhiêu , được dựa trên định lý Bayes
+Naive Bayes là một thuật toán phân loại cho các vấn đề phân loại nhị phân (hai lớp) và
đa lớp
b) Định lí Bayes
+Định lý Bayes tìm xác suất của một sự kiện xảy ra với xác suất của một sự kiện khác đã xảy ra
Với:
1 P(A|B) là xác suất của A khi biết B
2 P(A) là xác suất xảy ra của A
3 P(B|A) là xác suất của B khi biết A
4 P(B) là xác suất xảy ra của B
c) Nguyên lí hoạt động
+ Thuật toán Naive Bayes tính xác suất cho các yếu tố, sau đó chọn kết quả với xác suất
+ Xét bài toán : có C class từ 1 , 2,…,C và vector x ∈ D ( D là tập dữ liệu huấn luyện gồmcaonhất.
nhiều vector x )
từ biểu thức tính xác xuất trên ta có thể xác định được class bằng cách chọn
ra class có xác xuất cao nhất
c=argmax c∈{1,…,C} p(c|x) =argmax c p ( x ∨c ) p( c)
( bayes)
p ( x)
rút gọn c = argmaxc p(x|c)p(c) (vì c k phụ thuộc vào p(x)) p(c) là xác suất để một điểm rơi vào class c , giá trị này được tính bằng tỉ lệ số điểm dữ liệu trong tập training rơi vào class này chia cho tổng số lượng dữ liệu trong tập training
p(x|c) phân phối của các điểm dữ liệu trong class c giả sử một cách đơn giản nhất rằng các thành phần của biến ngẫu nhiên x là độc lập với nhau
`
Ưu điểm
download by : skknchat@gmail.com
Trang 3- Dễ sử dụng và nhanh khi cần dự đoán nhãn của dữ liệu test
- Có thể hoạt động với các vectơ đặc trưng mà một phần là liên tục ,phần còn lại ở dạng rời rạc
- Huấn luyện mô hình nhanh và dễ dàng
Nhược điểm
- Độ chính xác không cao
- Trong thế giới thực, hầu như bất khả thi khi các đặc trưng của
dữ liệu là độc lập với nhau
2.KNN
a Giới thiệu thuật toán
- K-nearest neighbor là một trong những thuật toán supervised-learning đơn giản nhất trong Machine Learning
- KNN hoạt động với nguyên lý tương tự Giá trị của một điểm dữ liệu được xác định bởi các điểm dữ liệu xung quanh nó
- Thường được dùng trong các bài toán phân loại và hồi quy
- Lớp (nhãn) của một đối tượng dữ liệu mới có thể dự đoán từ các lớp (nhãn) của k hàng xóm gần nó nhất
b Ý tưởng KNN
- Thuật toán KNN cho rằng những dữ liệu tương tự nhau sẽ tồn tại gần
nhau trong một không gian, nên chúng ta là sẽ tìm k điểm gần với dữ liệu
cần kiểm tra nhất.
- Để xác định các điểm dữ liệu là gần nhau ta cần đo khoảng cách giữa chúng có 3 phương pháp do khoảng cách
+ Euclidean
+ Manhattan
+ Minkowski
download by : skknchat@gmail.com
Trang 4c Các bước thực hiện
1 Ta có D là tập các điểm dữ liệu đã được gắn nhãn và A là dữ liệu chưa được phân loại
2 Đo khoảng cách (Euclidian, Manhattan, Minkowski, Minkowski hoặc Trọng số) từ dữ liệu mới A đến tất cả các dữ liệu khác đã được phân loại trong D
3 Chọn K (K là tham số mà bạn định nghĩa) khoảng cách nhỏ nhất
4 Kiểm tra danh sách các lớp có khoảng cách ngắn nhất và đếm số lượng của mỗi lớp xuất hiện
5 Lấy đúng lớp (lớp xuất hiện nhiều lần nhất)
6 Lớp của dữ liệu mới là lớp mà bạn đã nhận được ở bước 5
d Ưu điểm và nhược điểm
Ưu điểm
- Thuật toán đơn giản, dễ dàng triển khai
- Độ phức tạp tính toán nhỏ
- Xử lý tốt với tập dữ liệu nhiễu Nhược điểm
- Với K nhỏ dễ gặp nhiễu dẫn tới kết quả đưa ra không chính xác
- Cần nhiều thời gian để thực hiện do phải tính toán khoảng cách với tất cả các đối tượng trong tập dữ liệu
- Cần chuyển đổi kiểu dữ liệu thành các yếu tố định tính
II Bài toán và tập dữ liệu cụ thể
1 Lựa chọn bài toán
- Bài toán : dự đoán khả năng chiến thắng của người chơi sử dụng x trong trò chơi tic-tac-toe
Hai người chơi, người dùng ký hiệu O, người kia dùng ký hiệu X, lần lượt điền
ký hiệu của mình vào các ô Người thắng là người thể tạo được đầu tiên một dãy ba ký hiệu của mình, ngang dọc hay chéo đều được
Trang 5download by : skknchat@gmail.com
Trang 6- Dataset: https://github.com/tertiarycourses/Weka/blob/master/Weka%20datasets/tic-tac-toe.arff
2 Mô tả tập dữ liệu
Tập dữ liệu gồm 958 trường hợp kết thúc trò chơi với chiến thắng
Tập dữ liệu có 9 thuộc tính tương ứng với 9 ô vuông
top-left-square : ô trên cùng bên trái , {b,o,x}
top-middle-square:ô trên cùng ở giữa , {b,o,x}
top-right-square : ô trên cùng bên phải , {b,o,x}
middle-left-square : ô ở giữa bên trái , {b,o,x}
middle-middle-square : ô chính giữa , {b,o,x}
middle-right-square : ô ở giữa bên phải , {b,o,x}
bottom-left-square : ô ở dưới bên trái , {b,o,x}
bottom-middle-square : ô dưới cùng ở giữa , {b,o,x}
bottom-right-square : ô dưới cùng bên phải , {b,o,x}
Class : Lớp định , {negative,positive}
Thông tin thuộc tính
o b : ô này trống
o x : người chơi x đã sử dụng ô này
o o : người chơi o đã sử dụng ô này
3 Chuẩn hóa dữ liệu : dữ liệu được down dưới dạng chuẩn weka
download by : skknchat@gmail.com
Trang 8III Sử dụng weka để tiến hành thực nghiệm
1 Thuật toán Naive Bayes
Tiến hành thực nghiệm 5 lần với tỷ lệ tham số tập huấn luyện như sau :
L1 : Sử dụng phân lớp Naive Bayes trên tập dữ liệu với tỷ lệ huấn luyện 55%
L2 : Sử dụng phân lớp Naive Bayes trên tập dữ liệu với tỷ lệ huấn luyện 66%
L3 : Sử dụng phân lớp Naive Bayes trên tập dữ liệu với tỷ lệ huấn luyện 70%
L4 : Sử dụng phân lớp Naive Bayes trên tập dữ liệu tỷ lệ huấn luyện 85%
L5 : Sử dụng phân lớp Naive Bayes trên tập dữ liệu tỷ lệ huấn luyện 90%
Từ các lần chạy thực nghiệm đã thực hiện, ta thấy lần chạy L2 đạt hiệu quả cao nhất với
tỷ lệ phân lớp đúng 71,3433 % Như vậy chạy thực nghiệm dữ liệu với tỷ lệ huấn luyện 65% của Naive Bayes là lựa chọn phù hợp nhất
download by : skknchat@gmail.com
Trang 92 Thuật toán KNN
+ Tiến hành thực nghiệm với số K láng riêng là 10 và cách tính khoảng cách là Euclidean
download by : skknchat@gmail.com
Trang 10+ Tiến hành thực nghiệm 5 lần với tỉ lệ huấn luyện như sau L1 : tập dữ liệu với tỷ lệ huấn luyện 50%
L2 : tập dữ liệu với tỷ lệ huấn luyện 60%
L3 : tập dữ liệu với tỷ lệ huấn luyện 70%
L4 : tập dữ liệu với tỷ lệ huấn luyện 80%
L5 : tập dữ liệu với tỷ lệ huấn luyện 90%
download by : skknchat@gmail.com
Trang 112 3 4 5
Từ các lần chạy thực nghiệm đã thực hiện, ta thấy lần chạy L5 đạt hiệu quả cao nhất với
tỷ lệ phân lớp đúng 98.9583 % Như vậy chạy thực nghiệm dữ liệu với tỷ lệ huấn luyện 90% của KNN là lựa chọn phù hợp nhất
Tổng kết
Thuật toán KNN có tốc độ chậm nhưng lại cho kết quả chính xác rất cao với tập dữ liêu huấn luyện chỉ 70% đã đạt được đọ chính xác trên 90%
Thuật toán Naive Bayes có tốc độ rất cao nhưng lại cho kết quả chính xác thấp chỉ khoang 70%
download by : skknchat@gmail.com