Tải bản đầy đủ (.doc) (28 trang)

Tiểu luận PHƯƠNG PHÁP PHÂN CỤM DỮ LIỆU

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (605.4 KB, 28 trang )

Báo cáo chuyên đề - Khai Phá Dữ Liệu và Kho Dữ liệu GVHD: PGS.TS.Đỗ Phúc
HVTH: Vương Thị Ngọc Ẩn- CH1101063 Trang:
1
ĐẠI HỌC QUỐC GIA
ĐẠI HỌC CÔNG NGHỆ THÔNG TIN TP. HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐẠO TẠO THẠC SĨ CNTT KHÓA 6
________ ________
BÁO CÁO CHUYÊN ĐỀ
KHAI PHÁ DỮ LIỆU VÀ KHO DỮ LIỆU
Đề tài:
PHƯƠNG PHÁP PHÂN CỤM DỮ LIỆU
GVHD: PGS.TS. ĐỖ PHÚC
SVTH: VƯƠNG THỊ NGỌC ẨN
MAHV: CH1101063

TP. HCM, 11/2012
Báo cáo chuyên đề - Khai Phá Dữ Liệu và Kho Dữ liệu GVHD: PGS.TS.Đỗ Phúc
MỤC LỤC
CHƯƠNG TRÌNH ĐẠO TẠO THẠC SĨ CNTT KHÓA 6 1
TP. HCM, 11/2012 1
CHƯƠNG 1. TỔNG QUAN LÝ THUYẾT VỀ PHÂN CỤM DỮ LIỆU 1
1. Kỹ thuật phân cụm dữ liệu (Clustering): 1
2. Phân cụm dữ liệu là gì? 1
3. Một số ứng dụng tiêu biểu của phân cụm: 1
CHƯƠNG 2. TÌM HIỂU MỘT SỐ THUẬT TOÁN PHÂN CỤM DỮ LIỆU 3
1.Thuật toán K-Means 3
2.Thuật toán K-Medoids 7
3.Thuật toán K-Nearest Neighbors (KNN) 10
4.Thuật toán Fuzzy C-Mean(FCM) 14
5. Tối ưu hóa các tham số cho thuật toán phân nhóm FUZZY C-MEAN 17
22


6. Tối ưu hóa trọng số cho thuật toán phân lớp KNN 23
KẾT LUẬN, HƯỚNG PHÁT TRIỂN CỦA ĐỒ ÁN 25
1.Kết quả đạt được 25
2.Chưa đạt được: 25
TÀI LIỆU THAM KHẢO 25
HVTH: Vương Thị Ngọc Ẩn- CH1101063 Trang:
2
Báo cáo chuyên đề - Khai Phá Dữ Liệu và Kho Dữ liệu GVHD: PGS.TS.Đỗ Phúc
MỞ ĐẦU
Ngày nay sự phát triển mạnh mẽ của CNTT đã làm cho khả năng thu thập và lưu trữ
thông tin của các hệ thống thông tin tăng nhanh. Bên cạnh đó, các hoạt động sản xuất,
kinh doanh và nhiều lĩnh vực hoạt động khác đã tạo ra cho chúng ta một lượng dữ liệu
lưu trữ khổng lồ. Hàng triệu CSDL đã được sử dụng trong các hoạt động sản xuất, kinh
doanh, quản lý…trong đó có nhiều CSDL cực lớn.
Để đáp ứng được yêu cầu này, cấp thiết phải có những kỹ thuật và công cụ mới để
chuyển đổi dữ liệu khổng lồ này thành tri thức có ích. Từ đó các kỹ thuật khai phá dữ liệu
đã trở thành một lĩnh vực quan tâm hàng đầu của ngành CNTT hiện nay. Khai phá dữ
liệu đang được áp dụng một cách rộng rãi trong nhiều lĩnh vực khác nhau.
Bài thu hoạch này trình bày một số kỹ thuật phân cụm dữ liệu, chuẩn hóa tham số
cho một số thuật toán.
Em xin chân thành cảm ơn PGS.TS. Đỗ Phúc đã tận tình giảng dạy, truyền đạt những
kiến thức quý báu và hướng dẫn về nguồn tài liệu tham khảo để em có thể hoàn thành
môn học này.
Em xin chân thành cảm ơn!
HVTH: Vương Thị Ngọc Ẩn- CH1101063 Trang:
3
Báo cáo chuyên đề - Khai Phá Dữ Liệu và Kho Dữ liệu GVHD: PGS.TS.Đỗ Phúc
CHƯƠNG 1. TỔNG QUAN LÝ THUYẾT VỀ PHÂN CỤM DỮ LIỆU
1. Kỹ thuật phân cụm dữ liệu (Clustering):
- Phân cụm dữ liệu là phương pháp phân hoạch tập hợp dữ liệu thành nhiều tập

con C sao cho mỗi tập con c ⊂ C chứa các phầntử có những tính chất giống
nhau theo tiêu chuẩn nào đó, mỗi tập con c được gọi là một cụm.
- Như vậy quá trình phân cụm là một quá trình phân các phần tử q ∈ Q vào trong
các cụm c ⊂C
- Nguyên lý thường được dùng để phân cụm dữ liệu là nguyên tắc cực tiểu
khoảng cách (thường là khoảng cách Euclide).
2. Phân cụm dữ liệu là gì?
- Phân cụm là một tiến trình gom nhóm các vector đặc trưng vào trong các cụm.
- Phân các đối tượng dữ liệu tương tự với một đối tượng khác trong cùng cụm.
- Phân các đối tượng dữ liệu không tương tự với các đối tượng trong cụm khác.
- Mục tiêu của phân cụm : để gom tập các đối tượng thành các nhóm.
- Phân cụm dữ liệu là hình thức học không giám sát trong đó các mẫu học chưa
được gán nhãn.
- Các điểm dữ liệu trong các cụm khác nhau có độ tương tự thấp hơn các điểm
nằm trong cùng một cụm.
3. Một số ứng dụng tiêu biểu của phân cụm:
- Xem xét phân bố dữ liệu
- Tiền xử lý cho các thuật toán khác.
- Khám phá thói quen và nhu cầu của khách hàng để có phương pháp tiếp thị
thích hợp.
- Phân loại đất theo công năng hoặc thực tế sử dụng đề có chính sách quy hoạch
phù hợp
- Phân loại nhà theo vị trí, giá trị
- Phân loại khách hàng để có chính sách bảo hiểm hợp lý.
- Phân loại bệnh nhân.
• Một số phương pháp phân cụm tốt nếu đạt được tính chất sau:
- Có độ tương tự cao trong cùng cụm.
- Có độ tương tự thấp giữa các cụm
- Có khả năng phát hiện các mẫu ẩn.
- Có khả năng làm việc hiệu quả với lượng dữ liệu lớn.

- Có khả năng làm việc với nhiều loại dữ liệu khác nhau.
HVTH: Vương Thị Ngọc Ẩn- CH1101063 Trang:
1
Báo cáo chuyên đề - Khai Phá Dữ Liệu và Kho Dữ liệu GVHD: PGS.TS.Đỗ Phúc
- Có khả năng khám phá ra các cụm có phân bố theo các dạngkhác nhau.
- Yêu cầu tối thiểu tri thức lĩnh vực nhằm xác định các tham biến nhập.
- Có khả năng làm việc với nhiễu và mẫu cá biệt.
- Không bị ảnh hưởng bởi thứ tự nhập của dữ liệu.
- Làm việc tốt trên cơ sở dữ liệu có số chiều cao.
- Chấp nhận các ràng buộc do người dùng chỉ định.
- Có thể hiểu và sử dụng được kết quả gom cụm
• Dựa trên cách tiếp cận và thuật toán sử dụng, người ta phân các thuật toán phân cụm
theo các phương pháp chính sau:
a.

Thuật

toán

phân

cụm

dữ

liệu

dựa

vào


phân

cụm

phân

cấp
Thuật toán BIRCH
Thuật toán CURE
Thuật toán ANGNES
Thuật toán DIANA
Thuật toán ROCK
Thuật toán Chameleon
b.

Thuật

toán

phân

cụm

dữ

liệu

mờ
Thuật toán FCM

Thuật toán εFCM
c.

Thuật

toán

phân

cụm

dữ

liệu

dựa

vào

cụm

trung

tâm
Thuật toán K – MEANS
Thuật toán K- MEDOIDS
Thuật toán K-Nearest Neighbors (KNN
Thuật toán PAM
Thuật toán CLARA
Thuật toán CLARANS

d.

Thuật

toán

phân

cụm

dữ

liệu

dựa

vào

tìm

kiếm
Thuật toán di truyền (GAS)
J- Means
e.

Thuật

toán

phân


cụm

dữ

liệu

dựa

vào
HVTH: Vương Thị Ngọc Ẩn- CH1101063 Trang:
2
Báo cáo chuyên đề - Khai Phá Dữ Liệu và Kho Dữ liệu GVHD: PGS.TS.Đỗ Phúc
STING
Thuật toán CLIQUE
Thuật toán WaveCluster
f.

Thuật

toán

phân

cụm

dữ

liệu


dựa

vào

mật

độ
Thuật toán DBSCAN
Thuật toán OPTICS
Thuật toán DENCLUDE
g.

Thuật

toán

phân

cụm

dữ

liệu

dựa

trên

mẫu
Thuật toán EM

Thuật toán COBWEB
CHƯƠNG 2. TÌM HIỂU MỘT SỐ THUẬT TOÁN PHÂN CỤM DỮ LIỆU
1. Thuật toán K-Means
Đây là thuật toán nổi tiếng và được sử dụng nhiều nhất trong hướng tiếp cận
phân nhóm phân hoạch. Thuật toán này có nhiều biến thể khác nhau nhưng được
đưa ra đầu tiên bởi J.B MacQueen vào năm 1967. Đầu vào của thuật toán này là
một tập gồm n mẫu và một số nguyên K. Cần phân n đối tượng này thành K cluster
sao cho sự giống nhau giữa các mẫu trong cùng cluster là cao hơn là giữa các đối
tượng khác cluster.
Tư tưởng của thuật toán này như sau: Đầu tiên chọn ngẫu nhiên K mẫu, mỗi
mẫu này coi như biểu diễn 1 cluster, như vậy lúc này trong mỗi cluster thì đối mẫu
đó cũng là tâm của cluster (hay còn gọi là nhân). Các mẫu còn lại được gán vào
một nhóm nào đó trong K nhóm đã có sao cho tổng khoảng cách từ nhóm mẫu đó
đến tâm của nhóm là nhỏ nhất. Sau đó tính lại tâm cho các nhóm và lặp lại quá
trình đó cho đến khi hàm tiêu chuẩn hội tụ. Hàm tiêu chuẩn hay được dùng nhất là
hàm tiêu chuẩn sai-số vuông. Thuật toán này có thể áp dụng được đối với CSDL
đa chiều, nhưng để dễ minh họa chúng tôi mô tả thuật toán trên dữ liệu hai chiều.
Phát biểu bài toán:
• Input
Tập các đối tượng X = {x
i
| i = 1, 2, …, N},
HVTH: Vương Thị Ngọc Ẩn- CH1101063 Trang:
3
Báo cáo chuyên đề - Khai Phá Dữ Liệu và Kho Dữ liệu GVHD: PGS.TS.Đỗ Phúc
Số cụm: K
• Output
Các cụm C
i
( i = 1 ÷ K) tách rời và hàm tiêu chuẩn E đạt giá trị tối thiểu.

Khái quát về thuật toán
• Thuật toán hoạt động trên 1 tập vectơ d chiều, tập dữ liệu X gồm N phần tử:
X = {x
i
| i = 1, 2, …, N}
• K-Mean lặp lại nhiều lần quá trình:
Gán dữ liệu.
Cập nhật lại vị trí trọng tâm.
• Quá trình lặp dừng lại khi trọng tâm hội tụ và mỗi đối tượng là 1 bộ phận của 1
cụm.
• Hàm đo độ tương tự sử dụng khoảng cách Euclidean
E =
Trong đó c
j
là trọng tâm của cụm C
j


Hàm trên không âm, giảm khi có 1 sự thay đổi trong 1 trong 2 bước: gán dữ
liệu và định lại vị trí tâm.
Các bước của thuật toán
• Bước 1 - Khởi tạo
Chọn K trọng tâm {c
i
} (i = 1÷K).
• Bước 2 - Tính toán khoảng cách
• Bước 3 - Cập nhật lại trọng tâm
• Bước 4 – Điều kiện dừng
Lặp lại các bước 2 và 3 cho tới khi không có sự thay đổi trọng tâm của
cụm.

HVTH: Vương Thị Ngọc Ẩn- CH1101063 Trang:
2
1
(|| || )
i j
N
i j
i x C
x c
= ∈

∑ ∑
4
Báo cáo chuyên đề - Khai Phá Dữ Liệu và Kho Dữ liệu GVHD: PGS.TS.Đỗ Phúc
Ví dụ minh họa
Đối tượng Thuộc tính 1 (X) Thuộc tính 2 (Y)
A 1 1
B 2 1
C 4 3
D 5 4
 Bước 1: Khởi tạo
Chọn 2 trọng tâm ban đầu:
c
1
(1,1) ≡ A và c
2
(2,1) ≡ B, thuộc 2 cụm 1 và 2
HVTH: Vương Thị Ngọc Ẩn- CH1101063 Trang:
5
Báo cáo chuyên đề - Khai Phá Dữ Liệu và Kho Dữ liệu GVHD: PGS.TS.Đỗ Phúc

 Bước 2: Tính toán khoảng cách
 d(C, c
1
) = (4-1)
2
+(3-1)
2
= 13
d(C, c
2
) = (4-2)
2
+(3-1)
2
= 8
d(C, c
1
) > d(C, c
2
) => C thuộc cụm 2



d(D, c
1
) = (5-1)
2
+(4-1)
2
= 25

d(D, c
2
) = (5-2)
2
+(4-1)
2
= 18
d(D,c
1
) > d(D, c
2
) => D thuộc cụm 2
 Bước 3: Cập nhật lại vị trí trọng tâm
 Trọng tâm cụm 1 c
1
≡ A (1, 1)
 Trọng tâm cụm 2 c
2
(x,y) = ((2+4+5)/3,(1+3+4)/3)
 Bước 4-1: Lặp lại bước 2 – Tính toán khoảng cách
 d(A, c
1
) = 0 < d(A, c
2
) = 9.89
A thuộc cụm 1



d(B, c

1
) = 1 < d(B, c
2
) = 5.56
B thuộc cụm 1
 d(C, c
1
) = 13 > d(C, c
2
) = 0.22
C thuộc cụm 2
 d(D, c
1
) = 25 > d(D, c
2
) = 3.56
D thuộc cụm 2
 Bước 4-2: Lặp lại bước 3-Cập nhật trọng tâm
c
1
= (3/2, 1) và c
2
= (9/2, 7/2)
 Bước 4-3: Lặp lại bước 2
 d(A, c
1
) = 0.25 < d(A, c
2
) = 18.5
A thuộc cụm 1

 d(B, c
1
) = 0.25 < d(B, c
2
) = 12.5
B thuộc cụm 1
 d(C, c
1
) = 10.25 < d(C, c
2
) = 0.5
C thuộc cụm 2
 d(D, c
1
) = 21.25 > d(D, c
2
) = 0.5
D thuộc cụm 2
HVTH: Vương Thị Ngọc Ẩn- CH1101063 Trang:
6
Báo cáo chuyên đề - Khai Phá Dữ Liệu và Kho Dữ liệu GVHD: PGS.TS.Đỗ Phúc
Đánh giá thuật toán:
- Ưu điểm:
• Độ phức tạp: O(K.N.l) với l: số lần lặp
• Có khả năng mở rộng, có thể dễ dàng sửa đổi với những dữ liệu mới.
• Bảo đảm hội tụ sau l số bước lặp hữu hạn.
• Luôn có K cụm dữ liệu
• Luôn có ít nhất 1 điểm dữ liệu trong 1 cụm dữ liệu.
• Các cụm không phân cấp và không bị chồng chéo dữ liệu lên nhau.
• Mọi thành viên của 1 cụm là gần với chính cụm đó hơn bất cứ 1 cụm nào

khác.
- Nhược điểm:
• Không có khả năng tìm ra các cụm không lồi hoặc các cụm có hình dạng
phức tạp.
• Khó khăn trong việc xác định các trọng tâm cụm ban đầu
- Chọn ngẫu nhiên các trung tâm cụm lúc khởi tạo
- Độ hội tụ của thuật toán phụ thuộc vào việc khởi tạo các vector trung tâm
cụm
• Khó để chọn ra được số lượng cụm tối ưu ngay từ đầu, mà phải qua nhiều
lần thử để tìm ra được số lượng cụm tối ưu.
• Rất nhạy cảm với nhiễu và các phần tử ngoại lai trong dữ liệu.
• Không phải lúc nào mỗi đối tượng cũng chỉ thuộc về 1 cụm, chỉ phù hợp
với đường biên giữa các cụm rõ.
2. Thuật toán K-Medoids
Thuật toán K-Means nhạy cảm đối với dữ liệu có nhiễu vì tâm của một
nhóm lại không phải là một đối tượng trong nhóm. Thay vì lấy giá trị trung bình
của các đối tượng trong cụm làm tâm, thuật toán k-medoids lấy một đối tượng
trong cụm làm tâm của cụm (gọi là đối tượng tâm). Thuật toán này vẫn dựa trên
nguyên tắc làm cực tiểu sự khác nhau giữa các đối tượng trong cùng một cụm.
Ý tưởng chính của thuật toán k-medoids như sau:
HVTH: Vương Thị Ngọc Ẩn- CH1101063 Trang:
7
Báo cáo chuyên đề - Khai Phá Dữ Liệu và Kho Dữ liệu GVHD: PGS.TS.Đỗ Phúc
Để tìm ra k cụm với n đối tượng thì k-medoids chọn ngẫu nhiên k đối tượng
vào k cụm, coi mỗi đối tượng này là tâm của cụm. Phân bổ các đối tượng còn lại
vào cụm mà sự khác nhau của nó với đối tượng tâm của cụm là ít nhất (gọi là gần
nhất). Sau đó lặp lại quá trình: Thay đổi đối tượng tâm của mỗi cụm sao cho chất
lượng của cụm được cải thiện. Chất lượng của cụm được lượng giá bởi một hàm
đo sự khác nhau giữa một đối tượng và đối tượng tâm của cụm chứa nó. Quá trình
lặp cho đến khi không còn sự thay đổi nào về lực lượng cũng như hình dạng của

các cụm.
Để chọn một đối tượng không là đối tượng tâm O
random
thay thế tốt cho một
đối tượng tâm O
j
thì mỗi đối tượng p xét theo 4 trường hợp sau đây:
Trường hợp 1: p đang thuộc vào cụm có tâm là O
j
(gọi là cụm O
j
). Nếu O
j
được thay
thế bởi O
random
và p gần nhất với O
i
(i≠j) thì p được gán lại vào O
i
Trường hợp 2: p đang thuộc vào O
j
. Nếu O
j
được thay thế bởi O
random
và p gần nhất
với O
random
thì p được gán lại vào O

random
.
Trường hợp 3: p đang thuộc vào O
i
(i≠j). Nếu O
j
được thay thế bởi O
random
và p vẫn
gần nhất với O
i
thì không thay đổi gì cả. Tức là p vẫn thuộc O
i
.
Trường hợp 4: p đang thuộc vào O
i
(i≠j). Nếu O
j
được thay thế bở O
random
và p gần
nhất với O
random
thì p được gán lại vào O
random
.
Hình minh họa bốn trường hợp trên:
Bốn trường hợp đối với điểm p
HVTH: Vương Thị Ngọc Ẩn- CH1101063 Trang:
8

Báo cáo chuyên đề - Khai Phá Dữ Liệu và Kho Dữ liệu GVHD: PGS.TS.Đỗ Phúc
Thuật toán k-medoid có thể được mô tả cụ thể như sau:
Input: Số nguyên k và CSDL gồm n đối tượng cần phân cụm.
Output: Một tập gồm k cụm mà tổng giá trị của sự khác nhau của tất cả các đối tượng
đến đối tượng tâm của nhóm chứa nó là nhỏ nhất.
Thuật toán:
Bước 1: Chọn k đối tượng bất kì vào k cụm. Coi mỗi đối tượng này là tâm của
nhóm.
Bước 2: Lặp
Bước 3: Gán mỗi đối tượng còn lại vào một cụm mà nó gần với đối tượng tâm của
cụm nhất.
Bước 4: Chọn ngẫu nhiên một đối tượng không là đối tượng tâm, O
random
.
Bước 5: Tính lại giá trị, S, đối với việc đổi O
j
với O
random
.
Bước 6: Nếu S<0 thì đổi O
j
với O
random
để tạo ra một tập với đối tượngtâm mới.
Bước 7: Đến khi không có sự thay đổi nào nữa thì dừng.
Ví dụ: Giả sử trong không gian hai chiều cho n = 10 điểm, như hình 13, cần chia thành k
=2 cụm. Các bước thực hiện của thuật toán k-medoids được chỉ ra trong hình 13:
HVTH: Vương Thị Ngọc Ẩn- CH1101063 Trang:
9
Báo cáo chuyên đề - Khai Phá Dữ Liệu và Kho Dữ liệu GVHD: PGS.TS.Đỗ Phúc

Các bước thực hiện của k-medoids
Đầu tiên chọn hai điểm bất kì vào hai cụm giả sử chọn điểm có màu xanh đậm trên
hình vẽ, sau đó xét các điểm còn lại và đưa chúng vào một trong hai cụm với điểm tâm
lần lượt là hai điểm đã chọn ban đầu. Tiếp theo chọn một điểm bất kì khác điểm tâm, giả
sử điểm có màu đỏ. Tính giá của phép chuyển đổi điểm tâm từ điểm màu xanh ban đầu
sang điểm màu đỏ. Nếu giá này chất lượng hơn thì coi điểm đỏ là tâm của cụm mới và
thực lặp lại quá trình đó cho đến khi không còn sự thay đổi nào.
Thuật toán k-medoids mạnh hơn thuật toán k-means trong các trường hợp dữ liệu có
nhiễu vì k-medoids chịu ảnh hưởng ít hơn của nhiễu và các giá trị chênh lệnh so với giá
trị trung bình. Tuy nhiên cả hai thuật toán này đều yêu cầu đưa vào số lượng cụm k.
3. Thuật toán K-Nearest Neighbors (KNN)
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 giancácvector
X∈
R
n


x

=

(
x

1
,
x
2
,…,
x
n
),

trong

đó

x
i
(∈
R
)



một

số

thực
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 (a discrete-valued target function)
Đầ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 dự đoán/hồi quy (prediction/regression)
Hàm mục tiêu có giá trị liên tục (a continuous-valued target function)
Đầu ra của hệ thống là một giá trị số thực
Ví dụ bài toán phân lớp:
Xét 1 láng giềng gần nhất→ Gán
z
vào lớp
c2
Xét 3 láng giềng gần nhất→ Gán
z
vào lớp
c1
Xét 5 láng giềng gần nhất → Gán
z
vào lớp
c1
HVTH: Vương Thị Ngọc Ẩn- CH1101063 Trang:
10
Báo cáo chuyên đề - Khai Phá Dữ Liệu và Kho Dữ liệu GVHD: PGS.TS.Đỗ Phúc
Giải thuật phân lớp K-NN:
Mỗi ví dụ học
x
được biểu diễn bởi 2 thành phần:





tả

của



dụ:

x
=
(x
1
,
x
2
,…,
x
n
)
,

trong

đó

x
i


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

z
• Xác định tập

NB(z)
– các láng giềng gần nhất của
z



Gồm
k


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)
Một hay nhiều láng giềng gần nhất?
Việc phân lớp (hay dự đoán) chỉ dựa trên duy nhất một láng giềng gần nhất (là ví dụ học
gần nhât với ví dụ cần phân lớp/dự đoán) thường không chính xác.
HVTH: Vương Thị Ngọc Ẩn- CH1101063 Trang:
11
p


p


Báo cáo chuyên đề - Khai Phá Dữ Liệu và Kho Dữ liệu GVHD: PGS.TS.Đỗ Phúc


Nếu ví dụ học này là một ví dụ bất thường, không điển hình (anoutlier) rất khác so
với các ví dụ khác


Nếu ví dụ học này có nhãn lớp (giá trị đầu ra) sai – do lỗi trong quá trình thu thập (xây
dựng) tập dữ liêu5.
Thường xét k (>1) các ví dụ học (các láng giềng) gần nhất với ví dụ cần phân

lớp/dự đoán
Đối với bài toán phân lớp có 2 lớp, k thường được chọn là một số lẻ, để tránh cân
bằng về tỷ lệ các ví dụ giữa 2 lớp


Ví dụ:

k
= 3, 5, 7,…
Hàm tính khoảng cách:
Hàm tính khoảng cách
d


Đó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 khóa thứ i)
Các hàm tính khoảng cách hình học (Geometry distance functions)


Hàm Minkowski

(
p
-norm):


Hàm Manhattan

(
p
=1):
HVTH: Vương Thị Ngọc Ẩn- CH1101063 Trang:
12
Báo cáo chuyên đề - Khai Phá Dữ Liệu và Kho Dữ liệu GVHD: PGS.TS.Đỗ Phúc



Hàm Euclid

(
p
=2):


Hàm Chebyshev

(
p
=∞ ):
Hàm tính khoảng cách Hamming:
Đối với các thuộc tính đầu vào là kiểu nhị phân ({0,1})
Ví dụ: x=(0,10,1,1)
Hàm tính khoảng cách Hamming:
Ưu điểm:
HVTH: Vương Thị Ngọc Ẩn- CH1101063 Trang:
13
Báo cáo chuyên đề - Khai Phá Dữ Liệu và Kho Dữ liệu GVHD: PGS.TS.Đỗ Phúc
Phương pháp k-NN có ưu điểm huấn luyện rất nhanh, có thể học các hàm mục tiêu phức
tạp và không làm mất thông tin.
Có khả năng xử lý nhiễu cao
Nhược điểm:
Truy vấn chậm và dễ bị ảnh hưởng bởi những thuộc tính không liên quan.
Độ đo khoảng cách
Trong phương pháp k láng giềng gần nhất, vấn đề chọn lựa độ đo khoảng cách phù hợp,
phản ánh đúng bản chất của bài toán là điều rất quan trọng.

4. Thuật toán Fuzzy C-Mean(FCM)
• Gom cụm mờ đóng vai trò quan trọng trong các lĩnh vực nhận dạng (pattern
recognition) và định dạng mô hình mờ. Một phương pháp phân cụm được sử
dụng rộng rãi nhất hiện nay là thuật toán Fuzzy C-mean (FCM). Nó sử dụng
mối tương quan khoảng cách để tính toán các trọng số mờ.
- Chung chiến lược phân cụm với K-mean.
- Nếu K-mean là phân cụm dữ liệu cứng (1 điểm dữ liệu chỉ thuộc về 1 cụm) thì
FCM là phân cụm dữ liệu mờ (1 điểm dữ liệu có thể thuộc về nhiều hơn 1 cụm
với 1 xác suất nhất định).
- Thêm yếu tố quan hệ giữa các phần tử và các cụm dữ liệu thông qua các trọng
số trong ma trận biểu biễn bậc của các thành viên với 1 cụm.
- FCM khắc phục được các cụm dữ liệu chồng nhau trên các tập dữ liệu có kích
thước lớn hơn, nhiều chiều và nhiều nhiễu, song vẫn nhạy cảm với nhiễu và các
phần tử ngoại lai.
• Nguyên tắc của thuật toán:
- Mỗi phần tử q ∈V ban đầu được gán cho một tập trọng số Wqk, trong đó
Wqk cho biết khả năng q thuộc về cụm k, Σ(k=1,K)Wqk=1. Có nhiều cách
tính trọng số Wqk khác nhau, trong đó Wqk=1/Dqk thường được sử dụng
nhất (Dqk là khoảng cách từ q đến trọng tâm của cụm k).
- Trong quá trình gom cụm trọng số này có thể được cập nhật ở mỗi bước lặp
khi trọng tâm của cụm bị thay đổi.
- Sau khi kết thúc quá trình gom cụm, một cụm không có mẫn nào sẽ bị loại,
do đó số cụm tìm được thường không biết trước.
• Thuật toán fuzzy C-mean gồm các bước:
Bước 0: Khởi tạo các giá trị K: số cụm, Imax: số lần lặp, p: hệ số được sử
dụng để tính trọng số (p>1).
HVTH: Vương Thị Ngọc Ẩn- CH1101063 Trang:
14
Báo cáo chuyên đề - Khai Phá Dữ Liệu và Kho Dữ liệu GVHD: PGS.TS.Đỗ Phúc
Bước 1: Khởi tạo trọng số cho các mẫu.

Bước 2: Chuẩn hóa các trọng số khởi tạo trong K.
Bước 3: Chuẩn hóa các trọng số trong Q.
Bước 4: Tính trọng tâm mới của mẫu.
Bước 5: Tính trọng số mới.
Bước 6: Nếu I < Imax quay lại bước 3.
Bước 7: Phân chia các mẫu vào trong các cụm.
Bước 8: Khử bỏ các cụm không có mẫu nào.
Bước 9: Tính toán trọng tâm của các cụm.
• Mã giả thuật toán FCM (Fuzzy C-Mean)
K là số cụm
Imax là bước lặp của thuật toán C-Mean
p là trọng số
Bước 1:
for k = 0 to K-1
for q = 0 to Q-1
w[q,k] = random();
Bước 2:
for q = 0 to Q-1
sum = 0.0;
for k = 0 to K-1
sum = sum + w[q,k];
for k = 0 to K-1
w[q,k] = w[q,k]/sum;
Bước 3:
for k = 0 to K-1
min = 99999.0;
max =0.0;
for q = 0 to Q-1
if (w[q,k] > max)
max = w[q,k];

if (w[q,k] < min)
HVTH: Vương Thị Ngọc Ẩn- CH1101063 Trang:
15
Báo cáo chuyên đề - Khai Phá Dữ Liệu và Kho Dữ liệu GVHD: PGS.TS.Đỗ Phúc
min = w[q,k];
sum = 0.0
for q = 0 to Q-1
sum = sum + (w[q,k] – min) /( max –min);
for q = 0 to Q-1
w[q,k] = w[q,k]/sum;
Bước 4:
for k = 0 to K-1
for n = 0 to N-1
sum = 0.0;
for q = 0 to Q-1
sum = sum + w[q,k] x[n,q];
z[n,k] = sum;
Bước 5:
for q = 0 to Q-1
sum = 0.0
for k = 0 to K-1
D[q,k] =0.0;
for n = 0 to N-1
D[q,k] = D[q,k] + (x[n,q] – z[n,k])
2
;
sum = sum + (1/(1 + D[q,k]))
1/(p-1)
;
for k = 0 to K-1

W[q,k] = (1/(1 + D[q,k]))1/(p-1)/sum;
Bước 6 :
I = I + 1
If I < Imax
Goto step 3;
Bước 7:
for q = 0 to Q-1
maxWeight = 0.0;
for k = 0 to K-1
if maxWeight < weight[q,k];
HVTH: Vương Thị Ngọc Ẩn- CH1101063 Trang:
16
Báo cáo chuyên đề - Khai Phá Dữ Liệu và Kho Dữ liệu GVHD: PGS.TS.Đỗ Phúc
maxWeight = weight[q,k];
kmax = k;
cluster[q] = k;
Bước 8:
eliminate(0);
Bước 9:
for k = 1 to K do
fuzzyweights();
σ2
k
= variance();
κ = Xie-Beni();
• Nhận xét thuật toán FCM (F-C-Mean) :
Ưu điểm:
- Dễ thực hiện Fuzzy C-Mean phù hợp với các vấn đề nhận dạng trong không
gian đa chiều.
- Có khả năng tìm được tối ưu toàn cục.

- Hiệu năng khá tốt, tương đương K-MEANS. Độ phức tạp là O(tkn)
Trong đó:
n: Số điểm trong không gian dữ liệu.
k: Số cụm cần phân hoạch.
t: Số lần lặp (t là khá nhỏ so với n).
Nhược điểm:
-Các công thức tính toán khá phức tạp.
- Tốc độ hội tụ tùy thuộc vào trạng thái ban đầu của ma trận thành viên U và
tham số mờ hoá m.
5. Tối ưu hóa các tham số cho thuật toán phân nhóm FUZZY C-MEAN
Fuzzy C-Means Algorithm (FCM):
Là một cách gom nhóm giúp cho một phần dữ liệu có thể thuộc về hai hoặc nhiều nhóm.
Được phát triển bởi Dunn 1973 và được Bezdek cải tiến năm 1981. Dựa trên việc tối
thiểu hóa hàm mục tiêu:
HVTH: Vương Thị Ngọc Ẩn- CH1101063 Trang:
17
Báo cáo chuyên đề - Khai Phá Dữ Liệu và Kho Dữ liệu GVHD: PGS.TS.Đỗ Phúc
J
m
= m

R, 1 ≤ m < ∞
Trong đó: u
ij
là độ thuộc của x
i
trong nhóm j, x
i
là dữ liệu được đánh giá thứ i, c
j

là thành
phần trung tâm của nhóm, và ||*|| là biểu thức chuẩn hóa giữa x
i
và c
j
.
Quá trình phân chia mờ (Fuzzy partitioning) được thực hiện bằng các lặp tối ưu hàm mục
tiêu, cập nhật độ thuộc u
ij
và các trung tâm nhóm c
j
theo công thức:
u
ij
= , c
j
=
Vòng lặp kết thúc khi <
ε
, 0 <
ε
< 1 là điều kiện dừng, k là số lần
lặp. Quá trình này sẽ hội tụ tại một tối thiểu cục bộ hoặc một điểm đèo (saddle) của J
m
.
Thuật toán bao gồm các bước:
1. Khởi tạo ma trận U = [u
ij
], U
(0)

2. Tại bước thứ k: Tính các vector trung tâm C
(k)
= [c
ij
] tương ứng với U
(k)
c
j
=
3. Cập nhật U
(k)
, U
(k+1)
u
ij
=
4. Nếu <
ε
thì dừng; ngược lại tiếp tục bước 2.
Ta có thể sử dụng công thức tính khoảng cách đơn giản:
HVTH: Vương Thị Ngọc Ẩn- CH1101063 Trang:
18
Báo cáo chuyên đề - Khai Phá Dữ Liệu và Kho Dữ liệu GVHD: PGS.TS.Đỗ Phúc
Trong đó: D là tổng số đặc trưng của mẫu
w
k
là trọng số của đặc trưng thứ k
Trong quá trình tính toán ta cần phải chuẩn hóa dữ liệu, có nhiều cách chuẩn hóa như:
X
norm

= (X–min)/(max-min)
X
norm
= X/max
X
norm
= (X/max)
α

Áp dụng giải thuật di truyền:
Trong thuật toán FCM ta cần ước lượng giá trị tối ưu cho các tham số:
 Tham số chuẩn hóa
α
.
 Hệ số mờ m.
 Tham số tính khoảng cách p.
 Các trọng số w của các đặc trưng.
Giới hạn giá trị cho các tham số này là:
Tham số Giới hạn
α

[0.1, 5.0]
m [1.1, 5.0]
p [1.0, 5.0]
w
1
… w
D
[0.0, 1.0]
HVTH: Vương Thị Ngọc Ẩn- CH1101063 Trang:

19
Báo cáo chuyên đề - Khai Phá Dữ Liệu và Kho Dữ liệu GVHD: PGS.TS.Đỗ Phúc
Biểu diễn nhiễm sắc thể (NST):
 Mỗi gene gồm 8 bit biểu diễn một tham số.
 Ví dụ nếu mẫu có 4 đặc trưng thì NST có chiều dài là 3x8 + 4x8 = 56 bit.
Hàm mục tiêu:
Trong đó:
 Z là vector có chiều dài N bao gồm các giá trị 1, 0 cho biết các mẫu được
phân nhóm đúng hay sai.
 µ là số lượng đặc trưng được chọn (số w > 0).
 χ là hằng số cho trước (chọn bằng D).
Lai tạo: hoán đổi vị trí của 2 tham số được chọn ngẫu nhiên từ 2 NST.
Đột biết: chọn ngẫu nhiên một tham số, thay đổi ngẫu nhiên giá trị của tham số này.
Hệ số lai: 0.6, hệ số đột biết: 0.3.
Kích thước quần thể: bằng 2xD.
Cài đặt và thực nghiệm:
Các Dataset sử dụng:
 Iris: 3 nhóm, 150 dòng, 4 đặc trưng.
 Wine: 3 nhóm, 178 dòng, 13 đặc trưng.
 Sonar: 2 nhóm, 208 dòng, 60 đặc trưng.
Test:
HVTH: Vương Thị Ngọc Ẩn- CH1101063 Trang:
20
Báo cáo chuyên đề - Khai Phá Dữ Liệu và Kho Dữ liệu GVHD: PGS.TS.Đỗ Phúc
HVTH: Vương Thị Ngọc Ẩn- CH1101063 Trang:
21
Báo cáo chuyên đề - Khai Phá Dữ Liệu và Kho Dữ liệu GVHD: PGS.TS.Đỗ Phúc
Kết quả:
Tập dữ liệu FCM lỗi (%) GFCM lỗi (%) Lỗi cải thiện (lần)
Iris 11.33 4 2.83

Wine 29.78 11.80 4.82
Sonar 44.71 33.65 1.50
HVTH: Vương Thị Ngọc Ẩn- CH1101063 Trang:
22

×