K-nghĩa nhanh như thuật toán cho 10 ^ 10 điểm?


14

Tôi đang tìm cách làm k-nghĩa là phân cụm trên một tập hợp các điểm 10 chiều. Bắt: có 10 ^ 10 điểm .

Tôi đang tìm kiếm chỉ trung tâm và kích thước của các cụm lớn nhất (giả sử 10 đến 100 cụm); Tôi không quan tâm đến cụm nào mỗi điểm kết thúc. Sử dụng k-nghĩa cụ thể là không quan trọng; Tôi chỉ tìm kiếm một hiệu ứng tương tự, bất kỳ phương tiện k gần đúng hoặc thuật toán liên quan nào cũng sẽ rất tuyệt (phương tiện xe buýt nhỏ-SGD, ...). Vì GMM có ý nghĩa tương tự như k-mean, nên thực hiện GMM trên cùng một dữ liệu kích thước cũng rất thú vị.

Ở quy mô này, việc lấy mẫu dữ liệu có thể không thay đổi kết quả đáng kể: tỷ lệ tìm thấy 10 cụm hàng đầu giống nhau bằng cách sử dụng mẫu 1/10000 của dữ liệu là rất tốt. Nhưng ngay cả khi đó, đó là một vấn đề 10 ^ 6 điểm nằm trên / ngoài rìa của khả năng kéo.


1
Một số thuật toán được mô tả trong cuốn sách "Khai thác dữ liệu lớn", mà bạn có thể tải xuống miễn phí tại đây . Đọc Chương 7 "Phân cụm".
lanenok 11/05/2015

Câu trả lời:


12

k-nghĩa là dựa trên mức trung bình .

Nó mô hình các cụm sử dụng các phương tiện, và do đó, việc cải thiện bằng cách thêm nhiều dữ liệu là không đáng kể. Lỗi của ước lượng trung bình giảm với 1 / sqrt (n); vì vậy, việc thêm nhiều dữ liệu sẽ ngày càng ít đi ...

Các chiến lược cho dữ liệu lớn như vậy luôn xoay quanh việc lấy mẫu:

Nếu bạn muốn thời gian chạy tuyến tính, bạn phải lấy mẫu!

Trong thực tế, Mini-Batch-Kmeans, vv thực hiện chính xác điều này: lấy mẫu nhiều lần từ bộ dữ liệu.

Tuy nhiên, lấy mẫu (cụ thể là lấy mẫu không thiên vị) cũng không hoàn toàn miễn phí ... thông thường, bạn sẽ phải đọc dữ liệu của mình một cách tuyến tính để lấy mẫu, vì bạn không có quyền truy cập ngẫu nhiên vào các bản ghi riêng lẻ.

Tôi sẽ đi với thuật toán của MacQueen. Nó trực tuyến; theo mặc định, nó thực hiện một lần chuyển qua dữ liệu của bạn (mặc dù nó rất phổ biến để lặp lại điều này). Việc phân phối không dễ dàng, nhưng tôi đoán bạn có đủ khả năng đọc tuyến tính dữ liệu của mình nói 10 lần từ SSD không?


Tôi không biết về thuật toán trực tuyến của MacQueen! Có phải nó thường nhận được kết quả tương tự như K-nghĩa "cổ điển" không? Thay vì sử dụng lấy mẫu hồ chứa thay thế? Bằng cách đó, OP có một mẫu để chạy lại phương tiện K trong trường hợp cần kiểm tra nhiều giá trị của K.
Victor Ma

6

Như một lưu ý bên lề rằng việc sử dụng K-nghĩa cho dữ liệu 10D có thể sẽ không xuất hiện theo lời nguyền của chiều. Tất nhiên, nó thay đổi một chút theo tính chất của dữ liệu nhưng một khi tôi cố gắng xác định ngưỡng mà K-Means bắt đầu hành xử kỳ lạ liên quan đến chiều, tôi nhận được thứ gì đó giống như 7D. Sau 7 chiều, nó bắt đầu bỏ lỡ các cụm chính xác (dữ liệu của tôi được tạo thủ công theo 4 phân phối Gaussian được phân tách tốt và tôi đã sử dụng hàm MATLAB kmeans cho thử nghiệm nhỏ của mình).


Điều này là có thể và tất nhiên, luôn phụ thuộc vào dữ liệu. Tuy nhiên, do người đăng có 10 mẫu 10 (có lẽ là độc lập), có vẻ như 10 chiều sẽ không phải là vấn đề quá lớn ở đây.
Ryan J. Smith

2
Cảm ơn bình luận của bạn @ RyanJ.Smith. bình luận của bạn là chính xác theo cùng một hướng của tôi. Tôi chỉ không thấy bất cứ điều gì liên quan đến vấn đề này trong bài viết. Và về nr của các mẫu; tuy nhiên anh ta có nhiều điểm mẫu anh ta vẫn có thể bị mắc kẹt trong vấn đề chiều. Tôi nghĩ rằng bạn đang tranh luận về mặt trái của Vấn đề Kích thước Mẫu thấp mà tôi cho là không hợp lệ. Nếu anh ta có dữ liệu chiều cao, kích thước mẫu thấp sẽ là một vấn đề nhưng tôi nghĩ rằng một lượng lớn dữ liệu không nhất thiết có nghĩa gì cả.
Kasra Manshaei

10 chiều chưa phải là nhiều.
Anony-Mousse -Reinstate Monica

1
Làm thế nào để bạn xác định bạn của tôi? những gì tôi nói là kết quả của một thí nghiệm được thiết kế để trả lời một câu hỏi như vậy tuy nhiên nó KHÔNG THỂ được trả lời chung chung! "Rất nhiều" trong bình luận của bạn chính xác là gì? nó phụ thuộc vào nhiều trường hợp như tôi đã đề cập trong câu trả lời của mình. trong một số tình huống 10D có thể có vấn đề.
Kasra Manshaei
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.