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

TÌM HIỂU THUẬT TOÁN PHÂN CỤM KMEANS VÀ CÁC CẢI TIẾN

14 857 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

Nội dung

ĐẠI HỌC HUẾ TRƯỜNG ĐẠI HỌC KHOA HỌC TIỂU LUẬN MÔN HỌC KHAI PHÁ DỮ LIỆU Đề tài: TÌM HIỂU THUẬT TOÁN PHÂN CỤM K-MEANS VÀ CÁC CẢI TIẾN Giáo viên hướng dẫn: Học viên thực hiện: TS. Hoàng Thị Lan Giao Thái Quang Hoàng Đoàn Văn Cự Hoàng Tuấn Hưng Hoàng Hữu Chiến Đặng Văn Vinh Huế, tháng 06/2012 1 MỤC LỤC ĐẶT VẤN ĐỀ 2 I. Tổng quan về phân lớp (cụm) dữ liệu trong Data mining. 3 II. Thuật toán K-MEANS: 3 1. Giới thiệu về thuật toán K-means: 3 2. Phát biểu bài toán: 3 3. Khái quát về thuật toán K-Means: 3 4. Ưu và nhược điểm của thuật toán K - Means: 5 5. Ví dụ minh họa: 6 II. Phân cụm nửa giám sát: 7 1. Thuật toán Cop-Kmeans: 7 2. Thuật toán Seeded-Kmeans: 8 III. Demo thuật toán K-mean: 10 2 ĐẶT VẤN ĐỀ Phân cụm dữ liệu là quá trình tìm kiếm để phân ra các cụm dữ liệu từ tập Cơ sở dữ liệu lớn sao các phần tử trong một cụm có độ tương tự cao và các phần tử trong các cụm khác nhau có độ tương tự thấp. Phân cụm dữ liệu là một phương pháp học không giám sát. Do phương pháp phân cụm dữ liệu không giám sát còn nhiều nhược điểm vì vậy dựa trên học không giám sát và học có giám sát đã ra đời một phương pháp phân cụm dữ liệu mới đó là phương pháp phân cụm dữ liệu nửa giám sát. Phương pháp phân cụm nửa giám sát không phải là một phương pháp phân cụm hoàn thiện nhưng nó đã phần nào khắc phục được những hạn chế và phát huy ưu điểm của phương pháp phân cụm không giám sát. Trong phạm vi của tiểu luận, chúng em xin trình bày thuật toán phân cụm Kmean, demo thuật toán Kmean, thuật toán phân cụm nửa giám sát Cop-Kmeans và Seeded-Kmeans. Xin cám ơn TS Hoàng Thị Lan Giao đã hướng dẫn và truyền đạt kiến thức cho chúng em. Tuy đã rất cố gắng song bài viết không tránh khỏi những thiếu sót, chúng em rất mong nhận được sự đóng góp ý kiến của các thầy cô giáo và các anh chị học viên lớp cao học Khoa học máy tính để bài viết được hoàn thiện hơn. Chúng em xin chân thành cảm ơn! 3 NỘI DUNG I. Tổng quan về phân lớp (cụm) dữ liệu trong 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 (học không giám sát) 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 giá hiệu qủa của 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. II. Thuật toán K-MEANS: 1. Giới thiệu về thuật toán K-means: Phương pháp K-means phân hoạch các đối tượng vào các cụm dựa trên khoảng cách của các đối tượng đó đến trọng tâm của các cụm. Một đối tượng được phân vào một cụm nếu khoảng cách từ đối tượng đó đến cụm đang xét là nhỏ nhất. Sau đó các trọng tâm được cập nhật. Quá trình lặp đi lặp lại cho đến khi không có sự thay đổi về trọng tâm. 2. Phát biểu bài toán:  Input:  Tập các đối tượng X = {x i | i = 1, 2, …, N}, x i  R d  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. 3. Khái quát về thuật toán K-Means: a. Ý tưởng:  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. 4  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. b. Hàm số độ đo trong phân lớp:  Hàm đo độ tương tự sử dụng khoảng cách Euclidean      ji Cx ji N i cxE 2 1 |||| 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. Thuật toán K-Means:  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 ||||||:||{ )()( )( * t i j t ijj t i cxcxx S  for all }, ,1 * ki   Bước 3: Cập nhật lại trọng tâm    )( || 1 )( t ij Sx j t i t i x S c  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. Thuật toán K – Means được mô tả như sau: 5 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 + - 4. Ưu và nhược điểm của thuật toán K - Means: a. Ưu điểm:  Tương đối nhanh. Độ phức tạp của thuật toán là O(tkn), trong đó:  n: Số đối tượng trong không gian dữ liệu.  k: Số cụm cần phân hoạch.  t: Số lần lặp ( t thường khá nhỏ so với n).  Thường kết thúc ở điểm tối ưu cục bộ  K–Means phù hợp với các cụm có dạng hình cầu. b. Khuyết điểm:  Không đảm bảo đạt được độ tối ưu toàn cục và kết quả đầu ra phụ thuộc nhiều vào việc chọn k điểm khởi đầu. Do đó phải chạy thuật toán với nhiều bộ khởi đầu khác nhau để có được kết quả đủ tốt.  Cần phải xác định trước số cụm.  Khó xác định số cụm thực sự mà không gian dữ liệu có. Do đó có thể phải thử với các giá trị k khác nhau.  Khó phát hiện các loại cụm có hình dạng phức tạp khác nhau và nhất là các dạng cụm không lồi.  Không thể xử lý nhiễu và mẫu cá biệt.  Chỉ có thể áp dụng khi tính được trọng tâm. 6 5. Ví dụ minh họa: Trên tập số thực R, cho tập A={-10, -8, -5, -1, 0, 1, 3, 7, 9} Dùng thuật toán K-mean chia các phần tử của tập A thành 3 nhóm với các phần tử trung tâm ban đầu: -10, -5, 1 Dựa vào 3 phần tử trung tâm ban đầu, ta chia tập A thành 3 nhóm như sau: C1={-10, -8} => 1c = -9 C2={-5} => 2c = -5 C3={-1, 1, 0, 3, 7, 9} => 3c = 19/6  3.16 * Có sự thay đổi trọng tâm nên ta phân nhóm lại như sau: C1={-10, -8} => 1c = -9 C2={-5, -1} => 2c = -3 C3={1, 0, 3, 7, 9} => 3c = 4 * Có sự thay đổi trọng tâm, phân lại các nhóm C1={-10, -8} => 1c = -9 C2={-5, -1, 0} => 2c = -3 C3={1, 3, 7, 9} => 3c = 5 * Phân lại nhóm C1={-10, -8} => 1c = -9 C2={-5, -1, 0, 1} => 2c = -5/4  -1.25 C3={3, 7, 9} => 3c = 19/3  6.2 * Phân lại nhóm: 7 C1={-10, -8} => 1c = -9 C2={-5, -1, 0, 1} => 2c = -5/4  -1.25 C3={3, 7, 9} => 3c = 19/3  6.2 Không có sự thay đổi trọng tâm. Như vậy sau khi áp dụng thuật toán K-mean, tập A được phân thành 3 nhóm C1, C2, C3 như trên II. Phân cụm nửa giám sát: Phân cụm nửa giám sát là phương pháp phân cụm dựa vào những thông tin bổ trợ để hướng dẫn quá trình phân nhóm. Thông tin bổ trợ này có thể là các ràng buộc hoặc là những tập dữ liệu mẫu đã được gán nhãn. Công việc này được thực hiện bởi người phân cụm dựa vào kinh nghiệm hoặc các tiêu chuẩn khác nhau theo mục đích của việc phân cụm. 1. Thuật toán Cop-Kmeans: Thuật toán COP-Kmeans được tác giả Wagstaff đề xuất năm 2001. Các thông tin bổ trợ được cung cấp dưới dạng một tập các ràng buộc Must- link và cannot-link. Trong đó : Must-link: hai đối tượng dữ liệu phải cùng nằm trong một cụm Cannot-link: hai đối tượng dữ liệu phải khác cụm với nhau. Các ràng buộc này được áp dụng vào trong suốt quá trình phân cụm nhằm điều hướng quá trình phân cụm để đạt được kết quả phân cụm theo ý muốn. Thuật toán COP-Kmeans được thực hiện như sau : 8 d Thuật toán: COP-KMeans. Input: - Tập các đối tượng dữ liệu X = { x 1 , , x N } , x i ∈ℜ - Số lượng cụm: K - Tập ràng buộc must-link và cannot-link Output: K phân hoạch tách rời: { X h } h=1 K của X sao cho hàm mục tiêu được tối ưu. Các bước: 1. Khởi tạo các cụm: các tâm ban đầu được chọn ngẫu nhiên sao cho không vi phạm ràng buộc đã cho. 2. Lặp cho tới khi hội tụ 2.1 Gom cụm : gán mỗi đối tượng dữ liệu vào trong cụm gần nhất sao cho không vi phạm ràng buộc 2.2 Ước lượng tâm: cập nhật lại tâm là trung bình của tất cả đối tượng nằm trong cụm của tâm đó. 2.3 t ← t+1 2. Thuật toán Seeded-Kmeans: Thuật toán Seeded-KMeans sử dụng các cụm giống S h để khởi tạo cho thuật toán K-Means. Do vậy thay vì phải khởi tạo K cụm ngẫu nhiên chúng ta khởi tạo K cụm từ tập giống. Với tập giống là những phần tử đã được dán nhãn, do người thực hiện phân cụm xác 9 định từ kinh nghiệm hoặc từ những tiêu chuẩn cụ thể đối với từng mục đích phân cụm. [...]... tập các ràng buộc, Seeded -Kmeans sử dụng tập giống Phân cụm nửa giám sát là quá trình kết hợp giữa người và máy để tăng chất lượng phân cụm III Demo thuật toán K-mean: Dữ liệu dùng để phân cụm là 1 CSDL về Họ Tên và Tuổi Sử dụng thuật toán K-mean để phân những đối tượng vào các cụm khác nhau dựa trên độ tuổi 10 Giao diện của chương trình * Giới thiệu về cách thức hoạt động của chương trình: Để phân cụm. ..Bằng cách khởi tạo K cụm từ tập giống đã cho, người dùng có thể can thiệp vào quá trình phân cụm nhằm đạt được một kết quả theo ý muốn Nhưng thuật toán này chỉ có thể hoạt động tốt nếu biết trước được số cụm * Nhận xét: Thuật toán Cop -Kmeans và thuật toán SeededKmeans là những thuật toán phân cụm nữa giám sát, về bản chất thì chúng giống nhau: sử dụng những thông tin bổ trợ do người dùng cung cấp Cop -Kmeans. .. các cụm khác nhau dựa trên độ tuổi 10 Giao diện của chương trình * Giới thiệu về cách thức hoạt động của chương trình: Để phân cụm ta thực hiện theo những bước như sau: 1 Nhập thông tin về các đối tượng cần phân cụm 2 Chọn số nhóm 3 Thiết lập trọng tâm 11 4 Ghi trọng tâm 5 Kết quả 12 13 . chế và phát huy ưu điểm của phương pháp phân cụm không giám sát. Trong phạm vi của tiểu luận, chúng em xin trình bày thuật toán phân cụm Kmean, demo thuật toán Kmean, thuật toán phân cụm nửa. 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ự. II. Thuật toán K-MEANS: 1. Giới thiệu về thuật toán K-means: Phương pháp K-means phân hoạch các đối tượng vào các cụm dựa trên khoảng cách của các đối tượng đó đến trọng tâm của các cụm.

Ngày đăng: 02/06/2015, 17:30

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w