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

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

Đ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

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 [...]... 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. .. 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, http://www.codeproject.com/Articles/439890/Text-Documents-Clusteringusing -K-Means- Algorithm... 2012, http://www.codeproject.com/Articles/439890/Text-Documents-Clusteringusing -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 12 . 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. 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. 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)

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

Từ khóa liên quan

Mục lục

  • 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.

  • MỤC LỤC

  • C. PHẦN MỞ ĐẦU

  • D. PHẦN NỘI DUNG

    • I. THUẬT TOÁN K-MEANS

      • 1. Phương pháp phân hoạch

      • 2. Độ đo khoảng cách

      • 3. Thuật toán k-means

      • 4. Điều kiện dừng của thuật toán

      • 5. Cách chọn nhóm khởi tạo

      • 6. Nhận xét

      • 7. Các biến thể của k-means

      • II. CHƯƠNG TRÌNH K-MEANS

        • 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)

        • 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

        • 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.

        • E. PHẦN KẾT LUẬN

        • F. PHẦN TÀI LIỆU THAM KHẢO

Tài liệu cùng người dùng

Tài liệu liên quan