KKhai phá dữ liệu - Chương 4 - ThS. Nguyễn Vương Thịnh
Chia sẻ bởi Nguyễn Vương Thịnh |
Ngày 19/03/2024 |
18
Chia sẻ tài liệu: KKhai phá dữ liệu - Chương 4 - ThS. Nguyễn Vương Thịnh thuộc Công nghệ thông tin
Nội dung tài liệu:
TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM
KHOA CÔNG NGHỆ THÔNG TIN
BÀI GIẢNG MÔN HỌC
KHAI PHÁ DỮ LIỆU
Giảng viên: ThS. Nguyễn Vương Thịnh
Bộ môn: Hệ thống thông tin
Hải Phòng, 2013
CHƯƠNG 4: PHÂN CỤM DỮ LIỆU
2
Thông tin về giảng viên
3
Thông tin về học phần
PHƯƠNG PHÁP HỌC TẬP, NGHIÊN CỨU
Nghe giảng, thảo luận, trao đổi với giảng viên trên lớp.
Tự nghiên cứu tài liệu và làm bài tập ở nhà.
PHƯƠNG PHÁP ĐÁNH GIÁ
SV phải tham dự ít nhất 75% thời gian.
Có 02 bài kiểm tra viết giữa học phần (X = X2 = (L1 + L2)/2).
Thi kết thúc học phần bằng hình thức trắc nghiệm khách quan trên máy tính (Z = 0.5X + 0.5Y).
4
Tài liệu tham khảo
Jiawei Han and Micheline Kamber, Data Mining Concepts and Techniques, Elsevier Inc, 2006.
Ian H. Witten, Eibe Frank, Data Mining – Practical Machine Learning Tools and Techniques (the second edition), Elsevier Inc, 2005 (sử dụng kèm với công cụ Weka).
Elmasri, Navathe, Somayajulu, Gupta, Fundamentals of Database Systems (the 4th Edition), Pearson Education Inc, 2004.
Hà Quang Thụy, Phan Xuân Hiếu, Đoàn Sơn, Nguyễn Trí Thành, Nguyễn Thu Trang, Nguyễn Cẩm Tú, Giáo trình Khai phá dữ liệu Web, NXB Giáo dục, 2009
5
6
Công cụ phần mềm hỗ trợ
Phần mềm Weka được phát triển bởi nhóm nghiên cứu của trường Đại học Waikato (New Zealand) từ năm 1999. Có thể download về tại địa chỉ: http://www.cs.waikato.ac.nz/ml/weka/downloading.html
CHƯƠNG 4: PHÂN CỤM DỮ LIỆU
4.1. KHÁI NIỆM VỀ PHÂN CỤM DỮ LIỆU
4.2. ĐỘ ĐO SỬ DỤNG TRONG PHÂN CỤM
4.3. PHÂN CỤM DỮ LIỆU VỚI GIẢI THUẬT K-MEANS
(Phân cụm từ trên xuống)
4.4. PHÂN CỤM DỮ LIỆU VỚI GIẢI THUẬT HAC
(Phân cụm từ dưới lên)
4.5. SO SÁNH GIẢI THUẬT K-MEANS VÀ HAC
4.6. PHÂN CỤM DỮ LIỆU VỚI PHẦN MỀM WEKA
7
8
4.1. KHÁI NIỆM VỀ PHÂN CỤM DỮ LIỆU
4.1.1. Phân cụm dữ liệu (clustering) là gì?
Phân cụm dữ liệu là quá trình phân chia các đối tượng dữ liệu (bản ghi) vào các nhóm (cụm) sao cho các đối tượng thuộc về cùng một cụm thì có các đặc điểm “tương tự” nhau (“gần” nhau) và các đối tượng thuộc về các cụm khác nhau thì có các đặc điểm “khác” nhau (“xa” nhau).
Đại lượng nào xác định sự “tương tự” và “khác” nhau giữa các đối tượng?
Khác với phân lớp, phân cụm được xem quá trình học không có giám sát (unsupervised learning). Dữ liệu được phân vào các cụm mà không cần có tập mẫu học (training sample).
9
4.1.2. Ứng dụng của phân cụm dữ liệu
Phân cụm dữ liệu có thể ứng dụng trong nhiều lĩnh vực:
Nghiên cứu thị trường (Marketing): Xác định các nhóm khách hàng (khách hàng tiềm năng, khách hàng lớn, phân loại và dự đoán hành vi khách hàng,…) sử dụng sản phẩm hay dịch vụ của công ty để giúp công ty có chiến lược kinh doanh hiệu quả hơn.
Sinh học (Biology): Phân nhóm động vật và thực vật dựa vào các thuộc tính của chúng.
Quản lý thư viện (Libraries): Theo dõi độc giả, sách, dự đoán nhu cầu của độc giả…
Tài chính, Bảo hiểm (Finance and Insurance): Phân nhóm các đối tượng sử dụng bảo hiểm và các dịch vụ tài chính, dự đoán xu hướng (trend) của khách hàng, phát hiện gian lận tài chính (identifying frauds).
Khai phá web (Web Mining): Phân loại tài liệu (document classification), phân loại người dùng web (clustering weblog),…
10
4.2. ĐỘ ĐO SỬ DỤNG TRONG PHÂN CỤM
Để xác định tính chất tương đồng giữa các đối tượng dữ liệu, người ta thường sử dụng khái niệm “khoảng cách” (distance).
Hai đối tượng có “khoảng cách” càng nhỏ thì càng “tương tự” (giống) nhau và có “khoảng cách” càng lớn thì càng “khác” nhau.
Xét hai đối tượng dữ liệu (bản ghi) ri và rj , mỗi đối tượng có n thuộc tính:
Khoảng cách Euclid (Euclidean Distance):
Khoảng cách Manhattan (Manhattan Distance):
11
4.3. PHÂN CỤM VỚI GIẢI THUẬT K-MEANS
4.3.1. Khái niệm về trọng tâm cụm
Xét cụm dữ liệu Cj gồm m đối tượng thuộc cụm:
Mỗi đối tượng có n thuộc tính:
Trọng tâm cụm (mean/centroid) là đối tượng mj được xác định:
Ví dụ:
Cho cụm C1 = {r1, r2, r3} với r1 = (1, 2, 1), r2 = (1, 3, 2), r3 = (1, 1, 3).
Trọng tâm cụm là:
r1
r2
r3
m1
C1
12
4.3.2. Nội dung giải thuật K-means
Input: Tập dữ liệu D gồm m đối tượng dữ liệu (bản ghi): r1, r2,…, rm .
Số lượng cụm k.
Output: k cụm dữ liệu.
Begin
Chọn ngẫu nhiên k đối tượng làm trọng tâm cho k cụm;
Repeat
Gán mỗi đối tượng ri cho cụm mà khoảng cách từ đối tượng đến trọng tâm cụm là nhỏ nhất trong số k cụm;
Xác định lại trọng tâm cho mỗi cụm dựa trên các đối tượng được gán cho cụm;
Until (Không còn sự thay đổi);
End;
(xem “Fundamentals of Database Systems – 4th Edition” trang 680)
13
m1
m2
m3
r1
r2
C1
C2
C3
d(r1,m1) < d(r1,m2) < d(r1,m3) → r1 thuộc C1
d(r2,m3) < d(r2,m2) < d(r2,m1) → r2 thuộc C3
14
4.3.3. Điều kiện dừng của giải thuật K-means
Có hai kết cục có thể xảy ra đối với giải thuật K-means:
Giải thuật hội tụ: không còn sự phân chia lại các đối tượng giữa các cụm, hay trọng tâm các cụm là không đổi. Lúc đó tổng các tổng khoảng cách nội tại từ các đối tượng thuộc cụm đến trọng tâm cụm là cực tiểu:
Đây là điều kiện dừng “lý tưởng”.
J
n
Jmin
15
Giải thuật không hội tụ: trọng tâm của các cụm cứ liên tục thay đổi. Lúc đó có 3 lựa chọn:
Dừng giải thuật khi số lượng vòng lặp vượt quá một ngưỡng nào đó định trước.
Dừng giải thuật khi giá trị J nhỏ hơn một ngưỡng nào đó định trước.
Dừng giải thuật khi hiệu giá trị của J trong hai vòng lặp liên tiếp nhỏ hơn một ngưỡng nào đó định trước: |Jn+1 – Jn| < ε
J
n
nmin
Jmin
JH
nH
16
BÀI TẬP ÁP DỤNG
Bài tập số 1: Cho tập dữ liệu D như sau:
Hãy phân cụm tập dữ liệu D với k = 2.
17
Chọn m1 = r1 = (1, 2), m2 = r6 = (2, 4) .
Lần lặp 1:
r2 = (2, 2)
d(r2, m1) = |2 - 1| + |2 - 2| = 1, d(r2, m2) = |2 - 2| + |2 - 4| = 2 ⟹ r2 ∈ C1
r3 = (2, 3)
d(r3, m1) = |2 - 1| + |3 - 2| = 2, d(r3, m2) = |2 - 2| + |3 - 4| = 1 ⟹ r3 ∈ C2
r4 = (3, 3)
d(r4, m1) = |3 - 1| + |3 - 2| = 3, d(r4, m2) = |3 - 2| + |3 - 4| = 2 ⟹ r4 ∈ C2
r5 = (3, 4)
d(r5, m1) = |3 - 1| + |4 - 2| = 4, d(r5, m2) = |3 - 2| + |4 - 4| = 1 ⟹ r5 ∈ C2
Ta thu được 2 cụm: C1 = {r1, r2} và C2 = {r3, r4 , r5 , r6}
Cập nhật trọng tâm cụm:
18
Với m1 = (1.5, 2), m2 = (2.5, 3.5)
Lần lặp 2:
r1 = (1, 2)
d(r1, m1) = |1 - 1.5| + |2 - 2| = 0.5, d(r1, m2) = |1 - 2.5| + |2 - 3.5| = 3 ⟹ r1 ∈ C1
r2 = (2, 2)
d(r2, m1) = |2 - 1.5| + |2 - 2| = 0.5, d(r2, m2) = |2 - 2.5| + |2 - 3.5| = 2 ⟹ r2 ∈ C1
r3 = (2, 3)
d(r3, m1) = |2 - 1.5| + |3 - 2| = 1.5, d(r3, m2) = |2 - 2.5| + |3 - 3.5| = 1 ⟹ r3 ∈ C2
r4 = (3, 3)
d(r4, m1) = |3 - 1.5| + |3 - 2| = 2.5, d(r4, m2) = |3 - 2.5| + |3 - 3.5| = 1 ⟹ r4 ∈ C2
r5 = (3, 4)
d(r5, m1) = |3 - 1.5| + |4 - 2| = 3.5, d(r5, m2) = |3 - 2.5| + |4 - 3.5| = 1 ⟹ r5 ∈ C2
r6 = (2, 4)
d(r6, m1) = |2 - 1.5| + |4 - 2| = 2.5, d(r6, m2) = |2 - 2.5| + |4 - 3.5| = 1 ⟹ r6 ∈ C2
Ta thu được hai cụm C1 = {r1, r2} và C2 = {r3, r4 , r5 , r6}.
Sau lần lặp 2 không có sự phân bố lại các đối tượng giữa các cụm (điều kiện dừng lý tưởng). Giải thuật kết thúc và kết quả của quá trình phân cụm là:
C1 = {r1, r2} và C2 = {r3, r4 , r5 , r6}.
19
20
Bài tập số 2: Cho tập dữ liệu D như sau:
Hãy phân cụm tập dữ liệu D với k = 2.
21
Chọn m1 = A = (1, 1), m2 = C = (4, 3) .
Lần lặp 1:
B = (2, 1)
d(B, m1) = |2 - 1| + |1 - 1| = 1, d(B, m2) = |2 - 4| + |1 - 3| = 4 ⟹ B ∈ C1
D = (5, 4)
d(D, m1) = |5 - 1| + |4 - 1| = 7, d(D, m2) = |5 - 4| + |4 - 3| = 2 ⟹ D ∈ C2
Ta thu được 2 cụm: C1 = {A, B} và C2 = {C, D}
Cập nhật trọng tâm cụm:
Lần lặp 2: m1 = (1.5,1), m2 = (4,5, 3.5)
A = (1, 1)
d(A, m1) = |1 - 1.5| + |1 - 1| = 0.5, d(A, m2) = |1 - 4.5| + |1 - 3.5| = 6 ⟹ A ∈ C1
B = (2, 1)
d(B, m1) = |2 - 1.5| + |1 - 1| = 0.5, d(B, m2) = |2 - 4.5| + |1 - 3.5| = 5 ⟹ B ∈ C1
22
C = (4, 3)
d(C, m1) = |4 - 1.5| + |3 - 1| = 4.5, d(C, m2) = |4 - 4.5| + |3 - 3.5| = 1 ⟹ C ∈ C2
D = (5, 4)
d(D, m1) = |5 – 1.5| + |4 - 1| = 6.5, d(D, m2) = |5 - 4.5| + |4 - 3.5| = 1 ⟹ D ∈ C2
Ta thu được 2 cụm: C1 = {A, B} và C2 = {C, D}
Sau lần lặp 2 không có sự phân bố lại các đối tượng giữa các cụm (điều kiện dừng lý tưởng). Giải thuật kết thúc và kết quả của quá trình phân cụm là:
C1 = {A, B} và C2 = {C, D}
23
4.4. PHÂN CỤM VỚI GIẢI THUẬT HAC
(HAC - Hierarchical Agglomerative Clustering)
4.4.1. Nội dung giải thuật HAC
Tích tụ dần “từ dưới lên” (Bottom-Up)
Tư tưởng giải thuật:
Ban đầu, mỗi đối tượng (bản ghi) dữ liệu được coi là một cụm.
Từng bước kết hợp các cụm đã có thành các cụm lớn hơn với yêu cầu là khoảng cách giữa các đối tượng trong nội bộ cụm là nhỏ.
Dừng thuật toán khi đã đạt số lượng cụm mong muốn, hoặc chỉ còn một cụm duy nhất chứa tất cả các đối tượng hoặc thỏa mãn điều kiện dừng nào đó.
24
G = {{r} | r ∈ D}; //Khởi tạo G là tập các cụm chỉ gồm 1 đối tượng
Nếu |G| = k thì dừng thuật toán; //Đã đạt số lượng cụm mong muốn
Tìm hai cụm Si , Sj ∈ G có khoảng cách d(Si, Sj) là nhỏ nhất;
Nếu d(Si, Sj) > do thì dừng thuật toán; //Khoảng cách 2 cụm gần nhất đã lớn hơn ngưỡng cho phép
G = G{Si, Sj}; //Loại bỏ 2 cụm Si ,Sj khỏi tập các cụm
S = Si ∪ Sj; //Ghép Si, Sj thành cụm mới S
G = G ∪ {S}; //Kết nạp cụm mới vào G
Nhảy về bước 2.
G: tập các cụm.
D: tập các đối tượng (bản ghi) dữ liệu cần phân cụm.
k: số lượng cụm mong muốn.
do: ngưỡng khoảng cách giữa 2 cụm.
25
4.4.2. Độ đo “khoảng cách” giữa 02 cụm
A. Độ đo khoảng cách gần nhất (single-link)
Khoảng cách giữa 02 cụm được xác định là khoảng cách giữa 02 phần tử “gần” nhau nhất của 02 cụm đó:
S1
S2
26
4.4.2. Độ đo “khoảng cách” giữa 02 cụm
B. Độ đo khoảng cách xa nhất (complete-link)
Khoảng cách giữa 02 cụm được xác định là khoảng cách giữa 02 phần tử “xa” nhau nhất của 02 cụm đó:
S1
S2
27
4.4.2. Độ đo “khoảng cách” giữa 02 cụm
C. Độ đo khoảng cách trọng tâm (centroid-link)
Khoảng cách giữa 02 cụm được xác định là khoảng cách giữa 02 trọng tâm của 02 cụm đó:
S1
S2
m1
m2
28
4.4.2. Độ đo “khoảng cách” giữa 02 cụm
D. Độ đo khoảng cách trung bình nhóm (group-average)
Khoảng cách giữa 02 cụm được xác định là khoảng cách trung bình giữa các phần tử thuộc về 02 cụm đó:
S1
S2
29
Ví dụ: Cho tập dữ liệu D gồm các bản ghi:
Xét 2 cụm dữ liệu C1 = {r1, r2}, C2 = {r3, r4, r5}. Xác định khoảng cách d(C1,C2) giữa 2 cụm dựa trên các độ đo khác nhau.
30
Ma trận khoảng cách:
Nếu sử dụng single-link:
d(C1, C2) = d(r2, r4) = 2
Nếu sử dụng complete-link:
d(C1, C2) = d(r1, r3) = d(r1,r5) = 4
Nếu sử dụng group-average-link:
d(C1, C2) = 19/6 = 3.17
Nếu sử dụng centroid-link:
31
4.4.2. Độ đo “khoảng cách” giữa 02 cụm
E. Nhận xét về các độ đo
Với độ đo single-link:
Mang tính chất cục bộ: Chỉ quan tâm đến những vùng mà ở đó có phần tử của 2 cụm gần nhau nhất, không quan tâm đến các phần tử khác trong cụm cũng như cấu trúc tổng thể của các cụm.
Chất lượng phân cụm kém khi chỉ có 2 phân tử trong 2 cụm là rất gần nhau trong khi các phần tử khác ở phân tán rất xa nhau.
Với độ đo complete-link:
Khoảng cách 2 cụm dựa trên khoảng cách 2 phần tử xa nhau nhất ⟹ Việc ghép 2 cụm sẽ tạo ra cụm mới có đường kính nhỏ nhất.
Chất lượng phân cụm kém khi 2 phần tử trong 2 cụm ở rất xa nhau nhưng thực tế trọng tâm 2 cụm lại ở rất gần nhau.
32
Với độ đo group-average:
Tính toán khoảng cách của 2 cụm dựa trên khoảng cách của toàn bộ các cặp phần tử trong 2 cụm chứ không chỉ dựa trên một cặp phần tử duy nhất ⟹ tránh được nhược điểm của single-link và complete-link.
Với độ đo centroid-link:
Khắc phục được nhược điểm của single/complete-link.
Vẫn có nhược điểm là khoảng cách giữa các cụm khi từ đi mức dưới lên mức trên của cây phân cấp có thể là không tăng dần (do trong tâm các cụm ở mức cao nhiều khi gần nhau hơn các cụm ở mức dưới) ⟹ Trái với giả thiết về độ kết dính “Các cụm nhỏ thường có độ kết dính cao hơn các cụm có kích thước lớn hơn”.
33
Ví dụ: Cho tập dữ liệu gồm các đối tượng với 02 thuộc tính X1, X2 như sau:
Áp dụng giải thuật HAC hãy phân chia tập dữ liệu trên thành 02 cụm. Biết khoảng cách giữa 02 đối tượng được đo bằng độ đo Manhattan và khoảng cách giữa 02 cụm sử dụng độ đo single-link.
34
Ghép {3,4} với {5} thu được 02 cụm là {1,2} và {3,4,5}
Đã đạt số lượng cụm cần thiết. Kết thúc thuật toán
35
1
2
3
4
5
{3, 4}
{3, 4, 5}
{1, 2}
36
4.5. SO SÁNH GIẢI THUẬT K-MEANS VÀ HAC
37
4.6. PHÂN CỤM DỮ LIỆU VỚI PHẦN MỀM WEKA
Khởi động phần mềm Weka, chọn Explorer:
38
Chọn tập tin dữ liệu sử dụng
39
Chọn loại tập tin dữ liệu sử dụng (định dạng .csv hoặc .Arff)
Chọn tên tập tin và nạp dữ liệu vào hệ thống
40
41
Chọn chức năng “Phân cụm dữ liệu” (cluster)
42
Chọn giải thuật sử dụng để phân cụm
(K-Means hoặc HAC)
Click để thiết lập các thông số
cho giải thuật
43
Nếu lựa chọn giải thuật K-Means:
Chọn độ đo khoảng cách
(độ đo Euclide hoặc Mahattant)
Có cho phép thay thế các giá trị thiếu vắng bằng giá trị trung bình hay không
Số lần lặp tối đa
(Điều kiện dừng)
Số lượng cụm mong muốn
Giá trị cho phép khởi tạo ngẫu nhiên các trọng tâm ban đầu của các cụm
44
Nếu lựa chọn giải thuật HAC (Hierarchical Clustering):
Chọn độ đo khoảng cách đối tượng (độ đo Euclide hoặc Mahattant)
Chọn độ đo khoảng cách cụm (Single, Complete, Group-average, Centroid)
Số lượng cụm mong muốn
45
Kết quả phân cụm nếu lựa chọn giải thuật K-Means:
Tọa độ trọng tâm các cụm sau khi hoàn thành phân cụm
Phân bố số lượng phần tử trong các cụm
46
Kết quả phân cụm nếu lựa chọn giải thuật HAC:
Kết quả phân cụm
Phân bố số lượng phần tử trong các cụm
Q & A
47
KHOA CÔNG NGHỆ THÔNG TIN
BÀI GIẢNG MÔN HỌC
KHAI PHÁ DỮ LIỆU
Giảng viên: ThS. Nguyễn Vương Thịnh
Bộ môn: Hệ thống thông tin
Hải Phòng, 2013
CHƯƠNG 4: PHÂN CỤM DỮ LIỆU
2
Thông tin về giảng viên
3
Thông tin về học phần
PHƯƠNG PHÁP HỌC TẬP, NGHIÊN CỨU
Nghe giảng, thảo luận, trao đổi với giảng viên trên lớp.
Tự nghiên cứu tài liệu và làm bài tập ở nhà.
PHƯƠNG PHÁP ĐÁNH GIÁ
SV phải tham dự ít nhất 75% thời gian.
Có 02 bài kiểm tra viết giữa học phần (X = X2 = (L1 + L2)/2).
Thi kết thúc học phần bằng hình thức trắc nghiệm khách quan trên máy tính (Z = 0.5X + 0.5Y).
4
Tài liệu tham khảo
Jiawei Han and Micheline Kamber, Data Mining Concepts and Techniques, Elsevier Inc, 2006.
Ian H. Witten, Eibe Frank, Data Mining – Practical Machine Learning Tools and Techniques (the second edition), Elsevier Inc, 2005 (sử dụng kèm với công cụ Weka).
Elmasri, Navathe, Somayajulu, Gupta, Fundamentals of Database Systems (the 4th Edition), Pearson Education Inc, 2004.
Hà Quang Thụy, Phan Xuân Hiếu, Đoàn Sơn, Nguyễn Trí Thành, Nguyễn Thu Trang, Nguyễn Cẩm Tú, Giáo trình Khai phá dữ liệu Web, NXB Giáo dục, 2009
5
6
Công cụ phần mềm hỗ trợ
Phần mềm Weka được phát triển bởi nhóm nghiên cứu của trường Đại học Waikato (New Zealand) từ năm 1999. Có thể download về tại địa chỉ: http://www.cs.waikato.ac.nz/ml/weka/downloading.html
CHƯƠNG 4: PHÂN CỤM DỮ LIỆU
4.1. KHÁI NIỆM VỀ PHÂN CỤM DỮ LIỆU
4.2. ĐỘ ĐO SỬ DỤNG TRONG PHÂN CỤM
4.3. PHÂN CỤM DỮ LIỆU VỚI GIẢI THUẬT K-MEANS
(Phân cụm từ trên xuống)
4.4. PHÂN CỤM DỮ LIỆU VỚI GIẢI THUẬT HAC
(Phân cụm từ dưới lên)
4.5. SO SÁNH GIẢI THUẬT K-MEANS VÀ HAC
4.6. PHÂN CỤM DỮ LIỆU VỚI PHẦN MỀM WEKA
7
8
4.1. KHÁI NIỆM VỀ PHÂN CỤM DỮ LIỆU
4.1.1. Phân cụm dữ liệu (clustering) là gì?
Phân cụm dữ liệu là quá trình phân chia các đối tượng dữ liệu (bản ghi) vào các nhóm (cụm) sao cho các đối tượng thuộc về cùng một cụm thì có các đặc điểm “tương tự” nhau (“gần” nhau) và các đối tượng thuộc về các cụm khác nhau thì có các đặc điểm “khác” nhau (“xa” nhau).
Đại lượng nào xác định sự “tương tự” và “khác” nhau giữa các đối tượng?
Khác với phân lớp, phân cụm được xem quá trình học không có giám sát (unsupervised learning). Dữ liệu được phân vào các cụm mà không cần có tập mẫu học (training sample).
9
4.1.2. Ứng dụng của phân cụm dữ liệu
Phân cụm dữ liệu có thể ứng dụng trong nhiều lĩnh vực:
Nghiên cứu thị trường (Marketing): Xác định các nhóm khách hàng (khách hàng tiềm năng, khách hàng lớn, phân loại và dự đoán hành vi khách hàng,…) sử dụng sản phẩm hay dịch vụ của công ty để giúp công ty có chiến lược kinh doanh hiệu quả hơn.
Sinh học (Biology): Phân nhóm động vật và thực vật dựa vào các thuộc tính của chúng.
Quản lý thư viện (Libraries): Theo dõi độc giả, sách, dự đoán nhu cầu của độc giả…
Tài chính, Bảo hiểm (Finance and Insurance): Phân nhóm các đối tượng sử dụng bảo hiểm và các dịch vụ tài chính, dự đoán xu hướng (trend) của khách hàng, phát hiện gian lận tài chính (identifying frauds).
Khai phá web (Web Mining): Phân loại tài liệu (document classification), phân loại người dùng web (clustering weblog),…
10
4.2. ĐỘ ĐO SỬ DỤNG TRONG PHÂN CỤM
Để xác định tính chất tương đồng giữa các đối tượng dữ liệu, người ta thường sử dụng khái niệm “khoảng cách” (distance).
Hai đối tượng có “khoảng cách” càng nhỏ thì càng “tương tự” (giống) nhau và có “khoảng cách” càng lớn thì càng “khác” nhau.
Xét hai đối tượng dữ liệu (bản ghi) ri và rj , mỗi đối tượng có n thuộc tính:
Khoảng cách Euclid (Euclidean Distance):
Khoảng cách Manhattan (Manhattan Distance):
11
4.3. PHÂN CỤM VỚI GIẢI THUẬT K-MEANS
4.3.1. Khái niệm về trọng tâm cụm
Xét cụm dữ liệu Cj gồm m đối tượng thuộc cụm:
Mỗi đối tượng có n thuộc tính:
Trọng tâm cụm (mean/centroid) là đối tượng mj được xác định:
Ví dụ:
Cho cụm C1 = {r1, r2, r3} với r1 = (1, 2, 1), r2 = (1, 3, 2), r3 = (1, 1, 3).
Trọng tâm cụm là:
r1
r2
r3
m1
C1
12
4.3.2. Nội dung giải thuật K-means
Input: Tập dữ liệu D gồm m đối tượng dữ liệu (bản ghi): r1, r2,…, rm .
Số lượng cụm k.
Output: k cụm dữ liệu.
Begin
Chọn ngẫu nhiên k đối tượng làm trọng tâm cho k cụm;
Repeat
Gán mỗi đối tượng ri cho cụm mà khoảng cách từ đối tượng đến trọng tâm cụm là nhỏ nhất trong số k cụm;
Xác định lại trọng tâm cho mỗi cụm dựa trên các đối tượng được gán cho cụm;
Until (Không còn sự thay đổi);
End;
(xem “Fundamentals of Database Systems – 4th Edition” trang 680)
13
m1
m2
m3
r1
r2
C1
C2
C3
d(r1,m1) < d(r1,m2) < d(r1,m3) → r1 thuộc C1
d(r2,m3) < d(r2,m2) < d(r2,m1) → r2 thuộc C3
14
4.3.3. Điều kiện dừng của giải thuật K-means
Có hai kết cục có thể xảy ra đối với giải thuật K-means:
Giải thuật hội tụ: không còn sự phân chia lại các đối tượng giữa các cụm, hay trọng tâm các cụm là không đổi. Lúc đó tổng các tổng khoảng cách nội tại từ các đối tượng thuộc cụm đến trọng tâm cụm là cực tiểu:
Đây là điều kiện dừng “lý tưởng”.
J
n
Jmin
15
Giải thuật không hội tụ: trọng tâm của các cụm cứ liên tục thay đổi. Lúc đó có 3 lựa chọn:
Dừng giải thuật khi số lượng vòng lặp vượt quá một ngưỡng nào đó định trước.
Dừng giải thuật khi giá trị J nhỏ hơn một ngưỡng nào đó định trước.
Dừng giải thuật khi hiệu giá trị của J trong hai vòng lặp liên tiếp nhỏ hơn một ngưỡng nào đó định trước: |Jn+1 – Jn| < ε
J
n
nmin
Jmin
JH
nH
16
BÀI TẬP ÁP DỤNG
Bài tập số 1: Cho tập dữ liệu D như sau:
Hãy phân cụm tập dữ liệu D với k = 2.
17
Chọn m1 = r1 = (1, 2), m2 = r6 = (2, 4) .
Lần lặp 1:
r2 = (2, 2)
d(r2, m1) = |2 - 1| + |2 - 2| = 1, d(r2, m2) = |2 - 2| + |2 - 4| = 2 ⟹ r2 ∈ C1
r3 = (2, 3)
d(r3, m1) = |2 - 1| + |3 - 2| = 2, d(r3, m2) = |2 - 2| + |3 - 4| = 1 ⟹ r3 ∈ C2
r4 = (3, 3)
d(r4, m1) = |3 - 1| + |3 - 2| = 3, d(r4, m2) = |3 - 2| + |3 - 4| = 2 ⟹ r4 ∈ C2
r5 = (3, 4)
d(r5, m1) = |3 - 1| + |4 - 2| = 4, d(r5, m2) = |3 - 2| + |4 - 4| = 1 ⟹ r5 ∈ C2
Ta thu được 2 cụm: C1 = {r1, r2} và C2 = {r3, r4 , r5 , r6}
Cập nhật trọng tâm cụm:
18
Với m1 = (1.5, 2), m2 = (2.5, 3.5)
Lần lặp 2:
r1 = (1, 2)
d(r1, m1) = |1 - 1.5| + |2 - 2| = 0.5, d(r1, m2) = |1 - 2.5| + |2 - 3.5| = 3 ⟹ r1 ∈ C1
r2 = (2, 2)
d(r2, m1) = |2 - 1.5| + |2 - 2| = 0.5, d(r2, m2) = |2 - 2.5| + |2 - 3.5| = 2 ⟹ r2 ∈ C1
r3 = (2, 3)
d(r3, m1) = |2 - 1.5| + |3 - 2| = 1.5, d(r3, m2) = |2 - 2.5| + |3 - 3.5| = 1 ⟹ r3 ∈ C2
r4 = (3, 3)
d(r4, m1) = |3 - 1.5| + |3 - 2| = 2.5, d(r4, m2) = |3 - 2.5| + |3 - 3.5| = 1 ⟹ r4 ∈ C2
r5 = (3, 4)
d(r5, m1) = |3 - 1.5| + |4 - 2| = 3.5, d(r5, m2) = |3 - 2.5| + |4 - 3.5| = 1 ⟹ r5 ∈ C2
r6 = (2, 4)
d(r6, m1) = |2 - 1.5| + |4 - 2| = 2.5, d(r6, m2) = |2 - 2.5| + |4 - 3.5| = 1 ⟹ r6 ∈ C2
Ta thu được hai cụm C1 = {r1, r2} và C2 = {r3, r4 , r5 , r6}.
Sau lần lặp 2 không có sự phân bố lại các đối tượng giữa các cụm (điều kiện dừng lý tưởng). Giải thuật kết thúc và kết quả của quá trình phân cụm là:
C1 = {r1, r2} và C2 = {r3, r4 , r5 , r6}.
19
20
Bài tập số 2: Cho tập dữ liệu D như sau:
Hãy phân cụm tập dữ liệu D với k = 2.
21
Chọn m1 = A = (1, 1), m2 = C = (4, 3) .
Lần lặp 1:
B = (2, 1)
d(B, m1) = |2 - 1| + |1 - 1| = 1, d(B, m2) = |2 - 4| + |1 - 3| = 4 ⟹ B ∈ C1
D = (5, 4)
d(D, m1) = |5 - 1| + |4 - 1| = 7, d(D, m2) = |5 - 4| + |4 - 3| = 2 ⟹ D ∈ C2
Ta thu được 2 cụm: C1 = {A, B} và C2 = {C, D}
Cập nhật trọng tâm cụm:
Lần lặp 2: m1 = (1.5,1), m2 = (4,5, 3.5)
A = (1, 1)
d(A, m1) = |1 - 1.5| + |1 - 1| = 0.5, d(A, m2) = |1 - 4.5| + |1 - 3.5| = 6 ⟹ A ∈ C1
B = (2, 1)
d(B, m1) = |2 - 1.5| + |1 - 1| = 0.5, d(B, m2) = |2 - 4.5| + |1 - 3.5| = 5 ⟹ B ∈ C1
22
C = (4, 3)
d(C, m1) = |4 - 1.5| + |3 - 1| = 4.5, d(C, m2) = |4 - 4.5| + |3 - 3.5| = 1 ⟹ C ∈ C2
D = (5, 4)
d(D, m1) = |5 – 1.5| + |4 - 1| = 6.5, d(D, m2) = |5 - 4.5| + |4 - 3.5| = 1 ⟹ D ∈ C2
Ta thu được 2 cụm: C1 = {A, B} và C2 = {C, D}
Sau lần lặp 2 không có sự phân bố lại các đối tượng giữa các cụm (điều kiện dừng lý tưởng). Giải thuật kết thúc và kết quả của quá trình phân cụm là:
C1 = {A, B} và C2 = {C, D}
23
4.4. PHÂN CỤM VỚI GIẢI THUẬT HAC
(HAC - Hierarchical Agglomerative Clustering)
4.4.1. Nội dung giải thuật HAC
Tích tụ dần “từ dưới lên” (Bottom-Up)
Tư tưởng giải thuật:
Ban đầu, mỗi đối tượng (bản ghi) dữ liệu được coi là một cụm.
Từng bước kết hợp các cụm đã có thành các cụm lớn hơn với yêu cầu là khoảng cách giữa các đối tượng trong nội bộ cụm là nhỏ.
Dừng thuật toán khi đã đạt số lượng cụm mong muốn, hoặc chỉ còn một cụm duy nhất chứa tất cả các đối tượng hoặc thỏa mãn điều kiện dừng nào đó.
24
G = {{r} | r ∈ D}; //Khởi tạo G là tập các cụm chỉ gồm 1 đối tượng
Nếu |G| = k thì dừng thuật toán; //Đã đạt số lượng cụm mong muốn
Tìm hai cụm Si , Sj ∈ G có khoảng cách d(Si, Sj) là nhỏ nhất;
Nếu d(Si, Sj) > do thì dừng thuật toán; //Khoảng cách 2 cụm gần nhất đã lớn hơn ngưỡng cho phép
G = G{Si, Sj}; //Loại bỏ 2 cụm Si ,Sj khỏi tập các cụm
S = Si ∪ Sj; //Ghép Si, Sj thành cụm mới S
G = G ∪ {S}; //Kết nạp cụm mới vào G
Nhảy về bước 2.
G: tập các cụm.
D: tập các đối tượng (bản ghi) dữ liệu cần phân cụm.
k: số lượng cụm mong muốn.
do: ngưỡng khoảng cách giữa 2 cụm.
25
4.4.2. Độ đo “khoảng cách” giữa 02 cụm
A. Độ đo khoảng cách gần nhất (single-link)
Khoảng cách giữa 02 cụm được xác định là khoảng cách giữa 02 phần tử “gần” nhau nhất của 02 cụm đó:
S1
S2
26
4.4.2. Độ đo “khoảng cách” giữa 02 cụm
B. Độ đo khoảng cách xa nhất (complete-link)
Khoảng cách giữa 02 cụm được xác định là khoảng cách giữa 02 phần tử “xa” nhau nhất của 02 cụm đó:
S1
S2
27
4.4.2. Độ đo “khoảng cách” giữa 02 cụm
C. Độ đo khoảng cách trọng tâm (centroid-link)
Khoảng cách giữa 02 cụm được xác định là khoảng cách giữa 02 trọng tâm của 02 cụm đó:
S1
S2
m1
m2
28
4.4.2. Độ đo “khoảng cách” giữa 02 cụm
D. Độ đo khoảng cách trung bình nhóm (group-average)
Khoảng cách giữa 02 cụm được xác định là khoảng cách trung bình giữa các phần tử thuộc về 02 cụm đó:
S1
S2
29
Ví dụ: Cho tập dữ liệu D gồm các bản ghi:
Xét 2 cụm dữ liệu C1 = {r1, r2}, C2 = {r3, r4, r5}. Xác định khoảng cách d(C1,C2) giữa 2 cụm dựa trên các độ đo khác nhau.
30
Ma trận khoảng cách:
Nếu sử dụng single-link:
d(C1, C2) = d(r2, r4) = 2
Nếu sử dụng complete-link:
d(C1, C2) = d(r1, r3) = d(r1,r5) = 4
Nếu sử dụng group-average-link:
d(C1, C2) = 19/6 = 3.17
Nếu sử dụng centroid-link:
31
4.4.2. Độ đo “khoảng cách” giữa 02 cụm
E. Nhận xét về các độ đo
Với độ đo single-link:
Mang tính chất cục bộ: Chỉ quan tâm đến những vùng mà ở đó có phần tử của 2 cụm gần nhau nhất, không quan tâm đến các phần tử khác trong cụm cũng như cấu trúc tổng thể của các cụm.
Chất lượng phân cụm kém khi chỉ có 2 phân tử trong 2 cụm là rất gần nhau trong khi các phần tử khác ở phân tán rất xa nhau.
Với độ đo complete-link:
Khoảng cách 2 cụm dựa trên khoảng cách 2 phần tử xa nhau nhất ⟹ Việc ghép 2 cụm sẽ tạo ra cụm mới có đường kính nhỏ nhất.
Chất lượng phân cụm kém khi 2 phần tử trong 2 cụm ở rất xa nhau nhưng thực tế trọng tâm 2 cụm lại ở rất gần nhau.
32
Với độ đo group-average:
Tính toán khoảng cách của 2 cụm dựa trên khoảng cách của toàn bộ các cặp phần tử trong 2 cụm chứ không chỉ dựa trên một cặp phần tử duy nhất ⟹ tránh được nhược điểm của single-link và complete-link.
Với độ đo centroid-link:
Khắc phục được nhược điểm của single/complete-link.
Vẫn có nhược điểm là khoảng cách giữa các cụm khi từ đi mức dưới lên mức trên của cây phân cấp có thể là không tăng dần (do trong tâm các cụm ở mức cao nhiều khi gần nhau hơn các cụm ở mức dưới) ⟹ Trái với giả thiết về độ kết dính “Các cụm nhỏ thường có độ kết dính cao hơn các cụm có kích thước lớn hơn”.
33
Ví dụ: Cho tập dữ liệu gồm các đối tượng với 02 thuộc tính X1, X2 như sau:
Áp dụng giải thuật HAC hãy phân chia tập dữ liệu trên thành 02 cụm. Biết khoảng cách giữa 02 đối tượng được đo bằng độ đo Manhattan và khoảng cách giữa 02 cụm sử dụng độ đo single-link.
34
Ghép {3,4} với {5} thu được 02 cụm là {1,2} và {3,4,5}
Đã đạt số lượng cụm cần thiết. Kết thúc thuật toán
35
1
2
3
4
5
{3, 4}
{3, 4, 5}
{1, 2}
36
4.5. SO SÁNH GIẢI THUẬT K-MEANS VÀ HAC
37
4.6. PHÂN CỤM DỮ LIỆU VỚI PHẦN MỀM WEKA
Khởi động phần mềm Weka, chọn Explorer:
38
Chọn tập tin dữ liệu sử dụng
39
Chọn loại tập tin dữ liệu sử dụng (định dạng .csv hoặc .Arff)
Chọn tên tập tin và nạp dữ liệu vào hệ thống
40
41
Chọn chức năng “Phân cụm dữ liệu” (cluster)
42
Chọn giải thuật sử dụng để phân cụm
(K-Means hoặc HAC)
Click để thiết lập các thông số
cho giải thuật
43
Nếu lựa chọn giải thuật K-Means:
Chọn độ đo khoảng cách
(độ đo Euclide hoặc Mahattant)
Có cho phép thay thế các giá trị thiếu vắng bằng giá trị trung bình hay không
Số lần lặp tối đa
(Điều kiện dừng)
Số lượng cụm mong muốn
Giá trị cho phép khởi tạo ngẫu nhiên các trọng tâm ban đầu của các cụm
44
Nếu lựa chọn giải thuật HAC (Hierarchical Clustering):
Chọn độ đo khoảng cách đối tượng (độ đo Euclide hoặc Mahattant)
Chọn độ đo khoảng cách cụm (Single, Complete, Group-average, Centroid)
Số lượng cụm mong muốn
45
Kết quả phân cụm nếu lựa chọn giải thuật K-Means:
Tọa độ trọng tâm các cụm sau khi hoàn thành phân cụm
Phân bố số lượng phần tử trong các cụm
46
Kết quả phân cụm nếu lựa chọn giải thuật HAC:
Kết quả phân cụm
Phân bố số lượng phần tử trong các cụm
Q & A
47
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Nguyễn Vương Thịnh
Dung lượng: |
Lượt tài: 1
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)