Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 23 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
23
Dung lượng
351,5 KB
Nội dung
Đại học Quốc gia Thành phố Hồ Chí Minh Trường Đại học Công nghệ thông tin Khoa Mạng máy tính và truyền thông o0o Bài báo cáo môn: KHAI PHÁ DỮ LIỆU VÀ KHO DỮ LIỆU Đề tài: Thuật toán K-Means và ứng dụng trong thực tế GVHD : PGS.TS. Đỗ Phúc Học viên : Bùi Anh Kiệt MSHV : CH1101018 Tp. Hồ Chí Minh – Ngày 24 tháng 11 năm 2012 Khai phá dữ liệu & kho dữ liệu Thuật toán K-Means & ứng dụng thực tế Lờ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. Học viên: Bùi Anh Kiệt – CH1101018 2 Khai phá dữ liệu & kho dữ liệu Thuật toán K-Means & ứng dụng thực tế Mụ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 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.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 Học viên: Bùi Anh Kiệt – CH1101018 3 Khai phá dữ liệu & kho dữ liệu Thuật toán K-Means & ứng dụng thực tế 1 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ình thà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ụm nế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ền tả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ụm tươ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ình cho đế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 đó: m i 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à trung cộ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 Học viên: Bùi Anh Kiệt – CH1101018 4 Khai phá dữ liệu & kho dữ liệu Thuật toán K-Means & ứng dụng thực tế đ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ật toá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 đối tượng dữ liệu thường được sử dụng là khoảng cách Euclide vì đây là mô hình khoả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ặc quan đ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 đối tượ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ét nhấ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 x 1 x 2 x 3 x 4 x 5 c 1 1 1 0 0 0 c 2 0 0 1 0 1 c 3 0 0 0 1 0 Học viên: Bùi Anh Kiệt – CH1101018 5 Khai phá dữ liệu & kho dữ liệu Thuật toán K-Means & ứng dụng thực tế Trong 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ập nhật. Trong suốt quá trình cập nhật, một đối tượng vẫn chỉ thuộc một cụm duy 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. Vector trọ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 đó, m ij là giá trị tương ứng của hang i, cột j trong ma trận phân hoạch (m ij = 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ách Euclid từ điểm đó đến vector trọng tâm của cụm đó là nhỏ nhất. Khoảng cách Euclid từ một điểm đến một vector trọng tâm được xác định như sau: Học viên: Bùi Anh Kiệt – CH1101018 6 Khai phá dữ liệu & kho dữ liệu Thuật toán K-Means & ứng dụng thực tế 1.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ào như: số cụm k, và k vector trọng tâm khởi tạo ban đầu. Trong trường hợp các vector 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ên thì 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 được khá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ải phá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ệm vớ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ệu t: 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ất hiệ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ộc và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. Học viên: Bùi Anh Kiệt – CH1101018 7 Khai phá dữ liệu & kho dữ liệu Thuật toán K-Means & ứng dụng thực tế - 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ạng cụ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ởi mộ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ật toá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ăng phâ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. Học viên: Bùi Anh Kiệt – CH1101018 8 Khai phá dữ liệu & kho dữ liệu Thuật toán K-Means & ứng dụng thực tế 2 Ứng dụng thuật toán K-Means trong thực tế 2.1 Phân đoạn ảnh Phân đoạn ảnh được xem như là ứng dụng cơ bản của các thuật toán phân cụm. Định nghĩa: - Phân đoạn ảnh được hiểu là từ một ảnh đầu vào, thong qua các thuật toán phân cụm mà tách thành các vùng miền khác nhau và các đối tượng được tách ra đó được gọi là ảnh con. - 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à đồng nhấ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ộ hay từ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 khi thực hiện các thao tác khác ở mức cao hơn như nhận dạng đối tượng, biểu diễn đối tượng, nén ảnh dựa trên đối tượng, hay truy vấn ảnh dựa vào nội dung. Ứ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ùng không trùng lắp. Mỗi vùng gồm một nhóm pixel liên thông và đồng nhất theo 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ình phâ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ủa cá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 gian mẫ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. Học viên: Bùi Anh Kiệt – CH1101018 9 Khai phá dữ liệu & kho dữ liệu Thuật toán K-Means & ứng dụng thực tế - 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ội dung ảnh. Tuỳ theo các kỹ thuật mà các thuật giải này áp dụng, chúng được phâ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. 2.2 Nhận dạng Có hai kỹ thuật nhận dạng chính trong thuật toán nhận dạng là nhận dạng đối tượng và nhận dạng kí tự: - Nhận dạng đối tượng là rút trích hình ảnh đối tượng trong trong một tập đối tượng xuất hiện trong hình ảnh. Nhận dạng đối tượng được áp dụng nhiều trong các ngành khoa học tiên tiến như y khoa, sinh hóa hay khoa học hình sự… Trong y khoa, thuật toán nhận dạng đối tượng giúp ích cho việc xác định các đối tượng lạ (vật thể lạ, khối u bứu…) trong hình ảnh chụp từ bên trong cơ thể. Việc xác định các đối tượng lạ này thông qua việc so sánh đối tượng của hai bức ảnh tương đương, dựa vào đó mà các chuyên viên y khoa sẽ biết được những vấn đề về sức khoẻ của bệnh nhân. Trong kỹ thuật sinh hoá, 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ới hì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 Học viên: Bùi Anh Kiệt – CH1101018 10 [...]... có thuật toán nào có thể đạt được hiệu quả tuyệt đối Học viên: Bùi Anh Kiệt – CH1101018 14 Khai phá dữ liệu & kho dữ liệu Thuật toán K-Means & ứng dụng thực tế Vì lẽ đó nên để hệ thống thuật toán gom cụm đạt hiệu quả cao chúng ta cần phải hạn chế yếu điểm của thuật toán càng nhiều càng tốt (vì không thể loại bỏ những yếu điểm tồn tại trong thuật toán) Phương pháp dễ nhận thấy nhất trong thuật toán K-Means. .. ứng dụng thực tế Hình 2 Nội dung file dữ liệu đầu vào Học viên: Bùi Anh Kiệt – CH1101018 18 Khai phá dữ liệu & kho dữ liệu Thuật toán K-Means & ứng dụng thực tế Hình 3 Giao diện người dùng cho việc chọn dữ liệu đầu vào có sẵn Học viên: Bùi Anh Kiệt – CH1101018 19 Khai phá dữ liệu & kho dữ liệu Thuật toán K-Means & ứng dụng thực tế Hình 3 Giao diện người dùng cho việc chọn thao tác dữ liệu đầu vào Chương... ảnh và khai phá dữ liệu Tuy nhiên với những đặc điểm nổi trội trong việc gom cụm, K-Means sẽ còn được ứng dụng nhiều hơn và đóng vai trò cốt yếu trong nhiều lĩnh vực khác của cuộc sống Học viên: Bùi Anh Kiệt – CH1101018 16 Khai phá dữ liệu & kho dữ liệu Thuật toán K-Means & ứng dụng thực tế Phụ lục Giới thiệu về chương trình cài đặt cho thuật toán K-Means Hình 1 Giao diện chương trình cài đặt thuật toán. .. liệu Thuật toán K-Means & ứng dụng thực tế Hình 5 Quá trình tính toán và kết quả cuối cùng Ngoài ra, người dùng có thể chọn lưu dữ liệu vừa thao tác bằng tay thông qua button “save info” hay xoá tất cả nội dung vừa thao tác bằng button “clear all” Học viên: Bùi Anh Kiệt – CH1101018 22 Khai phá dữ liệu & kho dữ liệu Thuật toán K-Means & ứng dụng thực tế Tài liệu tham khảo 1 Định nghĩa thuật toán K-Means. .. quá trình tính toán Học viên: Bùi Anh Kiệt – CH1101018 15 Khai phá dữ liệu & kho dữ liệu Thuật toán K-Means & ứng dụng thực tế 4 Kết luận K-Means là thuật toán gom cụm đầu tiên được phát hiện và phát triển Dù vẫn còn nhiều hạn chế về khả năng tìm ra kết quả cuối cùng chính xác nhất nhưng KMeans vẫn là thuật toán gom cụm cơ bản nhất Có rất nhiều thuật toán gom cụm mới đã được tìm hiểu và thực sự đã khắc... loại và đánh giá 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ông sứ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ông việc này, thuật toán gom cụm được sử dụng như phương pháp chính để khai hoàn thành mục đích đặt ra Học viên: Bùi Anh Kiệt – CH1101018 12 Khai phá dữ liệu & kho dữ liệu Thuật toán K-Means & ứng dụng thực tế 3 Cài đặt thuật toán K-Means. ..Khai phá dữ liệu & kho dữ liệu Thuật toán K-Means & ứng dụng thực tế dung 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... 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ạch cho 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ới mộ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. .. là ưu tiên Và trên thực tế, đã có rất nhiều thuật toán đã ra đời với mục đích cải thiện về tốc độ và tìm ra lời giải tối ưu nhất Tuy vẫn chưa đạt được mục đích cuối cùng nhưng có thể khẳng định đó là hướng phát triển đúng của việc phát triển các thuật toán gom cụm Với những ưu điểm về tốc độ xử lí, hiện nay K-Means đang được ứng dụng trong rất nhiều lĩnh vực cuộc sống Và hai mảng chính mà K-Means đóng... 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ững thuậ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ựa trê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ựa và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 . & kho dữ liệu Thuật toán K-Means & ứng dụng thực tế 2 Ứng dụng thuật toán K-Means trong thực tế 2.1 Phân đoạn ảnh Phân đoạn ảnh được xem như là ứng dụng cơ bản của các thuật toán phân cụm Ứ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. ứng dụng thực tế Mụ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 2 Ứng