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

Thuật toán k-means và phân tích các ưu khuyết điểm

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 (406.26 KB, 12 trang )

Nguyễn Thị Phương Thủy - CH1101046
LỜI CẢM ƠN
Tôi xin chân thành cảm ơn thầy Phó Giáo sư Tiến sĩ Đỗ Phúc đã tận tình
hướng dẫn tôi trong suốt quá trình học tập và thực hiện bài thu hoạch.
1
Nguyễn Thị Phương Thủy - CH1101046
 MỤC LỤC
C. PHẦN MỞ ĐẦU 4
D. PHẦN NỘI DUNG 5
I. THUẬT TOÁN K-MEANS 5
1. Phương pháp phân hoạch 5
2. Độ đo khoảng cách 5
5
3. Thuật toán k-means 5
4. Điều kiện dừng của thuật toán 6
5. Cách chọn nhóm khởi tạo 7
6. Nhận xét 7
7. Các biến thể của k-means 7
II. CHƯƠNG TRÌNH K-MEANS 8
E. PHẦN KẾT LUẬN 11
F. PHẦN TÀI LIỆU THAM KHẢO 12
2
Nguyễn Thị Phương Thủy - CH1101046
MỤC LỤC HÌNH
Hình 1: Giao diện chương trình K-means 8
Hình 2: Chương trình K-means cho tập điểm 10
B.
3
Nguyễn Thị Phương Thủy - CH1101046
C. PHẦN MỞ ĐẦU
Trong khai phá dữ liệu, thuật toán gom cụm k-means là một thuật toán gom


cụm dữ liệu theo phương pháp phân hoạch. Nó là một trong những thuật toán
đơn giản và tốt, sử dụng Heuristic hội tụ nhanh để đạt được tối ưu địa phương,
nên được biết như một thuật toán hiệu quả trong việc gom cụm tập dữ liệu lớn
Bài thu hoạch sẽ trình bày thuật toán k-means và phân tích các ưu khuyết
điểm, những giải pháp có thể cải thiện thuật toán, cùng chương trình chạy
demo
4
Nguyễn Thị Phương Thủy - CH1101046
D. PHẦN NỘI DUNG
I. THUẬT TOÁN K-MEANS
1. Phương pháp phân hoạch
Phương pháp phân hoạch gom cụm là phương pháp phân hoạch cơ sở dữ liệu
D, có n đối tượng vào k cụm, sao cho:
- Mỗi cụm chứa ít nhất một đối tượng
- Mỗi đối tượng thuộc về một cụm duy nhất, hoặc đối với phương pháp
phân hoạch dựa trên lý thuyết tập mờ thì sử dụng mức độ thuộc về của đối tượng
vào cụm (membership)
- K là số cụm đã được cho trước, trước khi thực hiện phân hoạch
2. Độ đo khoảng cách
Độ đo khoảng cách để đánh giá độ tương tự giữa các điểm dữ liệu trong
không gian dữ liệu đang xét.
Có nhiều cách tính độ đo, trong đó khoảng cách Euclide là một trong những
cách tính độ đo thông dụng cho biến trị khoảng trong không gian p chiều
3. Thuật toán k-means
Cho tập đối tượng D (x
1
, x
2
, x
3

,x
n
) có n đối tượng, thuật toán k-means sẽ
phân hoạch n đối tượng vào trong k nhóm (k<=n) U = {c
1
, c
2
, ,c
k
} sao cho tổng
sự tương tự (khoảng cách) từ các đối tượng tới trọng tâm của cụm trong tất cả
các cụm giảm tối thiểu (RSS Residual Sum of Squares giảm tối thiểu)
5
Nguyễn Thị Phương Thủy - CH1101046
Với µ
i
là trọng tâm của cụm S
i
Ý tưởng chính của thuật toán là định nghĩa điểm trọng tâm của cụm
(centroids µ
i
)
Thuật toán k-means:
Nhập: số cụm k, tập đối tượng D (x
1
, x
2
, x
3
,x

n
) có n đối tượng
Bước 1: Khởi tạo phân hoạch tập đối tượng thành k cụm con khác rỗng, tạo
ra ma trận phân hoạch khởi tạo
Bước 2: Tính trọng tâm cho từng cụm (seed, centroid)
Bước 3: Gán (hoặc gán lại) từng đối tượng vào cụm mà có trọng tâm gần với
đối tượng đang xét nhất. Đo khoảng cách lần lượt đối tượng tới các trọng tâm,
khoảng cách nào nhỏ nhất thì xếp đối tượng vào cụm có trọng tâm đó, tạo ra ma
trận phân hoạch mới
Bước 4: Nếu không thỏa điều kiện dừng (mục I.4) thì quay lại bước 2.
4. Điều kiện dừng của thuật toán
- Đạt tới số lượng vòng lặp giới hạn t. Chất lượng gom nhóm có thể sẽ tệ
nếu số lượng vòng lặp không đủ
- Ma trận phân hoạch không có thay đổi
- Dừng khi mà RSS giảm tới một ngưỡng cho phép, khi đó phân hoạch đã
gần hội tụ, điều này sẽ giảm thời gian chạy thuật toán xuống, hay thuật toán
không thể cải thiện làm giảm độ phân biệt hơn được nữa |U
n
– U
n-1
| < epsilon thì
dừng
6
Nguyễn Thị Phương Thủy - CH1101046
5. Cách chọn nhóm khởi tạo
Thuật toán k-means không đảm bảo tối ưu toàn cục. Đối với những trường
hợp mà có những đối tượng nằm rất xa so với nhóm đối tượng khác (outlier –
mẫu cá biệt), nó sẽ không phù hợp với bất cứ nhóm khác thì nên để khởi tạo nó
riêng một nhóm, như vậy sẽ không cần phải gán lại trong suốt quá trình lặp. Để
lựa chọn một khởi tạo hiệu quả thì nên loại bỏ các đối tượng cá biệt (outlier), áp

dụng thuật giải di truyền để phát sinh các bộ khởi tạo
6. Nhận xét
Có thể sử dụng kĩ thuật threading để tính toán song song ma trận trọng tâm,
ma trận phân hoạch mới làm tăng tốc độ tính toán
Thuật toán có thể gặp lỗi, sau vài lần lặp sẽ có nhóm không có điểm nào
thuộc về, lúc đó phải chạy lại thuật toán với khởi tạo phân hoạch khác, khác với
các ma trận phân hoạch đã chạy thất bại trước đó (bao gồm ma trận phân hoạch
khởi tạo và ma trận phân hoạch trong vòng lặp) hoặc giảm/tăng số nhóm k cần
phân hoạch
Ưu điểm của thuật toán là thực hiện tương đối nhanh, độ phức tạp của thuật
toán là O(tkn) (t: số lần lặp, k: số cụm cần phân hoạch, n: số điểm cần gom cụm),
phù hợp với các cụm có dạng hình cầu
Khuyết điểm của k-means là khó phát hiện các loại cụm có hình dạng phức
tạp (không phải dạng cầu), không xử lý được các mẫu cá biệt, nhiễu. Kết quả đầu
ra phụ thuộc nhiều vào việc chọn phân hoạch khởi tạo, số nhóm k. Do đó để có
kết quả tốt, cần phải thử với nhiều bộ khởi tạo khác nhau hoặc giá trị k khác nhau
7. Các biến thể của k-means
Các biến thể của k-means tùy thuộc vào chiến lược chọn phân hoạch khởi
tạo, phương pháp tính độ phân biệt, phương pháp tính trọng tâm của cụm.
Một số biến thể như: K-medoids, Fuzzy C-Means Clustering, Gaussian
mixture models, Spherical k-means, Minkowski metric weighted k-means
7
Nguyễn Thị Phương Thủy - CH1101046
II. CHƯƠNG TRÌNH K-MEANS
Chương trình mô phỏng thuật toán k-means gom cụm tập điểm trên không
gian hai chiều thành k cụm, dùng khoảng cách Euclidean
Chương trình viết bằng Visual Studio 2012 nên cần cài đặt .NET
Framework 4.0 để chạy.
Chạy file chương trình 201211KPDL.exe
Giao diện chương trình như hình

Hình 1: Giao diện chương trình K-means
- Nhập liệu
• Nhập số nhóm k (phải lớn hơn hoặc bằng 2, mặc định là 2)
• Nhập số lần lặp tối đa (phải lớn hơn 1, mặc định là 1000)
8
Nguyễn Thị Phương Thủy - CH1101046
• Nhập số ma trận tạm (là số ma trận phân hoạch được lưu trữ lại, để
dùng khi ma trận phân hoạch mới lần lượt được so sánh với số ma trận phân
hoạch của những lần trước đó, phải lớn hơn 1, mặc định là 1)
• Nhập tập điểm, có thể chọn dòng và nhấn nút delete để xóa dòng đó.
Nếu muốn xác định khởi tạo nhóm (inital cluster) thì nhập thuộc tính nhóm cho
điểm. Thuộc tính nhóm phải thỏa mãn điều kiện giá trị nhóm từ 1 tới k, và đảm
bảo trong tập điểm phải có ít nhất một điểm thuộc một nhóm
• Có thể sử dụng nút “Xóa dữ liệu” để khởi tạo các giá trị về mặc định
để nhập liệu lại
- Sau khi nhập liệu xong, nếu muốn sử dụng khởi tạo nhóm thì nhấn check
chọn “Khởi tạo nhóm”. Nhấn nút “Gom nhóm” và xem kết quả
Các lỗi xảy ra khi chạy gom nhóm dữ liệu sẽ hiển thị ở khung kết quả chi tiết
gồm:
• Lỗi nhập liệu sai
• Lỗi sau quá trình lặp, có xuất hiện ít nhất một nhóm mà không có
phần tử nào thuộc về nhóm đó. Khi đó có thể chọn số gom nhóm k ít hơn để thực
hiện lại thuật toán hoặc chọn lại khởi tạo nhóm mới.
9
Nguyễn Thị Phương Thủy - CH1101046
Hình 2: Chương trình K-means cho tập điểm
Chương trình có thể mở rộng thêm chức năng để người dùng có thể sử dụng
tập điểm từ cơ sở dữ liệu có sẵn thay vì nhập trực tiếp vào giao diện.
10
Nguyễn Thị Phương Thủy - CH1101046

E. PHẦN KẾT LUẬN
Mặc dù có nhiều khuyết điểm, nhưng thuật toán k-means lại thường được sử
dụng để gom cụm tập dữ liệu lớn do tính toán đơn giản và Heuristic hội tụ nhanh
để đạt được tối ưu địa phương. Do phù hợp với không gian dữ liệu mà các cụm
dạng hình cầu, nên cần loại bỏ các mẫu cá biệt trước khi chạy thuật toán.
Các ứng dụng sử dụng thuật toán k-means như phân khúc thị trường, thống
kê địa lý, gom nhóm hình ảnh, hoặc dùng thuật toán để tiền xử lý tạo ra dữ liệu
dùng cho các phương pháp thuật toán khác
11
Nguyễn Thị Phương Thủy - CH1101046
F. PHẦN TÀI LIỆU THAM KHẢO
[1] PGS.TS Đỗ Phúc, Giáo trình Khai thác dữ liệu, nhà xuất bản Đại học
Quốc Gia TP HCM, 2006
[2] PGS.TS Đỗ Phúc, các slide bài giảng
[3] Samir Kunwar, Text Documents Clustering using K-Means Algorithm,
2012, />using-K-Means-Algorithm
[4] Wikipedia, k-means clustering, />means_clustering
[5] Jiawei Han, Micheline Kamber, Jian Pei, Data Mining Concepts and
Techniques, ELSEVIER, 2012
[6] Hong Liu , Xiaohong Yu , Application Research of k-means Clustering
Algorithm in Image Retrieval System, 2009
12

×