Professional Documents
Culture Documents
T2T3 KNN KM NB
T2T3 KNN KM NB
T2T3 KNN KM NB
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, 𝑛𝑔ượ𝑐 𝑙ạ𝑖
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)
𝑖=1
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)
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
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
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…𝐶+
• 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 𝑑
Nguồn: Internet
4. BỘ PHÂN LOẠI NAÏVE BAYES
Nạp dữ liệu Trực quan hóa
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