Trong các thuật toán về khai phá dữ liệu, thuật toán gom cụm dữ liệu được biết đến nhiều vì khả năng áp dụng của nó trong việc phân tích và chọn lọc dữ liệu cần thiết từ nguồn dữ liệu số
Trang 1Khoa Mạng máy tính và truyền thông
Trang 3Lời mở đầu
Dữ liệu trong tự nhiên là một tài nguyên vô tận, nó tồn tại ở rất nhiều dạng, vật chất, thông tin kể cả con người Và trong thời đại của công nghệ thông tin, dữ liệu của tự nhiên dần dần chuyển thành dạng thông tin và lưu trữ khắp nơi trên thế giới số
Khai thác dữ liệu là một ngành khoa học có nhiều ứng dụng trong thực tế, đặc biệt là trong các ngành kinh tế học Việc khai thác dữ liệu có hiệu quả hay không phụ thuộc vào nhiều yếu tố Hai trong số đó là thuật toán dùng để khai phá dữ liệu và loại dữ liệu muốn khai phá Trong điều kiện công nghệ thông tin phát triển mạnh, dữ liệu tự nhiên đã hầu như chuyển thành dạng dữ liệu số và đó chính là điều kiện để các thuật toán khai phá dữ liệu có cơ hội phát triển bùng nổ.
Trong các thuật toán về khai phá dữ liệu, thuật toán gom cụm dữ liệu được biết đến nhiều vì khả năng áp dụng của nó trong việc phân tích và chọn lọc dữ liệu cần thiết từ nguồn dữ liệu số Và trong các thuật toán gom cụm, thuật toán K- Means được xem như một thuật toán cơ bản, khởi đầu cho phương pháp khai phá
dữ liệu bằng cách gom cụm
Tuy còn hạn chế nhưng thuật toán K-Means là nền tảng, chỉ ra một hướng đi về khai phá dữ liệu bằng cách gom cụm và đạt được hiệu quả cao Không những vậy, K-Means còn là khởi đầu cho nhiều thuật toán gom cụm ra đời tiếp theo với mục đích đạt được hiệu quả tối ưu nhất.
Và trong tài liệu này, tôi xin được trình bày về K-Means, về những ưu nhược điểm
và đề xuất ra những hướng khắc phục cho thuật toán này.
Và để hoàn thành tài liệu này, ngoài nổ lực bản thân còn có sự giúp đỡ rất lớn từ PGS.TS Đỗ Phúc, người đã truyền đạt ý tưởng và những vấn đề quan trọng về thuật toán K-Means, về những nhận định hướng phát triển mới của thuật toán.
Trang 4Mục lục
Lời mở đầu 2
Mục lục 3
1 Thuật toán K-Means 4
1.1 Tổng quan 4
1.2 Nội dung thuật toán 5
1.3 Đặc điểm của thuật toán 7
1.4 Các biến thể của thuật toán K-Means 8
1.4.1 Thuật toán K-Medoid 8
1.4.2 Thuật toán Fuzzy C-Means 8
2 Ứng dụng thuật toán K-Means trong thực tế 9
2.1 Phân đoạn ảnh 9
2.2 Nhận dạng 10
2.3 Khai phá dữ liệu 11
3 Cài đặt thuật toán K-Means 13
3.1 Ý tưởng thuật toán K-Means 13
3.2 Cài đặt thuật toán 13
3.2.1 Tiên đề 13
3.2.2 Nội dung thuật toán 13
3.3 Hướng phát triển của thuật toán 14
4 Kết luận 16
Phụ lục 17
Tài liệu tham khảo 23
Trang 51 Thuật toán K-Means
1.1 Tổng quan
K-Means là thuật toán phân cụm dữ liệu, dùng để tiếp cận phân hoạch Sốlượng cụm trong phân hoạch là một số cố định cho trước Các cụm được hìnhthành dựa vào khoảng cách các điểm trung tâm Một điểm sẽ thuộc vào một cụmnếu như khoảng cách từ điểm đó đến điểm trung tâm của cụm là nhỏ nhất trong sốcác khoảng cách từ điểm đó đến các điểm trung tâm
Vì vậy, cần khởi tạo một tập các điểm trung tâm ban đầu để làm nềntảng cho việc tính toán và phân lại cụm cho các điểm trong đồ thị Quá trình xácđịnh cụm cho một điểm được thực lặp đi lặp lại nhiều lần, sau mỗi lần tính toán,các điểm trung tâm sẽ thay đổi vị trí và các cụm của đồ thị cũng thay đổi theo Quátrình tính toán và xác định cụm cho các điểm dừng lại khi thành phần các cụmtương đối ổn định (các điểm thuộc vào các cụm không thay đổi)
Trong phương pháp K-means, chọn một giá trị k và sau đó chọn ngẫu nhiên
k trung tâm của các đối tượng dữ liệu Tính toán khoảng cách giữa đối tượng dữliệu trung bình mỗi cùm để tìm kiếm phần tử nào là tương tự và thêm vào cụm đó
Từ khoảng cách này có thể tính toán trung bình mới của cụm và lặp lại quá trìnhcho đến khi mỗi các đối tượng dữ liệu là một bộ phận của các cụm k
Mục đích của thuật toán K-means là sinh 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 Xi = {xi1, xi2,…xid},
i = 1÷ n, sao cho hàm tiêu chuẩn :
đạt giá trị tối tiểu
Trong đó: mi là trọng tâm của cụm Ci, D là khoảng cách giữa hai đối tượng
Trọng tâm của cụm là một vector, trong đó giá trị của mỗi phần tử của nó là trungcộng của các thành phần tương ứng của các đối tượng vector dữ liệu trong cụm
Trang 6đang xét Tham số đầu vào của thuật toán là số cụm k, và tham số đầu ra của thuậttoán là các trọng tâm của các cụm dữ liệu Độ đo khoảng cách D giữa các đốitượng dữ liệu thường được sử dụng là khoảng cách Euclide vì đây là mô hìnhkhoảng cách nên dễ lấy đạo hàm và xác định các cực trị tối thiểu Hàm tiêu chuẩn
và độ đo khoảng cách có thể được xác định cụ thể hơn tùy ý vào ứng dụng hoặcquan điểm của người dùng
1.2 Nội dung thuật toán
Cho k là số cụm sau khi phân hoạch (1 <= k <= n, với n là số điểm đốitượng trong không gian dữ liệu
Thuật toán K-Means gồm 4 bước:
1 Chọn k điểm làm trọng tâm ban đầu của k cụm
2 Gán (hoặc gán lại) từng điểm vào cụm có trọng tâm gần điểm đang xétnhất
Nếu không có phép gán lại nào thì dừng, vì không có phép gán lại nào cónghĩa là các cụm đã ổn định và thuật toán không thể cải thiện làm giảm độphân biệt được nữa
3 Tính lại trọng tâm cho từng cụm
4 Quay lại bước 2
Một số khái niệm được dùng trong thuật toán K-Means:
(1) Ma trận phân hoạch: Ma trận phân hoạch là ma trận biểu hiện cho sự phụthuộc của một điểm vào một cụm nào đó
Table 1.1 – Ví dụ về ma trận phân hoạch
Trang 7Trong ma trận phân hoạch trên, ta thấy ứng với mỗi cột chỉ có một dòng cógiá trị 1 điều đó thể hiện mỗi đối tượng trong một thời điểm chỉ thuộc vềmột cụm.
Sau mỗi lượt gán cụm cho các đối tượng, ma trận phân hoạch lại được cậpnhật Trong suốt quá trình cập nhật, một đối tượng vẫn chỉ thuộc một cụmduy nhất
(2) Vector trọng tâm
Vector trọng tâm chính là vị trí của điểm trung tâm của mỗi cụm Vectortrọng tâm trong từng thời điểm là không giống nhau và nó phụ thuộc vào sốlượng các điểm nằm trong cụm đó
Các tính vector trọng tâm được thể hiện như sau:
với:
và
Trong đó, mij là giá trị tương ứng của hang i, cột j trong ma trận phân hoạch(mij = 0/1) x ix là giá trị hoành độ của đối tượng thứ i, x iy là giá trị tung độcủa đối tượng thứ i
(3) Khoảng cách Euclid
Là khoảng cách từ một đối tượng bất kì đến một vector trọng tâm nào đó.Việc xác định khoảng cách Euclid có ý nghĩa trong việc xác định đối tượngđang xét thuộc cụm nào Một đối tượng thuộc một cụm khi khoảng cáchEuclid từ điểm đó đến vector trọng tâm của cụm đó là nhỏ nhất Khoảngcách Euclid từ một điểm đến một vector trọng tâm được xác định như sau:
Trang 81.3 Đặc điểm của thuật toán
Chất lượng của thuật toán K–Means phụ thuộc nhiều vào các tham số đầu vàonhư: số cụm k, và k vector trọng tâm khởi tạo ban đầu Trong trường hợp cácvector trọng tâm khởi tạo ban đầu mà quá lệch so với các trọng tâm cụm tự nhiênthì kết quả phân cụm của K–Means là rất thấp, nghĩa là các cụm dữ liệu đượckhám phá rất lệch so với các cụm trong thực tế Trên thực tế, chưa có một giảipháp nào để chọn tham số đầu vào, giải pháp thường được sử dụng nhất là thửnghiệm với các giá trị đầu vào, giải pháp thường được sử dụng nhất là thử nghiệmvới giá trị đầu vào k khác nhau rồi sau đó chọn giải pháp tốt nhất
1 Ưu điểm:
- Tương đối nhanh, độ phức tạp của thuật toán là O(tkn) trong đó:
n: là số điểm trong không gian dữ liệut: số lần lặp (thường thì t rất nhỏ so với n)k: số cụm cần phân hoạch
- K-Means phù hợp với các cụm có dạng hình cầu
- Có khả năng mở rộng và dể dàng sửa đổi với những dữ liệu mới
- Bảo đảm hội tụ sau một số bước lặp hữu hạn
- Số cụm luôn ổn định (k cụm cho trước)
- Luôn có ít nhất một điểm trong cụm
- Các cụm được tách biệt rỏ rang không có hiện tượng một đối tượng xuấthiện trong nhiều cụm dữ liệu
2 Nhược điểm:
- Không đảm bảo đạt được tối ưu toàn cục và kết quả đầu ra phụ thuộcvào nhiều vào việc chọn k điểm khởi đầu
- Cần xác định trước số cụm
Trang 9- Khó xác định được thực sự số cụm có trong không gian dữ liệu Do đó
có thể phải thử với các số k khác nhau
- Khó phát hiện các loại cụm có hình dạng phức tạp và nhất là các dạngcụm không lồi
- Không thể xử lí nhiều mẫu cá biệt (nhiễu)
- Chỉ có thể áp dụng khi tính được trọng tâm
1.4 Các biến thể của thuật toán K-Means
1.4.1 Thuật toán K-Medoid
Thuật toán K-Medoid tương tự thuật toán K-Means, mỗi cụm được đại diện bởimột trong số các đối tượng của cụm Thông thường thì điểm gần vector trọng tâm
sẽ được chọn làm điểm đại diện của cụm
Thuật toán K-Medoid khắc phục được yếu điểm là loại được nhiễu trong thuậttoán K-Means Nhưng bù lại, độ phức tạp của thuật toán lại rất lớn
1.4.2 Thuật toán Fuzzy C-Means
Thuật toán Fuzzy C-Means có chiến lược phân cụm giống như K-Means Nhưng
có một điểm khác biệt là K-Means phân cụm dữ liệu cứng (một đối tượng chỉthuộc vào một cụm) còn Fuzzy C-Means là phân cụm dữ liệu mềm (một đối tượng
có thể thuộc nhiều cụm khác nhau)
Fuzzy C-Means có khả năng phân cụm trong không gian đa chiều và có khả năngphân cụm tối ưu toàn cục Tuy nhiên thuật toán này khá phức tạp và tốc độ hội tụphụ thuộc vào trạng thái ban đầu của ma trận thành viên
Trang 102 Ứng dụng thuật toán K-Means trong thực tế
- Phân đoạn ảnh là một thao tác ở mức thấp trong toàn bộ quá trình xử lý ảnh.Quá trình này thực hiện việc phân vùng ảnh thành các vùng rời rạc và đồngnhất với nhau hay nói cách khác là xác định các biên của các vùng ảnh đó.Các vùng ảnh đồng nhất này thông thường sẽ tương ứng với toàn bộ haytừng phần của các đối tượng thật sự bên trong ảnh Vì thế, trong hầu hết cácứng dụng của lĩnh vực xử lý ảnh phân đoạn ảnh luôn đóng một vai trò cơbản và thường là bước tiền xử lý đầu tiên trong toàn bộ quá trình trước khithực hiện các thao tác khác ở mức cao hơn như nhận dạng đối tượng, biểudiễn đối tượng, nén ảnh dựa trên đối tượng, hay truy vấn ảnh dựa vào nộidung
Ứng dụng của phân cụm dữ liệu:
- Ứng dụng đặc điểm của thuật toán phân cụm để chia ảnh thành các vùngkhông trùng lắp Mỗi vùng gồm một nhóm pixel liên thông và đồng nhấttheo một tiêu chí nào đó Tiêu chí này phụ thuộc vào mục tiêu của quá trìnhphân đoạn Ví dụ như đồng nhất về màu sắc, mức xám, kết cấu, độ sâu củacác layer…
- Mục tiêu của phân cụm là có được một chuỗi các cụm hyperellipsoidal bắtđầu với các trung tâm cụm vị trí tại các vị trí mật độ tối đa trong không gianmẫu, và các cụm phát triển về các trung tâm cho đến khi một thử nghiệm tốt
đẹp của x 2 cho phù hợp đã bị vi phạm Một loạt các tính năng được thảo luận
và áp dụng cho cả hai màu xám và màu sắc hình ảnh
Trang 11- Kỹ thuật Clustering cũng đã được sử dụng thành công được cho nhiều phânđoạn của hình ảnh Trong các báo cáo khoa học về phân vùng ảnh mức xám,
có khá nhiều kỹ thuật cố thực hiện việc thoả mãn cùng lúc cả hai tiêu chí vềtính đồng nhất trong không gian đặc trưng của ảnh và tính cô đọng về nộidung ảnh Tuỳ theo các kỹ thuật mà các thuật giải này áp dụng, chúng đượcphân thành các nhóm sau:
(1) Các thuật giải áp dụng kỹ thuật chia và trộn vùng
(2) Các thuật giải áp dụng kỹ thuật tăng trưởng vùng
(3) Các thuật giải áp dụng lý thuyết đồ thị
(4) Các giải thuật áp dụng mạng neural
(5) Các giải thuật dựa trên cạnh
sẽ biết được những vấn đề về sức khoẻ của bệnh nhân Trong kỹ thuật sinhhoá, thuật toán nhận diện đối tượng giúp cho việc phát hiện các biến thể mớihình thành… Trong khoa học hình sự, việc nhận dạng đối tượng là nguồn hổtrợ chính trong phân tích và nhận dạng các đối tượng hình sự
- Nhận dạng kí tự là phương pháp rút trích các chuổi kí tự (có thể là một kí tự)trong một chuổi kí tự đưa vào với mục đích nhận dạng (phỏng đoán) nội
Trang 12dung của văn bản Nhận dạng kí tự được áp dụng trong các thuật toán nhưlọc email, phân loại văn bản hay tóm lược nội dung các văn bản đầu vào.Hiện nay thuật toán này cũng được áp dụng nhiều trong các phần mềm dùng
để ngăn chặn việc truy xuất đến một số trang có nội dung không lành mạnhhay một số trang có làm mất thong tin người dùng (các trang được cài đặt vi-rút để trích dữ liệu người dùng)
Ứng dụng của thuật toán gom cụm trong nhận dạng đối tượng:
- Các điểm ảnh được gom thành những đối tượng khác nhau thông qua màusắc, ngữ cảnh
- Gom các hình ảnh giống nhau qua một chuổi ảnh (các ảnh tĩnh) và các hìnhảnh thay đổi qua một chuổi ảnh (ảnh động) để xác định hành vị của đốitượng
Ứng dụng thuật toán gom cụm trong nhận dạng kí tự:
- Gom các kí tự giống nhau thành từng cụm
- Gom các cụm thành các phần khác nhau và dựa vào đặc điểm của từng cụm
mà xét độ ưu tiên để đánh giá nội dụng văn bản
- Việc nhận dạng kí tự còn được phát triển và áp dụng trong nhận dạng chữviết Các thông tin nhận dạng trong văn bản chữ viết bao gồm điểm đặt bút,nét các kí tự, độ dài rộng các kí tự, các nét lên, xuống của từng kí tự
Trang 13hàng về sản phẩm hay quan điểm khách hàng về những mặc hàng xuất hiện trongtương lai.
Với sự phát triển mạnh mẽ của công nghệ thông tin hiện nay, internet đã và đangtrở thành cở sở dữ liệu vô tận Nguồn dữ liệu này có ý nghĩa với rất nhiều tổ chức
và cá nhân đặc biệt là các tổ chức và cá nhân trong lĩnh vực kinh doanh Do đó,việc khai thác nguồn dữ liệu vô tận được lưu trữ trên internet đã và đang trở thànhmột hướng đi mới trong việc khai thác thị trường Một khi thành công trong việckhai thác dữ liệu khách hàng từ internet, vấn đề tìm hiểu và khai thác thị trường sẽtrở nên đơn giản và hiệu quả cao Hiệu quả về chi phí là điểm nổi bật có thể nhìnthấy được, bên cạnh đó hiệu quả về thời gian cũng là một điểm đáng ghi nhận.Mọi thông tin khách hàng đã có sẵn, tuy nhiên làm thế nào để phân loại và đánhgiá nó chính xác đòi hỏi người làm công việc khai thác thị trường phải bỏ côngsức đầu tư để có một thuật toán phân tích và tổng hợp thật hiệu quả Và với côngviệc này, thuật toán gom cụm được sử dụng như phương pháp chính để khai hoànthành mục đích đặt ra
Trang 143 Cài đặt thuật toán K-Means
3.1 Ý tưởng thuật toán K-Means
Thuật toán K-Means được hình thành bởi MacQueen từ 1967, là một trong nhữngthuật toán đơn giản nhất dùng để giải quyết vấn đề gom cụm Quá trình xử lí dựatrên số cụm của đối tượng được cho trước Ý tưởng chính của thuật toán là dựavào số cụm cho trước, hình thành tương ứng số vector trọng tâm cho mỗi cụm và
từ vector trọng tâm đó, các cụm được hình thành bằng cách gom các điểm xungquanh gần nó nhất Một đối tượng được xác định là thuộc một cụm nào đó khi vàchỉ khi khoảng cách Euclid từ đối tượng đó đến vector trọng tâm là nhỏ nhất sovới các vector trọng tâm còn lại Việc xác định vector trọng tâm được thực hiệnnhiều lần để tìm ra những cụm tốt nhất Vậy nên giá trị của vector trọng tâm trongmỗi lần tính có thể khác nhau Khi giá trị của vector trọng tâm là không đổi, lúc đócác cụm của đồ thị đã ổn định và ta có thể dừng thuật toán
3.2 Cài đặt thuật toán
3.2.1 Tiên đề
Thuật toán K-Means được hình thành dựa trên số cụm và một ma trận phân hoạchcho trước để làm cơ sở cho quá trình tính toán
Nếu số lượng cụm quyết có vai trò quyết định trong việc xây dựng thuật toán thì
ma trận phân hoạch có ý nghĩa trong việc xác định độ phức tạp của thuật toán Vớimột ma trận phân hoạch tốt, quá trình tính toán sẽ giảm đi rất nhiều
3.2.2 Nội dung thuật toán
Dữ liệu đầu vào:
Số cụm k và các ma trận phân hoạch khởi đầu.
Dữ liệu đầu ra:
Các cụm dữ liệu thể hiện thông qua ma trận phân hoạch cuối cùng.
Trang 15Bước 1:
(1) Chọn số cụm (số điểm trọng tâm trên đồ thị) ban đầu.
(2) Khởi tạo ma trận phân hoạch ngẫu nhiên đầu tiên
Bước 2:
(1) Tìm các điểm trọng tâm của đồ thị thông qua ma trận phân hoạch.
(2) Tính khoảng cách từ các điểm đến các điểm trọng tâm.
(3) Gán điểm đang xét vào cụm mà khoảng cách từ điểm đang xét đến điểm trọng tâm của cụm là nhỏ nhất.
(4)
Bước 3:
(1) Gán điểm đang xét vào cụm mà khoảng cách từ điểm đang xét đó đến vector trọng tâm của cụm là nhỏ nhất (cập nhật ma trận phân hoạch ở vị trí cột là điểm đang xét).
(2) Thực hiện bước trên cho đối tượng tiếp theo.
Bước 4:
(1) Xét xem ma giá trị của ma trận phân hoạch có ổn định hay không Nếu đã
ổn định (đạt điều kiện dừng) thì ngừng chương trình.
(2) Quay lại bước 2.
3.3 Hướng phát triển của thuật toán
Thuật toán K-Means là khởi nguồn của hệ thống các thuật toán gom cụm, vậy nênsong song với những điểm mạnh vẫn còn tồn tại nhiều hạn chế Cũng vì lẽ đó nên
đã có rất nhiều thuật toán kế thừa Means và cải thiện những yếu điểm mà Means mắc phải Kết quả của quá trình cải thiện K-Means là đáng ghi nhận khi córất nhiều thuật toán ra đời như K-Medoid, Fuzzy C-Means hay PAM, CLARAR…Tuy nhiên, đến thời điểm hiện tại vẫn chưa có thuật toán nào có thể đạt được hiệuquả tuyệt đối