T2T3 KNN KM NB

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 68

HỌC MÁY

MACHINE LEARNING
CÁC THUẬT TOÁN KHÔNG TỐI ƯU
NỘI DUNG
1. Bài toán phân lớp
2. Thuật toán K-lân cận gần nhất
3. Thuật toán phân cụm K-trung bình
4. Bộ phân loại Naïve Bayes
1. BÀI TOÁN PHÂN LỚP
1.1. Mô tả bài toán
1.2. Ma trận nhầm lẫn
1.3. Đánh giá hiệu năng
1. BÀI TOÁN PHÂN LỚP
1.1. Mô tả bài toán
– Phân lớp (classification) thuộc nhóm bài toán học có
giám sát (supervised learning)
– Mục tiêu của bài toán phân lớp là dự đoán một giá trị rời
rạc (kiểu định danh) f: X → Y
• trong đó, Y là tập hữu hạn các giá trị rời rạc (discrete values)
1. BÀI TOÁN PHÂN LỚP
1.1. Mô tả bài toán
Ví dụ cần phân lớp Z

Lớp C1

Lớp C2
1. BÀI TOÁN PHÂN LỚP
1.2. Ma trận nhầm lẫn
– Confusion matrix (Ma trận nhầm lẫn) thể hiện mức độ
chính xác của thuật toán cho tất cả các nhóm
Phân lớp bởi thuật toán
Lớp Ci Thuộc Không thuộc
Phân lớp Thuộc TPi FNi
thực sự Không thuộc FPi TNi

– TPi: Số lượng các ví dụ thuộc lớp ci được phân loại chính xác vào lớp ci
– FPi: Số lượng các ví dụ không thuộc lớp ci bị phân loại sai vào lớp ci
– TNi: Số lượng các ví dụ không thuộc lớp ci được phân loại chính xác
– FNi: Số lượng các ví dụ thuộc lớp ci bị phân loại sai (vào các lớp khác ci )
1. BÀI TOÁN PHÂN LỚP
1.2. Ma trận nhầm lẫn
– Confusion matrix (Ma trận nhầm lẫn) thể hiện mức độ
chính xác của thuật toán cho tất cả các nhóm
1. BÀI TOÁN PHÂN LỚP
1.3. Đánh giá hiệu năng
– Accuracy thể hiện bao nhiêu phần trăm lượng dữ liệu
được phân loại đúng
– Precision thể hiện mức độ phân loại đúng cho từng
nhóm dự đoán
– Recall thể hiện mức độ phân loại đúng cho từng nhóm
thực tế
1. BÀI TOÁN PHÂN LỚP
1.3. Đánh giá hiệu năng
– Accuracy thể hiện bao nhiêu phần trăm lượng dữ liệu
được phân loại đúng
1
AC= 𝑥∈𝐷_𝑡𝑒𝑠𝑡 𝐼𝑑𝑒𝑛𝑡𝑖𝑐𝑎𝑙(𝑜 𝑥 , 𝑐(𝑥))
𝐷_𝑡𝑒𝑠𝑡
1, 𝑛ế𝑢 𝑎 = 𝑏
Identical(a,b)=
0, 𝑛𝑔ượ𝑐 𝑙ạ𝑖

• x: Một ví dụ trong tập thử nghiệm D_test


• o(x): Phân lớp đưa ra bởi hệ thống đối với ví dụ x
• c(x): Phân lớp thực sự (đúng) đối với ví dụ x
1. BÀI TOÁN PHÂN LỚP
1.3. Đánh giá hiệu năng
– Accuracy thể hiện bao nhiêu phần trăm lượng dữ liệu
được phân loại đúng
𝑇𝑟𝑢𝑒𝑃𝑜𝑠𝑖𝑡𝑖𝑣𝑒 +𝑇𝑟𝑢𝑒𝑁𝑒𝑔𝑎𝑡𝑖𝑣𝑒
AC=
𝑇𝑜𝑡𝑎𝑙 𝑆𝑎𝑚𝑝𝑙𝑒

124+54 178
AC= = = 0.77
124+54 +(22+31) 231
1. BÀI TOÁN PHÂN LỚP
1.3. Đánh giá hiệu năng
– Precision thể hiện mức độ phân loại đúng cho từng
nhóm dự đoán
• Tổng số các ví dụ thuộc lớp ci được phân lớp chính xác chia
cho tổng số các ví dụ được phân lớp vào lớp ci
𝑇𝑟𝑢𝑒𝐶𝑖
PR(𝐶𝑖) =
𝑇𝑟𝑢𝑒𝐶𝑖 +𝐹𝑎𝑙𝑠𝑒𝐶𝑖

124
PR 0 = = 0.85
124+22

54
PR 1 = = 0.64
31+54
1. BÀI TOÁN PHÂN LỚP
1.3. Đánh giá hiệu năng
– Recall thể hiện mức độ phân loại đúng cho từng nhóm
thực tế
• Tổng số các ví dụ thuộc lớp ci được phân lớp chính xác chia
cho tổng số các ví dụ thuộc lớp ci
𝑇𝑟𝑢𝑒𝐶𝑖
RE=
𝑇𝑟𝑢𝑒𝐶𝑖 +𝐹𝑎𝑙𝑠𝑒𝐶𝑖

124
RE 0 = = 0.8
124+31
54
RE 1 = = 0.71
54+22
2. THUẬT TOÁN K-LÂN CẬN GẦN NHẤT
2.1. Giới thiệu
2.2. Mô tả thuật toán
2.3. Hàm tính khoảng cách
2.4. Minh họa bằng Python
2.5. Điều kiện áp dụng
2.6. Ưu điểm, nhược điểm
2. THUẬT TOÁN K-LÂN CẬN GẦN NHẤT
2.1. Giới thiệu
• KNN là thuật toán đi tìm đầu ra của một điểm dữ
liệu mới dựa trên thông tin của K điểm dữ liệu gần
nhất trong tập huấn luyện
• K lân cận (K-nearest neighbor, KNN) là một trong
những thuật toán học có giám sát đơn giản nhất.
– KNN gần như không học gì từ dữ liệu huấn luyện mà
ghi nhớ lại một cách máy móc toàn bộ dữ liệu đó.
– Mọi tính toán được thực hiện tại pha kiểm tra. KNN có
thể được áp dụng vào các bài toán phân loại và hồi quy.
2. THUẬT TOÁN K-LÂN CẬN GẦN NHẤT
2.1. Giới thiệu
• Biểu diễn đầu vào của bài toán
– Mỗi ví dụ x được biểu diễn là một vectơ n chiều trong
không gian các vectơ x  Rn
– x = (x1, x2, …, xn), trong đó xi (R) là một số thực
2. THUẬT TOÁN K-LÂN CẬN GẦN NHẤT
2.1. Giới thiệu
• Có thể áp dụng được với cả 2 kiểu bài toán học
– Bài toán phân lớp (classification)
• Hàm mục tiêu có giá trị rời rạc
• Đầu ra của hệ thống là một trong số các giá trị rời rạc đã xác
định trước (một trong các nhãn lớp)

– Bài toán hồi quy (regression)


• Hàm mục tiêu có giá trị liên tục
• Đầu ra của hệ thống là một giá trị số thực
2. THUẬT TOÁN K-LÂN CẬN GẦN NHẤT
2.1. Giới thiệu
• Có thể áp dụng được với cả 2 kiểu bài toán học
– Trong bài toán phân lớp, nhãn của một điểm dữ liệu
mới được suy ra trực tiếp từ K điểm dữ liệu gần nhất
trong tập huấn luyện
– Trong bài toán hồi quy, đầu ra của một điểm dữ liệu sẽ
bằng chính đầu ra của điểm dữ liệu đã biết gần nhất,
hoặc là trung bình có trọng số của đầu ra của những
điểm gần nhất
2. THUẬT TOÁN K-LÂN CẬN GẦN NHẤT
2.1. Giới thiệu Ví dụ cần phân lớp Z
Lớp C1 Lớp C2
– Xét 1 lân cận gần
• Gán Z vào C2

– Xét 2 lân cận gần


• Gán Z vào C1

– Xét 3 lân cận gần


• Gán Z vào C1

– Xét 4 lân cận gần


• Gán Z vào C2
2. THUẬT TOÁN K-LÂN CẬN GẦN NHẤT
2.2. Mô tả thuật toán phân lớp KNN
• Mỗi ví dụ học x được biểu diễn bởi 2 thành phần:
– Mô tả của ví dụ x = (x1, x2, …, xn), trong đó xiR
– Nhãn lớp c (C, với C là tập các nhãn lớp được xác định trước)
• Giai đoạn học
– Đơn giản là lưu lại các ví dụ học trong tập học D = {x}
• Giai đoạn phân lớp: Để phân lớp cho một ví dụ (mới) z
– Với mỗi ví dụ học xD, tính khoảng cách giữa x và z
– Xác định tập NB(z) – các láng giềng gần nhất của z
• Gồm k ví dụ học trong D gần nhất với z tính theo một hàm khoảng cách d
– Phân z vào lớp chiếm số đông (the majority class) trong số các lớp của
các ví dụ học trong NB(z)
2. THUẬT TOÁN K-LÂN CẬN GẦN NHẤT
2.2. Mô tả thuật toán hồi quy KNN
• Mỗi ví dụ học x được biểu diễn bởi 2 thành phần:
– Mô tả của ví dụ x = (x1, x2, …, xn), trong đó xiR
– Giá trị đầu ra mong muốn: yxR (là một số thực)
• Giai đoạn học
– Đơn giản là lưu lại các ví dụ học trong tập học D
• Giai đoạn phân lớp: Để dự đoán giá trị đầu ra cho ví dụ (mới) z
– Với mỗi ví dụ học xD, tính khoảng cách giữa x và z
– Xác định tập NB(z) – các láng giềng gần nhất của z
• Gồm k ví dụ học trong D gần nhất với z tính theo một hàm khoảng cách d
– Dự đoán giá trị đầu ra đối với z 1
𝑦𝑧 = 𝑦𝑥
𝑘
𝑥∈𝑁𝐵(𝑧)
2. THUẬT TOÁN K-LÂN CẬN GẦN NHẤT
2.3. Hàm tính khoảng cách
• Đặc điểm
– Đóng vai trò rất quan trọng trong phương pháp học dựa trên các
láng giềng gần nhất
– Thường được xác định trước, và không thay đổi trong suốt quá
trình học và phân loại/dự đoán
• Lựa chọn hàm khoảng cách d
– Các hàm khoảng cách hình học: Dành cho các bài toán có các
thuộc tính đầu vào là kiểu số thực (xiR)
– Hàm khoảng cách Hamming: Dành cho các bài toán có các thuộc
tính đầu vào là kiểu nhị phân (xi{0,1})
– Hàm tính độ tương tự Cosine: Dành cho các bài toán phân lớp văn
bản (xi là giá trị trọng số TF/IDF của từ khóa thứ i)
2. THUẬT TOÁN K-LÂN CẬN GẦN NHẤT
2.3. Hàm tính khoảng cách
• Hàm khoảng cách hình học
𝑚
1
– Hàm Minkowski (p-norm): 𝑑 𝑥, 𝑧 = ( 𝑥𝑖 − 𝑧𝑖 𝑝 𝑝
)
𝑖=1

– Hàm Manhattan (p=1): 𝑑(𝑥, 𝑧) = 𝑥𝑖 − 𝑧𝑖


𝑖=1

– Hàm Euclid (p=2): 𝑑(𝑥, 𝑧) = 𝑥𝑖 − 𝑧𝑖 2

𝑖=1

– Hàm Chebyshev (p=): 𝑑(𝑥, 𝑧) = max 𝑥𝑖 − 𝑧𝑖


𝑖
2. THUẬT TOÁN K-LÂN CẬN GẦN NHẤT
2.3. Hàm tính khoảng cách
• Hàm khoảng cách Hamming
𝑛
d(x,z)= 𝑖=1 𝐷𝑖𝑓𝑓𝑒𝑟𝑒𝑛𝑐𝑒(𝑥𝑖 , 𝑧𝑖 )
1, 𝑛ế𝑢 𝑎 = 𝑏
Difference(a,b)=
0, 𝑛𝑔ượ𝑐 𝑙ạ𝑖

• Hàm tính độ tương tự Cosine


𝑛
𝑥. 𝑧 𝑖=1 𝑥𝑖𝑧𝑖
𝑠𝑖𝑚 𝑥, 𝑧 = =
𝑥 𝑧 𝑛 2 𝑛 2
𝑥
𝑖=1 𝑖 𝑧
𝑖=1 𝑖
2. THUẬT TOÁN K-LÂN CẬN GẦN NHẤT
2.3. Hàm tính khoảng cách
• Một số chú ý
– Chuẩn hóa miền giá trị của các thuộc tính
– Các thuộc tính khác nhau có thể (nên) có trọng số (mức
độ ảnh hưởng) khác nhau
2. THUẬT TOÁN K-LÂN CẬN GẦN NHẤT
2.4. Ví dụ 1
• Cho dữ liệu khách vay nợ và tình trạng vỡ nợ

𝐷𝑖 = (𝑧1 − 𝑥𝑖1)2 +(𝑧2 − 𝑥𝑖2)2

• Với k=3, hãy dự đoán tình trạng vỡ nợ của khách hàng


có tuổi 42 và khoản vay $142000
2. THUẬT TOÁN K-LÂN CẬN GẦN NHẤT
2.4. Ví dụ 2
2. THUẬT TOÁN K-LÂN CẬN GẦN NHẤT
2.5. Minh họa bằng Python (Iris dataset)
Bộ dữ liệu hoa Iris là một bộ dữ liệu nhỏ. Bộ dữ liệu này bao gồm thông tin của ba
nhãn hoa Iris khác nhau: Iris setosa, Iris virginica và Iris versicolor.

Mỗi nhãn chứa thông tin của 50 bông hoa với dữ liệu là bốn thông tin: chiều dài,
chiều rộng đài hoa, và chiều dài, chiều rộng cánh hoa.

Các điểm dữ liệu là một vector đặc trưng bốn chiều gồm các thông tin ở trên

Nguồn: Internet
2. THUẬT TOÁN K-LÂN CẬN GẦN NHẤT
2.5. Minh họa bằng Python (Iris dataset)
Trong phần này, 150 điểm dữ liệu được tách thành tập huấn luyện và tập kiểm tra.

KNN dựa vào trông tin trong tập huấn luyện để dự đoán mỗi dữ liệu trong tập kiểm
tra tương ứng với loại hoa nào.

Kết quả này được đối chiếu với đầu ra thực sự để đánh giá hiệu quả của KNN
2. THUẬT TOÁN K-LÂN CẬN GẦN NHẤT
2.5. Minh họa bằng Python (Iris dataset)
B1. Khởi tạo B3. Xây dựng và đánh giá (k=1)

B4. Xây dựng và đánh giá (k=7)

B2. Tách dữ liệu

Ví dụ C02_S01
2. THUẬT TOÁN K-LÂN CẬN GẦN NHẤT
2.5. Minh họa bằng Python (Iris dataset)
B5. Trực quan hóa bằng biểu đồ nhiệt

Ví dụ C02_S01
2. THUẬT TOÁN K-LÂN CẬN GẦN NHẤT
2.6. Điều kiện áp dụng
– Các ví dụ được biểu diễn trong không gian vectơ Rn
– Số lượng các thuộc tính là không nhiều
– Một tập học có kích thước lớn
2. THUẬT TOÁN K-LÂN CẬN GẦN NHẤT
2.7. Ưu điểm, nhược điểm
– Ưu điểm
• Chi phí thấp cho quá trình huấn luyện (chỉ lưu lại các ví dụ học)
• Hoạt động tốt với các bài toán phân loại gồm nhiều lớp
• Phương pháp học k-NN (k >>1) có khả năng xử lý nhiễu cao

– Nhược điểm
• Xác định giá trị cho tham số k
• Phải lựa chọn hàm tính khoảng cách thích hợp với bài toán
• Chi phí tính toán cao tại thời điểm phân loại/dự đoán
• Có thể cho kết quả kém/sai với các thuộc tính không liên quan
3. THUẬT TOÁN PHÂN CỤM K-TRUNG BÌNH
3.1. Giới thiệu
3.2. Mô tả dữ liệu
3.3. Hàm mất mát và bài toán tối ưu
3.4. Mô tả bài toán
3.5. Minh họa bằng Python
3.6. Ưu điểm, nhược điểm
3. THUẬT TOÁN PHÂN CỤM K-TRUNG BÌNH
3.1. Giới thiệu
• Một trong những thuật toán cơ bản nhất trong học
không giám sát
• Phân dữ liệu thành các cụm (cluster) khác nhau sao
cho dữ liệu trong cùng một cụm có tính chất giống nhau
– Không biết nhãn của từng điểm dữ liệu
– Một cụm có thể được định nghĩa là tập hợp các điểm có
vector đặc trưng gần nhau.
– Việc tính toán khoảng cách phụ thuộc vào từng loại dữ liệu,
trong đó khoảng cách Euclid được sử dụng phổ biến nhất
3. THUẬT TOÁN PHÂN CỤM K-TRUNG BÌNH
3.1. Giới thiệu
Tâm của cụm

Điểm dữ liệu (mới) gần tâm của cụm nào nhất sẽ thuộc cụm đó
3. THUẬT TOÁN PHÂN CỤM K-TRUNG BÌNH
3.1. Giới thiệu
• Mục đích
– Từ dữ liệu đầu vào và số cụm cần tìm, xác định tâm mỗi
cụm và phân các điểm dữ liệu vào cụm tương ứng.

• Giả định
– Mỗi điểm dữ liệu chỉ thuộc đúng một cụm.
3. THUẬT TOÁN PHÂN CỤM K-TRUNG BÌNH
3.2. Mô tả dữ liệu
• Đầu vào
– N điểm dữ liệu trong tập huấn luyện được ghép lại
thành ma trận X = [x1, x2, …, xN ] ∈ Rd×N (mỗi xi là một
điểm dữ liệu d chiều)
– K < N là số cụm được xác định trước

• Đầu ra
– Các tâm cụm m1, m2, …, mK∈Rd×1 và nhãn yi = k của
mỗi điểm dữ liệu xi (k{1..K})
3. THUẬT TOÁN PHÂN CỤM K-TRUNG BÌNH
3.2. Mô tả dữ liệu
• Ma trận nhãn Y ∈RN×K
– Nhãn k của điểm dữ liệu xi được thể hiện dưới dạng
một vector yi∈R1×K, sao cho:
1, 𝑛ế𝑢 𝑗 = 𝑘
𝑦𝑖𝑗 =
0, 𝑛𝑔ượ𝑐 𝑙ạ𝑖
– Ví dụ:
• Nếu điểm dữ liệu có vector nhãn là [1,0,0,…,0], thì nó thuộc
cụm thứ nhất
• Nếu điểm dữ liệu có vector nhãn là [0,1,0,…,0], thì nó thuộc
cụm thứ hai
3. THUẬT TOÁN PHÂN CỤM K-TRUNG BÌNH
3.3. Hàm mất mát và bài toán tối ưu
– Gọi mk∈Rd là tâm của cụm thứ k. Giả sử một điểm dữ
liệu xi được phân vào cụm k, sai số trong trường hợp
này là (xi−mk).
– Vector sai số này càng gần với vector không càng tốt,
hay khoảng cách Euclid 𝑥𝑖 − 𝑚𝑘 22 càng nhỏ càng tốt
𝐾
2 2 2
𝑥𝑖 − 𝑚𝑘 2 = 𝑦𝑖𝑘 𝑥𝑖 − 𝑚𝑘 2 = 𝑦𝑖𝑗 𝑥𝑖 − 𝑚𝑘 2
𝑗=1

do xi phân vào cụm k nên yik=1 và yij=0 với jk


3. THUẬT TOÁN PHÂN CỤM K-TRUNG BÌNH
3.3. Hàm mất mát và bài toán tối ưu
– Vector sai số này càng gần với vector không càng tốt,
hay khoảng cách Euclid 𝑥𝑖 − 𝑚𝑘 22 càng nhỏ càng tốt
𝐾
2 2 2
𝑥𝑖 − 𝑚𝑘 2 = 𝑦𝑖𝑘 𝑥𝑖 − 𝑚𝑘 2 = 𝑦𝑖𝑗 𝑥𝑖 − 𝑚𝑗 2
𝑗=1

– Sai số cho toàn bộ dữ liệu (hàm mất mát)


𝑁 𝐾
1 2
𝐿 𝑌, 𝑀 = 𝑦𝑖𝑗 𝑥𝑖 − 𝑚𝑗 2
𝑁
𝑖=1 𝑗=1
3. THUẬT TOÁN PHÂN CỤM K-TRUNG BÌNH
3.3. Hàm mất mát và bài toán tối ưu
– Bài toán tối ưu có ràng buộc
𝑁 𝐾
1 2
𝐿 𝑌, 𝑀 = 𝑦𝑖𝑗 𝑥𝑖 − 𝑚𝑗 2
𝑁
𝑖=1 𝑗=1
𝐾
thỏa mãn 𝑦𝑖𝑗 ∈ 0,1 , ∀𝑖, 𝑗; 𝑦𝑖𝑗 = 1, ∀𝑖
𝑗=1

– Hướng tiếp cận


• Cố định M, tìm Y
• Cố định Y, tìm M
3. THUẬT TOÁN PHÂN CỤM K-TRUNG BÌNH
3.4. Mô tả thuật toán
• Đầu vào: Ma trận dữ liệu X∈Rd×N và số cụm cần tìm K<N.
• Đầu ra: Ma trận tâm cụm M∈Rd×K và ma trận nhãn Y∈RN×K.
1. Chọn K điểm bất kỳ trong tập huấn luyện làm tâm cụm ban đầu.
2. Phân mỗi điểm dữ liệu vào cụm có tâm gần nó nhất.
3. Nếu việc phân cụm dữ liệu vào từng cụm ở bước 2 không thay
đổi so với vòng lặp trước nó thì dừng thuật toán.
4. Cập nhật tâm cụm bằng cách lấy trung bình cộng của các điểm đã
được gán vào cụm đó sau bước 2.
5. Quay lại bước 2.
3. THUẬT TOÁN PHÂN CỤM K-TRUNG BÌNH
3.5. Ví dụ

Bước 1: Bước 2: D0= 0 1 3.6 5 c1(1,1)


Khởi tạo tâm Tính khoảng cách từ 1 0 2.8 4.2 c2(2,1)
C1 (1,1) các đối tượng đến A B C D
C2 (2,1) tâm của mỗi nhóm 1 2 4 5 X
1 1 3 4 Y
Bước 3:
G0 1 0 0 0 c1(1,1)
Nhóm các đối tượng
0 1 1 1 c2(2,1)
vào nhóm gần nhất
A B C D
3. THUẬT TOÁN PHÂN CỤM K-TRUNG BÌNH
3.5. Ví dụ
G0 1 0 0 0 c1(1,1)
0 1 1 1 c2(2,1)
A B C D
1 2 4 5 X
1 1 3 4 Y

Bước 4: Bước 5: D1= 0 1 3.6 5 c1(1,1)


Tính lại tâm Tính khoảng cách từ 3.1 2.4 0.5 1.9 c2(11/3,8/3)
C1 (1,1) các đối tượng đến A B C D
C2 (11/3,8/3) tâm của mỗi nhóm 1 2 4 5 X
1 1 3 4 Y
G1 1 1 0 0 c1(1,1)
Bước 6: 0 0 1 1 c2(11/3,8/3)
Nhóm các đối tượng A B C D
vào nhóm gần nhất 1 2 4 5 X
1 1 3 4 Y
3. THUẬT TOÁN PHÂN CỤM K-TRUNG BÌNH
3.5. Ví dụ G1 1 1 0 0 c1(1,1)
0 0 1 1 c2(11/3,8/3)
A B C D
1 2 4 5 X
1 1 3 4 Y

Bước 7: Bước 8: D2= 0.5 0.5 3.2 4.6 C1 (1.5,1)


Tính lại tâm Tính khoảng cách từ 4.3 3.5 0.7 0.7 C2 (4.5, 3.5)
C1 (1.5,1) các đối tượng đến A B C D
C2 (4.5,3.5) tâm của mỗi nhóm 1 2 4 5 X
1 1 3 4 Y
G2 1 1 0 0 C1 (1.5,1)
Bước 9: 0 0 1 1 C2 (4.5, 3.5)
Nhóm các đối tượng A B C D
vào nhóm gần nhất 1 2 4 5 X
1 1 3 4 Y
3. THUẬT TOÁN PHÂN CỤM K-TRUNG BÌNH
3.5. Ví dụ

G1 1 1 0 0 c1(1,1) G2 1 1 0 0 C1 (1.5,1)
0 0 1 1 c2(11/3,8/3) 0 0 1 1 C2 (4.5, 3.5)
A B C D A B C D
1 2 4 5 X 1 2 4 5 X
1 1 3 4 Y 1 1 3 4 Y
3. THUẬT TOÁN PHÂN CỤM K-TRUNG BÌNH
3.5. Minh họa bằng Python
• Giới thiệu
– Bộ dữ liệu hoa Iris là một bộ dữ liệu nhỏ với 150 điểm
dữ liệu. Mỗi điểm dữ liệu là một vector đặc trưng về
chiều dài, chiều rộng đài hoa, và chiều dài, chiều rộng
cánh hoa.

• Yêu cầu
– Dùng K-means để phân cụm các điểm dữ liệu nói trên
3. THUẬT TOÁN PHÂN CỤM K-TRUNG BÌNH
Nạp dữ liệu Trực quan hóa

Xây dựng và đánh giá mô hình

Ví dụ C02_S02
3. THUẬT TOÁN PHÂN CỤM K-TRUNG BÌNH
3.6. Ưu điểm, nhược điểm
– Ưu điểm
• Đơn giản, dễ thực hiện
• Dễ giải thích kết quả

– Nhược điểm
• Cần biết trước số lượng cụm
• Nghiệm cuối cùng phụ thuộc vào các tâm cụm ban đầu
• Các cụm cần có dạng hình tròn và có số lượng điểm dữ liệu
ngang nhau
4. BỘ PHÂN LOẠI NAÏVE BAYES
4.1. Giới thiệu
4.2. Mô tả bài toán
4.3. Minh họa bằng Python
4.4. Điều kiện
4.5. Ưu điểm, nhược điểm
4. BỘ PHÂN LOẠI NAÏVE BAYES
4.1. Giới thiệu
– Xét các bài toán phân loại với C nhãn khác nhau.
– Xác định xác suất để điểm dữ liệu x có nhãn là c
• p(y = c|x), hoặc viết gọn thành p(c|x).

– Theo đó, nhãn của mỗi điểm dữ liệu là nhãn có xác suất
rơi vào cao nhất
𝑐 = argmax 𝑝(𝑐|𝑥)
𝑐∈*1…𝐶+
4. BỘ PHÂN LOẠI NAÏVE BAYES
4.1. Giới thiệu
𝑐 = argmax 𝑝(𝑐|𝑥)
𝑐∈*1…𝐶+
Quy tắc Bayes

𝑝 𝑥 𝑐 𝑝(𝑐)
𝑐 = argmax
𝑐∈*1…𝐶+ 𝑝(𝑥)
p(x) không phụ thuộc vào c

𝑐 = argmax 𝑝 𝑥 𝑐 𝑝(𝑐)
𝑐∈*1…𝐶+
4. BỘ PHÂN LOẠI NAÏVE BAYES
4.1. Giới thiệu
𝑐 = argmax 𝑝 𝑥 𝑐 𝑝(𝑐)
𝑐∈*1…𝐶+
– Nếu tập huấn luyện lớn, p(c) được tính theo phương
pháp ước lượng hợp lý cực đại (Maximum Likelihood
Estimation - MLE)
– Ngược lại, p(c) được tính theo phương pháp ước lượng
hậu nghiệm cực đại (Maximum a Posteriori Estimation –
MAP)
4. BỘ PHÂN LOẠI NAÏVE BAYES
4.1. Giới thiệu

𝑐 = argmax 𝑝 𝑥 𝑐 𝑝(𝑐)
𝑐∈*1…𝐶+

𝑝 𝑥 𝑐 = 𝑝 𝑥1, 𝑥2, … , 𝑥𝑑 𝑐 = 𝑝(𝑥𝑖|𝑐)


𝑖=1

Các thành phần của biến ngẫu nhiên


x độc lập với nhau khi đã biết c
Đây là một giả định ngây thơ (naïve)
Giả định naïve Bayes
4. BỘ PHÂN LOẠI NAÏVE BAYES
4.1. Giới thiệu
– Xét các bài toán phân loại với C nhãn khác nhau.
– Xác định xác suất để điểm dữ liệu x có nhãn là c
• p(y = c|x), hoặc viết gọn thành p(c|x).

– Giả định naïve Bayes


• Các thành phần của biến ngẫu nhiên x độc lập với nhau khi đã
biết c

– Bộ phân loại naïve Bayes (NBC)


• Phương pháp xác định nhãn của dữ liệu dựa trên giả định naïve
Bayes
4. BỘ PHÂN LOẠI NAÏVE BAYES
4.2. Mô tả thuật toán
• Mỗi ví dụ học x được biểu diễn bởi 2 thành phần:
– Mô tả của ví dụ x = (x1, x2, …, xd), trong đó xiR
– Nhãn lớp c (C, với C là tập các nhãn lớp được xác định trước)

• Bước huấn luyện


– Các phân phối p(c) và p(xi|c), i=1…d được xác định dựa vào dữ
liệu huấn luyện.

• Bước kiểm tra: nhãn của một điểm dữ liệu mới x được xác
định bởi 𝑑

𝑐 = argmax 𝑝(𝑐) 𝑝(𝑥𝑖|𝑐)


𝑐∈*1…𝐶+
𝑖=1
4. BỘ PHÂN LOẠI NAÏVE BAYES
4.2. Mô tả thuật toán
• Bước huấn luyện
– Các phân phối p(c) và p(xi|c), i=1…d được xác định dựa vào dữ
liệu huấn luyện.
• Bước kiểm tra: nhãn của một điểm dữ liệu mới x được xác
định bởi 𝑑

𝑐 = argmax 𝑝(𝑐) 𝑝(𝑥𝑖|𝑐)


𝑐∈*1…𝐶+
𝑖=1
Giải quyết sai số khi d lớn và các xác suất nhỏ
Log là hàm đồng biến, không thay đổi kết quả
𝑑

𝑐 = argmax(log 𝑝 𝑐 + log( 𝑝(𝑥𝑖|𝑐)))


𝑐∈*1…𝐶+
𝑖=1
4. BỘ PHÂN LOẠI NAÏVE BAYES
4.2. Mô tả thuật toán
• Cách tính p(xi|c) phụ thuộc loại dữ liệu
– Gaussian naïve Bayes:
• Sử dụng trong loại dữ liệu mà thành phần là các biến liên tục

– Multinomial naïve Bayes:


• Sử dụng trong bài toán phân loại văn bản mà vector đặc trưng
được xây dựng dựa trên ý tưởng bag of words

– Bernoulli naïve Bayes:


• Sử dụng cho các loại dữ liệu mà mỗi thành phần là một giá trị
nhị phân
4. BỘ PHÂN LOẠI NAÏVE BAYES
4.3. Ví dụ
4. BỘ PHÂN LOẠI NAÏVE BAYES
4.3. Ví dụ
4. BỘ PHÂN LOẠI NAÏVE BAYES
4.3. Ví dụ
4. BỘ PHÂN LOẠI NAÏVE BAYES
4.4. Minh họa bằng Python (wine dataset)
Bộ dữ liệu rượu vang (wine dataset) là một bộ dữ liệu nhỏ với 178 điểm dữ liệu, 13
đặc trưng là kết quả phân tích hóa học của các loại rượu vang được trồng ở cùng một
vùng ở Ý nhưng có nguồn gốc từ ba giống khác nhau.

Nguồn: Internet
4. BỘ PHÂN LOẠI NAÏVE BAYES
Nạp dữ liệu Trực quan hóa

Xây dựng và đánh giá mô hình

Ví dụ C02_S03
4. BỘ PHÂN LOẠI NAÏVE BAYES
4.5. Điều kiện áp dụng
– NBC thường được sử dụng trong các bài toán phân loại
văn bản
– NBC có thể hoạt động với các vector đặc trưng mà một
phần là liên tục (sử dụng Gaussian naive Bayes), phần
còn lại ở dạng rời rạc (sử dụng multinomial hoặc
Bernoulli)
4. BỘ PHÂN LOẠI NAÏVE BAYES
4.6. Ưu điểm, nhược điểm
– Ưu điểm
• Dễ dàng và nhanh chóng để dự đoán lớp của tập dữ liệu thử
nghiệm. Nó cũng hoạt động tốt trong dự đoán nhiều lớp
• Với giả định độc lập giữa các đặc trưng, bộ phân loại Naive
Bayes hoạt động tốt hơn so với các mô hình khác với ít dữ liệu
huấn luyện hơn.

– Nhược điểm
• Độ chính xác của NBC nếu so với các thuật toán khác thì không
được cao.
• Trong thế giới thực, hầu như không xảy ra khả năng các đặc
trưng của dữ liệu kiểm tra là độc lập với nhau
NỘI DUNG
1. Bài toán phân lớp
2. Thuật toán K-lân cận gần nhất
3. Thuật toán phân cụm K-trung bình
4. Bộ phân loại Naïve Bayes

You might also like