2011-08-28 27 views
8

Tôi đang cố triển khai thuật toán phân cụm Canopy cùng với K-Means. Tôi đã thực hiện một số tìm kiếm trực tuyến cho biết sử dụng phân cụm Canopy để có được điểm bắt đầu ban đầu của bạn để nạp vào K-means, vấn đề là, trong phân cụm Canopy, bạn cần chỉ định 2 giá trị ngưỡng cho tán: T1 và T2, các điểm trong ngưỡng bên trong được gắn chặt với tán cây đó và các điểm trong ngưỡng rộng hơn ít gắn với tán đó hơn. Các ngưỡng này, hoặc khoảng cách từ trung tâm tán, được xác định như thế nào?Làm thế nào để chọn giá trị ngưỡng T1 và T2 cho cụm Canopy?

vấn đề bối cảnh:

Vấn đề tôi đang cố gắng để giải quyết là, tôi có một tập hợp các số như [1,30] hoặc [1.250] với thiết lập kích thước của khoảng 50. Có thể có yếu tố trùng lặp và chúng cũng có thể là số dấu phẩy động, chẳng hạn như 8, 17.5, 17.5, 23, 66, ... Tôi muốn tìm các cụm tối ưu hoặc tập hợp con của tập hợp các số.

Vì vậy, nếu cụm Canopy với K-means là một lựa chọn tốt, thì câu hỏi của tôi vẫn là viết tắt: làm sao bạn tìm được giá trị T1, T2 ?. Nếu đây không phải là một lựa chọn tốt, có một thuật toán tốt hơn, đơn giản hơn nhưng hiệu quả hơn để sử dụng không?

+0

Đây là một câu hỏi tương tự khác http://stats.stackexchange.com/questions/13895/how-do-i-algorithmically-determine-values-of-t1-t2-for-canopy-clustering – cyraxjoe

+0

Bạn đã có bất kỳ may mắn với điều này chưa? Tôi đang tìm cách sử dụng Canopy Clustering để tìm một cụm ban đầu được đặt để cấp dữ liệu cho K-Means. Tôi có thể chỉ sử dụng "Phương pháp nhảy" như được mô tả [ở đây] (http://en.wikipedia.org/wiki/Determining_the_number_of_clusters_in_a_data_set) (có vẻ giống với phương pháp @rpd mô tả trong câu trả lời của anh ấy), nhưng nếu bạn đã tìm thấy một cách tốt để xác định T1 và T2 tôi muốn sử dụng Canopy Clustering để thay thế. – JesseBuesking

Trả lời

2

Có lẽ ngây thơ, tôi thấy vấn đề về một loại ước lượng quang phổ. Giả sử tôi có 10 vectơ. Tôi có thể tính toán khoảng cách giữa tất cả các cặp. Trong trường hợp này tôi sẽ nhận được 45 khoảng cách như vậy. Vẽ chúng như một biểu đồ trong các khoảng cách khác nhau. Ví dụ. 10 khoảng cách nằm trong khoảng từ 0,1 đến 0,2, 5 từ 0,2 đến 0,3 vv và bạn sẽ biết được khoảng cách giữa các vectơ được phân phối như thế nào. Từ thông tin này, bạn có thể chọn T1 và T2 (ví dụ: chọn chúng để bạn bao gồm phạm vi khoảng cách đông dân cư nhất).

Tất nhiên, điều này không thực tế đối với tập dữ liệu lớn - nhưng bạn có thể lấy một mẫu ngẫu nhiên hoặc một thứ gì đó để ít nhất bạn biết về sân chơi bóng chày T1 và T2. Sử dụng một cái gì đó như Hadoop bạn có thể làm một số loại ước lượng quang phổ trước đó trên một số lượng lớn các điểm. Nếu tất cả dữ liệu đến mà bạn đang cố gắng phân cụm được phân phối theo cùng một cách thì bạn cần phải nhận T1 và T2 một lần, sau đó sửa chúng thành hằng số cho tất cả các lần chạy trong tương lai.

2

Thực ra đó là vấn đề lớn với cụm Canopy. Chọn các ngưỡng là khá nhiều khó khăn như các thuật toán thực tế. Đặc biệt trong các chiều cao. Đối với bộ dữ liệu địa lý 2D, chuyên gia miền có thể xác định ngưỡng khoảng cách dễ dàng. Nhưng trong dữ liệu chiều cao, có lẽ cách tốt nhất bạn có thể làm là để chạy k-means trên mẫu dữ liệu của mình trước tiên, sau đó chọn khoảng cách dựa trên chạy mẫu này.

Các vấn đề liên quan