You are on page 1of 11

BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC CÔNG THƯƠNG TP.HỒ CHÍ MINH


KHOA CÔNG NGHỆ THÔNG TIN
-----o0o----

TÊN ĐỀ TÀI:

GVHD: Trần Đình Toàn

Thành viên: Nguyễn Hữu Thông-2001210224

Nguyễn Hữu Thông

Nguyễn Hữu Thông

Thành phố Hồ Chí Minh, tháng 03 năm 2023


Mục lục

2
1. Phân lớp dữ liệu Navie Bayes

1.1. Khái niệm

Một phân loại Naive Bayes dựa trên ý tưởng nó là một lớp được dự đoán bằng
các giá trị của đặc trưng cho các thành viên của lớp đó. Các đối tượng là một nhóm
(group) trong các lớp nếu chúng có cùng các đặc trưng chung. Có thể có nhiều lớp rời
rạc hoặc lớp nhị phân.

Các luật Bayes dựa trên xác suất để dự đoán chúng về các lớp có sẵn dựa trên
các đặc trưng được trích rút. Trong phân loại Bayes, việc học được coi như xây dựng
một mô hình xác suất của các đặc trưng và sử dụng mô hình này để dự đoán phân loại
cho một ví dụ mới.

Biến chưa biết hay còn gọi là biến ẩn là một biến xác suất chưa được quan sát
trước đó. Phân loại Bayes sử dụng mô hình xác suất trong đó phân loại là một biến ẩn
có liên quan tới các biến đã được quan sát. Quá trình phân loại lúc này trở thành suy
diễn trên mô hình xác suất.

Trường hợp đơn giản nhất của phân loại Naive Bayes là tạo ra các giả thiết độc
lập về các đặc trưng đầu vào và độc lập có điều kiện với mỗi một lớp đã cho. Sự độc
lập của phân loại Naive Bayes chính là thể hiện của mô hình mạng tin cậy (belief
network) trong trường hợp đặc biệt, và phân loại là chỉ dựa trên một nút cha duy nhất
của mỗi một đặc trưng đầu vào. Mạng tin cậy này đề cập tới xác suất phân tán P(Y)
đối với mỗi một đặc trưng đích Y và P(Xi |Y) đối với mỗi một đặc trưng đầu vào Xi .
Với mỗi một đối tượng, dự đoán bằng cách tính toán dựa trên các xác suất điều kiện
của các đặc trưng quan sát được cho mỗi đặc trưng đầu vào.

Định lý Bayes: Giả sử A và B là hai sự kiện đã xảy ra. Xác suất có điều kiện A
khi biết trước điều kiện B được cho bởi:

P(A|B) = P(B|A).P(A)/P(B)

- P(A): Xác suất của sự kiện A xảy ra.

- P(B): Xác suất của sự kiện B xảy ra.

3
- P(B|A): Xác suất (có điều kiện) của sự kiện B xảy ra, nếu biết rằng sự kiện A
đã xảy ra.

- P(A|B): Xác suất (có điều kiện) của sự kiện A xảy ra, nếu biết rằng sự kiện B
đã xảy ra.

1.2. Khắc phục vấn đề xác suất điều kiện bằng zero

Nếu trong dữ liệu huấn luyện không có đối tượng X nào có thuộc tính lớp Ck có
thuộc tính Fi nhận một giá trị cụ thể vij, xác suất điều kiện P(Fi = xij | Ck) sẽ bằng 0.

Khi phân lớp, nếu có một đối tượng nào mang thuộc tính này thì xác suất phân vào
lớp Ck luôn bằng 0.

Khắc phục bằng cách ước lượng theo công thức sau:

1.3. Ưu điểm

 Giả định độc lập: hoạt động tốt cho nhiều bài toán/miền sữ liệu và ứng
dụng.
 Đơn giản nhưng đủ tốt để giải quyết nhiều bài toán như phân lớp văn
bản, lọc spam,..
 Cho phép kết hợp tri thức tiền nghiệm (prior knowledge) và dữ liệu quan
sát được (obserwed data).
 Tốt khi có sự chệnh lệch số lượng giữa các lớp phân loại.
 Huấn luyện mô hình (ước lượng tham số) dễ và nhanh.

1.4. Nhược điểm

4
 Giả định độc lập (ưu điểm cũng chính là nhược điểm)
 hầu hết các trường hợp thực tế trong đó có các thuộc tính trong các đối
tượng thường phụ thuộc lẫn nhau.
 Vấn đề zero (đã nêu cách giải quyết ở phía trên)
 Mô hình không được huẩn luyện bằng phượng pháp tối ưu mạnh và chặt
chẽ.
 Tham số mủa mô hình là các ước lượng xác suất điều kiện đơn lẻ.
 Không tính đến sự tương tác giữa các ước lượng này.

1.5. Ví dụ

VD1: Phân các bệnh nhân thành 2 lớp ung thư và không ung thư. Giả sử xác suất
để một người bị ung thư là 0.008 tức là P(cancer) = 0.008; và P(nocancer) = 0.992.
Xác suất để bệnh nhân ung thư có kết quả xét nghiệm dương tính là 0.98 và xác suất
để bệnh nhân không ung thư có kết quả dương tính là 0.03 tức là P(+/cancer) = 0.98,
P(+/nocancer) = 0.03. Bây giờ giả sử một bệnh nhân có kết quả xét nghiệm dương
tính.

Ta có:
P(+/cancer)P(cancer) = 0.98 * 0.008 = 0.0078
P(+/nocancer)P(nocancer) = 0.03 * 0.992 = 0.0298
Như vậy, P(+/nocancer)P(nocancer) >> P(+/cancer)P(cancer).
Do đó ta xét đoán rằng, bệnh nhân là không ung thư.

VD2: Xét một bộ dữ liệu đơn giản về việc đi làm muộn của một bạn nhân viên. Bộ
dữ liệu được biểu diễn dạng bảng dưới đây:

Dự đoán cho một ngày X=(Muộn, Xấu, Mưa)

5
Bằng việc lập bảng tần suất (frequency table) cho từng đặc trưng theo mục tiêu, có
thể tính được likelihood P(X|y).

Xác định xác xuất đi học muộn hoặc không muộn

P(Muộn) = 5/10 = 1/2

P(Không muộn) = 5/10 = 1/2

+ Giờ dậy (x1)

P(x1 = sớm | muộn) = 1/5

P(x1 = sớm | không muộn) = 3/5

P(x1 = bình thường | muộn) = 1/5

P(x1 = bình thường | không muộn) = 2/5

6
P(x1 = muộn | muộn) = 3/5

P(x1 = muộn | không muộn) = (0 + 3)/ (5+3) = 3/8

+ Sức khỏe (x2)

P(x2 = tốt | muộn) = 3/5

P(x2 = tốt | không muộn) = 2/5

P(x2 = xấu | muộn) = 2/5

P(x2 = xấu | không muộn) = 3/5

+ Thởi tiết (x3)

P(x3 = nắng | muộn) = 3/5

P(x3 = nắng | không muộn) = 2/5

P(x3 = nhiều mây | muộn) = 1/5

P(x3 = nắng | không muộn) = 2/5

P(x3 = mưa | muộn) = 1/5

P(x3 = mưa | không muộn) = 1/5

Kết luận:

P(Muộn) * P(X | muộn) = P(Muộn) * P(x1 = muộn | muộn) * P(x1 = xấu | muộn)
* P(x3 = mưa | muộn) =1/2 * 3/5 * 2/5 * 1/5 = 6/250 = 0.024

P(Không muộn) * P(X | không muộn) = P(Không muộn) * P(x1 = muộn | không
muộn) * P(x1 = xấu | không muộn) * P(x3 = mưa | không muộn) = 1/2 * 3/8 * 3/5 *
1/5 = 0.0225

Từ kết quả này ta thấy P(X |Muộn)P(Muộn) có giá trị lớn nhất, do đó thuật toán
Bayes sẽ kết luận là sẽ đi làm muộn

1.6. Kết luận

Mô hình Naive Bayes là mô hình phân lớp đơn giản dễ cài đặt, có tốc độ xử lý
nhanh. Tuy nhiên có nhược điểm lớn là yêu cầu các đặc trưng đầu vào phải độc lập,

7
mà điều này khó xảy ra trong thực tế làm giảm chất lượng của mô hình. Thuật toán
này thường được sử dụng trong phân tích sắc thái, lọc thư rác, recommendation
systems,…

2. Thuật toán SVM

2.1. Khái niệm

SVM (Support Vector Machine) là một thuật toán học máy có giám sát được sử
dụng rất phổ biến ngày nay trong các bài toán phân lớp (classification) hay hồi qui
(Regression).

SVM được đề xuất bởi Vladimir N. Vapnik và các đồng nhiệp của ông vào năm
1963 tại Nga và sau đó trở nên phổ biến trong những năm 90 nhờ ứng dụng giải quyết
các bài toán phi tuyến tính (nonlinear) bằng phương pháp Kernel Trick.

Bản chất của SVM là tìm một đường phân chia (hyperplane) trong không gian
đặc trưng (feature space) để phân tách các điểm dữ liệu thuộc các lớp khác nhau sao
cho khoảng cách từ các điểm dữ liệu gần nhất tới đường phân chia là lớn nhất (được
gọi là margin).

Thuật toán SVM có thể giải quyết bài toán phân loại tuyến tính và phi tuyến
tính bằng cách sử dụng một hàm kernel để ánh xạ dữ liệu vào không gian cao chiều
(high-dimensional space) và tìm đường phân chia tuyến tính trong không gian mới
này.

Cách thức hoạt động của thuật toán SVM có các bước sau:Chuẩn bị dữ liệu và
phân chia dữ liệu thành tập huấn luyện và tập kiểm tra.

Xây dựng một hàm mục tiêu (objective function) để tối đa hóa margin và đồng
thời giảm thiểu sai số phân loại (classification error).

Sử dụng các phương pháp tối ưu hóa (optimization methods) để tìm giá trị tối
ưu của hàm mục tiêu.

Tìm đường phân chia tối ưu trong không gian đặc trưng hoặc không gian cao
chiều (nếu sử dụng kernel).

8
Thuật toán SVM được coi là một trong những thuật toán học máy mạnh nhất và
có khả năng xử lý các dữ liệu lớn, phức tạp và có nhiễu. Tuy nhiên, để sử dụng thuật
toán này hiệu quả, cần phải chọn các tham số phù hợp và xử lý dữ liệu đầu vào một
cách cẩn thận.

2.2. Các hàm kernel trong SVM

Các hàm kernel được sử dụng trong thuật toán SVM đóng vai trò quan trọng
trong việc ánh xạ các điểm dữ liệu từ không gian đặc trưng ban đầu vào không gian
cao chiều để tìm được đường phân chia tối ưu.

Dưới đây là một số hàm kernel phổ biến trong thuật toán SVM:

 Linear kernel: Hàm kernel tuyến tính được sử dụng để phân loại dữ liệu
tuyến tính.
 Polynomial kernel: Hàm kernel đa thức được sử dụng để phân loại dữ
liệu phi tuyến tính. Hàm kernel này ánh xạ các điểm dữ liệu vào các
không gian có số chiều lớn hơn để tìm đường phân chia.
 Radial basis function (RBF) kernel: Hàm kernel RBF là một trong những
hàm kernel phổ biến nhất trong thuật toán SVM. Hàm kernel này ánh xạ
các điểm dữ liệu vào không gian có số chiều vô hạn để tìm đường phân
chia phi tuyến tính.
 Sigmoid kernel: Hàm kernel sigmoid được sử dụng để phân loại dữ liệu
phi tuyến tính. Hàm kernel này tương tự như hàm sigmoid trong mạng
neuron nhân tạo.
 Các hàm kernel khác như Laplacian kernel, chi-squared kernel,
histogram intersection kernel cũng được sử dụng trong thuật toán SVM.
Tuy nhiên, việc lựa chọn hàm kernel phù hợp với bài toán cụ thể là rất
quan trọng để đạt được hiệu suất cao nhất của thuật toán.

2.3. Ưu điểm của thuật toán SVM

Thuật toán SVM (Support Vector Machine) có nhiều ưu điểm quan trọng, dưới
đây là chi tiết về một số ưu điểm chính của nó:

9
Hiệu suất tốt trong việc phân loại: SVM là một thuật toán phân loại mạnh mẽ và
hiệu quả. Nó có khả năng xây dựng các ranh giới phân chia tối ưu giữa các lớp dữ liệu,
đặc biệt là trong các tình huống dữ liệu phức tạp và không tuyến tính.

Hỗ trợ phân loại phi tuyến: Nhờ kỹ thuật kernel trick, SVM có thể biến đổi
không gian đặc trưng ban đầu thành một không gian có số chiều cao hơn, từ đó tạo ra
các ranh giới phân loại phi tuyến. Điều này cho phép SVM xử lý các bài toán phân loại
phức tạp hơn mà không cần sửa đổi đặc trưng ban đầu.

Chống overfitting: SVM có khả năng kiểm soát overfitting (quá khớp) bằng
cách sử dụng một siêu tham số ràng buộc (C) để điều chỉnh độ phức tạp của mô hình.
Bằng cách chọn giá trị thích hợp cho siêu tham số này, SVM có thể đạt được một sự
cân bằng giữa việc phân loại chính xác các điểm dữ liệu huấn luyện và khả năng tổng
quát hóa cho dữ liệu mới.

Hỗ trợ vector hỗ trợ: SVM chỉ quan tâm đến một số điểm dữ liệu quan trọng
nhất, gọi là vector hỗ trợ, để xác định đường ranh giới phân loại. Điều này giúp giảm
đáng kể độ phức tạp tính toán và lưu trữ của mô hình SVM, đặc biệt là đối với các tập
dữ liệu lớn.

Khả năng xử lý dữ liệu nhiễu: SVM có khả năng tốt trong việc xử lý và loại bỏ
dữ liệu nhiễu. Nhờ các vector hỗ trợ, SVM có khả năng chịu đựng tốt với các điểm dữ
liệu nhiễu và không bị ảnh hưởng quá mức bởi chúng.

Hỗ trợ tối đa-margin: SVM tìm cách tìm một đường ranh giới phân loại sao cho
khoảng cách từ các điểm dữ liệu gần nhất đến đường ranh giới là lớn nhất. Điều này
giúp cung cấp một đường phân chia tốt giữa các lớp và tăng cường tính tổng quát hóa
của mô hình.

2.4. Khuyết điểm của thuật toán SVM

Thuật toán SVM (Support Vector Machine) cũng có một số khuyết điểm, dưới
đây là chi tiết về một số khuyết điểm chính của nó:

Độ phức tạp tính toán: SVM có độ phức tạp tính toán khá cao, đặc biệt là khi số
lượng điểm dữ liệu và số chiều của không gian đặc trưng lớn. Việc tìm ra đường ranh

10
giới tối ưu và các vector hỗ trợ tương ứng có thể yêu cầu nhiều thời gian và tài nguyên
tính toán.

Đòi hỏi lựa chọn kernel và siêu tham số: SVM sử dụng các hàm kernel để biến
đổi không gian đặc trưng. Tuy nhiên, việc lựa chọn kernel phù hợp và tinh chỉnh siêu
tham số liên quan có thể là một quá trình phức tạp và tốn thời gian. Việc chọn sai
kernel hoặc siêu tham số có thể dẫn đến hiệu suất kém và mô hình không tổng quát
hóa tốt.

Nhạy cảm với nhiễu và dữ liệu không chính xác: SVM có xu hướng nhạy cảm
với nhiễu và dữ liệu không chính xác. Một điểm dữ liệu nhiễu có thể ảnh hưởng lớn
đến đường ranh giới phân loại và dẫn đến một mô hình SVM không chính xác. Điều
này yêu cầu việc xử lý và làm sạch dữ liệu trước khi áp dụng SVM.

Độ phức tạp lưu trữ: SVM yêu cầu lưu trữ các vector hỗ trợ để xác định đường
ranh giới phân loại. Đối với các tập dữ liệu lớn, việc lưu trữ các vector hỗ trợ có thể
tốn kém và tài nguyên.

Khó khăn trong việc xử lý dữ liệu không cân bằng: SVM có khả năng xử lý dữ
liệu không cân bằng, tuy nhiên, khi tỷ lệ các lớp dữ liệu không đồng đều, SVM có xu
hướng ưu tiên phân loại lớp thiểu số. Điều này có thể dẫn đến mất cân bằng và hiệu
suất kém đối với lớp đa số.

Không thể xử lý trực tiếp các tập dữ liệu lớn: SVM không thích hợp cho việc
xử lý trực tiếp các tập dữ liệu lớn. Với số lượng điểm dữ liệu rất lớn, việc huấn luyện
SVM có thể trở nên không thực tế vì yêu cầu tính toán và lưu trữ quá lớn.

11

You might also like