Tải bản đầy đủ (.docx) (17 trang)

TÌM HIỂU VÀ CÀI ĐẶT ỨNG DỤNG THUẬT TOÁN K MEANS

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 (365.53 KB, 17 trang )

Nhận Xét Của Giáo Viên










ĐẠ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ÀI THU HOẠCH
CHUYÊN ĐỀ: KHAI PHÁ DỮ LIỆU
Đề tài:
TÌM HIỂU VÀ CÀI ĐẶT ỨNG DỤNG
THUẬT TOÁN K_MEANS
GVHD: TS. Đỗ Phúc
SVTH: LÊ THỊ PHÚC KHOA – CH1101015
TP HCM, tháng 11 năm 2012
HVTH: CH1101015 _Lê Thị Phúc Khoa












TP. HCM, Ngày…….tháng…… năm 2012
GVHD: TS. Đỗ Phúc 2
HVTH: CH1101015 _Lê Thị Phúc Khoa
Mục Lục
GVHD: TS. Đỗ Phúc 3
HVTH: CH1101015 _Lê Thị Phúc Khoa
I. Giới thiệu kỹ thuật phân cụm trong “khai phá dữ liệu” (Clustering
Techniques in Data mining)
Phân cụm là kỹ thuật rất quan trọng trong khai phá dữ liệu, nó thuộc lớp các
phương pháp Unsupervised Learning trong Machine Learning. Có rất nhiều định
nghĩa khác nhau về kỹ thuật này, nhưng về bản chất ta có thể hiểu phân cụm là các
qui trình tìm cách nhóm các đối tượng đã cho vào các cụm (clusters), sao cho các
đối tượng trong cùng 1 cụm tương tự (similar) nhau và các đối tượng khác cụm thì
không tương tự (Dissimilar) nhau.
Mục đích của phân cụm là tìm ra bản chất bên trong các nhóm của dữ liệu.
Các thuật toán phân cụm (Clustering Algorithms) đều sinh ra các cụm (clusters).
Tuy nhiên, không có tiêu chí nào là được xem là tốt nhất để đánh hiệu của của phân
tích phân cụm, điều này phụ thuộc vào mục đích của phân cụm như: data reduction,
“natural clusters”, “useful” clusters, outlier detection
Kỹ thuật phân cụm có thể áp dụng trong rất nhiều lĩnh vực như:
 Marketing: Xác định các nhóm khách hàng (khách hàng tiềm năng, khách
hàng giá trị, 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: 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;
 Thư viện: Theo dõi độc giả, sách, dự đoán nhu cầu của độc giả…;

 Bảo hiểm, tài chính: 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).
 WWW: Phân loại tài liệu (document classification); phân loại người dùng
web (clustering weblog);…
Các kỹ thuật phân cụm được phân loại như sau (xem hình)
GVHD: TS. Đỗ Phúc 4
HVTH: CH1101015 _Lê Thị Phúc Khoa
GVHD: TS. Đỗ Phúc 5
HVTH: CH1101015 _Lê Thị Phúc Khoa
II. Thuật toán K_means:
1. Giới thiệu thuật toán:
K-Means là thuật toán rất quan trọng và được sử dụng phổ biến trong kỹ thuật phân
cụm. Tư tưởng chính của thuật toán K-Means là tìm cách phân nhóm các đối tượng
(objects) đã cho vào K cụm (K là số các cụm được xác đinh trước, K nguyên
dương) sao cho tổng bình phương khoảng cách giữa các đối tượng đến tâm nhóm
(centroid ) là nhỏ nhất.
d
i
x R

Mục đích của thuật toán k_means là sinh ra k cụm dữ liệu {C1, C2, …., Ck}
từ một tập dữ liệu chứa n đối tượng trong không gian d chiều X = {x
i
| i = 1, 2, …,
N},
Hàm đo độ tương tự sử dụng khoảng cách Euclidean
E =
2
1

(|| || )
i j
N
i j
i x C
x c
= ∈

∑∑
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.
Thuật toán K-Means thực hiện qua các bước chính sau:
Bước 1: Chọn ngẫu nhiên K trọng tâm (centroid) cho K cụm (cluster). Mỗi
cụm được đại diện bằng các tâm của cụm {c
i
} (i = 1÷K).
Bước 2: Tính khoảng cách giữa các đối tượng (objects) đến K tâm (thường
dùng khoảng cách Euclidean)
( )t
i
S
= {
*
( ) ( )
x :||x || ||x ||
t t

j j i j
i
c c
− ≤ −
for all i
*
= 1,… ,k}
Bước 3: Nhóm các đối tượng vào nhóm gần nhất
Bước 4: Cập nhật lại trọng tâm:
GVHD: TS. Đỗ Phúc 6
HVTH: CH1101015 _Lê Thị Phúc Khoa
( )
( 1)
( )
x
1
x
| |
t
j i
t
i j
t
S
i
c
S
+

=


Bước 5: Thực hiện lại bước 2 cho đến khi không có sự thay đổi nhóm nào của
các đối tượng.
Thuật toán K-Means được mô tả như sau:
Bắt đầu
Số cụm K
Trọng tâm
Khoảng cách các đối tượng đến các trọng tâm
Nhóm các đối tượng vào các cụm
Không có đối tượng chuyển nhóm
Kết thúc
+
-


GVHD: TS. Đỗ Phúc 7
13
K-Mean và ứng dung
13
K-Mean và ứng dung
HVTH: CH1101015 _Lê Thị Phúc Khoa
2. Ví dụ minh họa:
Giả sử ta có 4 loại thuốc A,B,C,D, mỗi loại thuộc được biểu diễn bởi 2 đặc trưng X
và Y như sau. Mục đích của ta là nhóm các thuốc đã cho vào 2 nhóm (K=2) dựa vào
các đặc trưng của chúng.
Đố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 tâm (centroid) cho 2 nhóm. Giả sử ta chọn A là tâm của nhóm thứ
nhất (tọa độ tâm nhóm thứ nhất c1(1,1)) và B là tâm của nhóm thứ 2 (tạo độ tâm
nhóm thứ hai c2 (2,1)).
GVHD: TS. Đỗ Phúc 8
HVTH: CH1101015 _Lê Thị Phúc Khoa
Bước 2. Tính khoảng cách từ các đối tượng đến tâm của các nhóm (Khoảng cách
Euclidean)
Mỗi cột trong ma trận khoảng cách (D) là một đối tượng (cột thứ nhất tương ứng
với đối tượng A, cột thứ 2 tương ứng với đối tượng B,…). Hàng thứ nhất trong ma
trận khoảng cách biểu diễn khoảng cách giữa các đối tượng đến tâm của nhóm thứ
nhất (c1) và hàng thứ 2 trong ma trận khoảng cách biểu diễn khoảng cách của các
đối tượng đến tâm của nhóm thứ 2 (c2).
Ví dụ, khoảng cách từ loại thuốc C=(4,3) đến tâm c1(1,1) là 3.61 và đến tâm
c2(2,1) là 2.83 được tính như sau:
GVHD: TS. Đỗ Phúc 9
HVTH: CH1101015 _Lê Thị Phúc Khoa
Bước 3. Nhóm các đối tượng vào nhóm gần nhất
Ta thấy rằng nhóm 1 sau vòng lặp thứ nhất gồm có 1 đối tượng A và nhóm 2 gồm
các đối tượng còn lại B,C,D.
Bước 4. Tính lại tọa độ các tâm cho các nhóm mới dựa vào tọa độ của các đối
tượng trong nhóm. Nhóm 1 chỉ có 1 đối tượng A nên tâm nhóm 1 vẫn không đổi,
c1(1,1). Tâm nhóm 2 được tính như sau:
Bước 5. Tính lại khoảng cách từ các đối tượng đến tâm mới
GVHD: TS. Đỗ Phúc 10
HVTH: CH1101015 _Lê Thị Phúc Khoa
Bước 6. Nhóm các đối tượng vào nhóm

Bước 7. Tính lại tâm cho nhóm mới

Bước 8. Tính lại khoảng cách từ các đối tượng đến tâm mới
GVHD: TS. Đỗ Phúc 11
HVTH: CH1101015 _Lê Thị Phúc Khoa
Bước 9. Nhóm các đối tượng vào nhóm
Ta thấy G
2
= G
1
(Không có sự thay đổi nhóm nào của các đối tượng) nên thuật toán
dừng và kết quả phân nhóm như sau:
Đối tượng Thuộc tính 1(X) Thuộc tính 2(Y) Nhóm
A
1 1 1
B
2 1 1
C
4 3 2
D
5 4 2
III. Đánh giá
1. Ưu điểm
• Thuật toán K-Means có ưu điểm là đơn giản, dễ hiểu và cài đặt.
• Độ phức tạp O(K.N.l) với l: là số lần lặp.
• Có khả năng mở rộng, dễ dàng sửa đổi với những dữ liệu mới.
GVHD: TS. Đỗ Phúc 12
HVTH: CH1101015 _Lê Thị Phúc Khoa
• Bảo đảm hội tụ sau 1 số bước lặp hữu hạn.
• Luôn có K cụm dữ liệu.

• Luôn có ít nhất một điểm dữ liệu trong ột 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 một cụm là gần với cụm đó hơn bất cứ một cụm nào
khác.
2. Khuyết đ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ề một cụm, chỉ phù hợp
với đường biên giữa các cụm rõ.
• Chi phí cho thực hiện vòng lặp tính toán khoảng cách lớn khi số cụm K và
dữ liệu phân cụm lớn.
VI. Các biến thể và cải tiến của K_means:
Các biến thể của k_means khác nhau ở:
- Chiến lược chọn k trọng tâm đầu tiên
- Phương pháp tính độ phân biệt.
- Phương pháp tính trọng tâm trong cụm.
Một số biếm thể tiêu biếu của k_means:
1. Thuật toán k-medoids:
GVHD: TS. Đỗ Phúc 13
HVTH: CH1101015 _Lê Thị Phúc Khoa
• Tương tự thuật toán K-mean
• Mỗi cụm được đại diện bởi một trong các đối tượng của cụm.
• Chọn đối tượng ở gần tâm cụm nhất làm đại diện cho cụm đó.

• K-medoid khắc phục được nhiễu, nhưng độ phức tạp lớn hơn.
2. Thuật toán fuzzy c-means:
• 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.
V. Hướng dẫn sử dụng phần mềm:
1
2
3
4
5
6
GVHD: TS. Đỗ Phúc 14
HVTH: CH1101015 _Lê Thị Phúc Khoa
Các chức năng của từng vùng:
1- Chọn đường dẫn để nhập dữ liệu cần gom nhóm.
2- Tiến hành nhập dữ liệu.
3- Hiển thị dữ liệu trên lưới.
4- Số cụm cần gom nhóm.
5- Tiến hành gom nhóm dữ liệu trên lưới.
6- Hiển thị kết quả gom nhóm.
Dữ liệu nhập có định dạng như sau :
GVHD: TS. Đỗ Phúc 15

HVTH: CH1101015 _Lê Thị Phúc Khoa
Phần thông tin :
@relation <Tên dữ liệu><\n>.
@attribute object<\n> : tên loại đối tượng
@attribute<Tên thuộc tính><\n>
@data<\n> : bắt đầu phần dữ liệu
Phần dữ liệu:
<Tên loại đối tượng>,<Thuộc tính 1>,<Thuộc tính 2>,… , <Thuộc
tính n><\n>;
Ví dụ mẫu dữ liệu gom nhóm :
@relation drug
@attribute object
@attribute property1
@attribute property2
@data
A,1,1
B,2,1
C,4,3
D,5,4
Tài liệu tham khảo
[1]. “Giáo trình Khai Thác Dữ Liệu” TS. Đỗ Phúc, nxb Đại học quốc gia TP Hồ
Chí Minh.
GVHD: TS. Đỗ Phúc 16
HVTH: CH1101015 _Lê Thị Phúc Khoa
[2]. Slide bài giảng Khai phá dữ liệu, TS. Đỗ Phúc, trường Đại học Công nghệ
Thông tin, ĐHQG.HCM
[3].
[4].
….
GVHD: TS. Đỗ Phúc 17

×