1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

12 2,5K 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 12
Dung lượng 360 KB

Nội dung

PHẦN MỞ ĐẦUTrong 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 He

Trang 1

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

Trang 2

 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

Trang 3

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.

Trang 4

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

Trang 5

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 (x1, x2, x3 ,xn) 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 = {c1, c2, ,ck} 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)

Trang 6

Với µi là trọng tâm của cụm Si

Ý 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 (x1, x2, x3 ,xn) 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 |Un – Un-1| < epsilon thì dừng

Trang 7

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

Trang 8

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)

Trang 9

• 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

Trang 10

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

Trang 11

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

Trang 12

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, http://www.codeproject.com/Articles/439890/Text-Documents-Clustering-using-K-Means-Algorithm

[4] Wikipedia, k-means clustering, http://en.wikipedia.org/wiki/K-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

Ngày đăng: 09/04/2015, 22:55

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[3] Samir Kunwar, Text Documents Clustering using K-Means Algorithm, 2012, http://www.codeproject.com/Articles/439890/Text-Documents-Clustering-using-K-Means-Algorithm Link
[4] Wikipedia, k-means clustering, http://en.wikipedia.org/wiki/K-means_clustering Link
[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 Khác
[5] Jiawei Han, Micheline Kamber, Jian Pei, Data Mining Concepts and Techniques, ELSEVIER, 2012 Khác
[6] Hong Liu , Xiaohong Yu , Application Research of k-means Clustering Algorithm in Image Retrieval System, 2009 Khác

HÌNH ẢNH LIÊN QUAN

Hình 1: Giao diện chương trình K-means - Thuật toán k-means và phân tích các ưu khuyết điểm
Hình 1 Giao diện chương trình K-means (Trang 8)
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 - Thuật toán k-means và phân tích các ưu khuyết điểm
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 (Trang 10)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w