Cụm dữ liệu lớn trong R và lấy mẫu có liên quan?


13

Tôi chưa quen với khoa học dữ liệu và gặp vấn đề khi tìm cụm trong bộ dữ liệu với 200.000 hàng và 50 cột trong R.

Vì dữ liệu có cả biến số và biến danh nghĩa, nên các phương thức như K-mean sử dụng thước đo khoảng cách Euclide dường như không phải là một lựa chọn thích hợp. Vì vậy, tôi chuyển sang PAM, agnes và hclust chấp nhận ma trận khoảng cách làm đầu vào.

Phương pháp daisy có thể hoạt động trên dữ liệu kiểu hỗn hợp nhưng ma trận khoảng cách quá lớn: 200.000 lần 200.000 lớn hơn nhiều so với 2 ^ 31-1 (giới hạn độ dài vectơ trước R 3.0.0.)

R 3.0.0 mới được phát hành ngày hôm qua hỗ trợ các vectơ dài với chiều dài dài hơn 2 ^ 31-1. Nhưng một ma trận kép 200.000 đến 200.000 yêu cầu RAM liên tục lớn hơn 16Gb, điều này không thể có trên máy của tôi.

Tôi đã đọc về tính toán song song và gói bigmemory và không chắc chúng có giúp được không: nếu tôi đang sử dụng daisy, nó sẽ tạo ra một ma trận lớn không thể phù hợp với bộ nhớ.

Tôi cũng đã đọc về bài đăng về lấy mẫu: Lấy mẫu có liên quan trong thời điểm 'dữ liệu lớn' không?

Vì vậy, trong trường hợp của tôi, có liên quan đến việc sử dụng lấy mẫu trên tập dữ liệu, cụm trên mẫu và sau đó suy ra cấu trúc của toàn bộ tập dữ liệu không?

Bạn có thể vui lòng cho tôi một số gợi ý? Cảm ơn bạn!

Về máy của tôi:

Phiên bản R 3.0.0 (2013-04-03)

Nền tảng: x86_64-w64-mingw32 / x64 (64-bit)

HĐH: Windows 7 64 bit

RAM: 16,0GB


Phương pháp phân cụm duy nhất mà tôi biết là dành cho dữ liệu lớn (ví dụ: hàng triệu trường hợp) và có thể chấp nhận các biến danh nghĩa cùng với các biến số là cụm TwoStep được tìm thấy trong SPSS.
ttnphns

Câu trả lời:


4

Ôi(n3)Ôi(n2)

Bản thân PAM không nên yêu cầu một ma trận khoảng cách hoàn chỉnh, nhưng thuật toán được biết là có tỷ lệ xấu, bởi vì sau đó nó cần (tính lại) tất cả các khoảng cách theo cặp trong mỗi cụm trên mỗi lần lặp để tìm các phần tử trung tâm nhất. Điều này ít hơn nhiều nếu bạn có một số lượng lớn các cụm, nhưng tuy nhiên khá tốn kém!

Ôi(ntôiogn)

Tuy nhiên, đối với hầu hết các thuật toán này, trước tiên bạn cần đảm bảo chức năng khoảng cách của bạn thực sự tốt; sau đó bạn cần xem xét các cách để tăng tốc truy vấn bằng cách sử dụng các chỉ mục thích hợp.

Cũng lưu ý rằng trong nhiều trường hợp - và điều này có thể đúng với PAM - trước tiên bạn có thể chạy thuật toán trên một mẫu , sau đó chỉ tinh chỉnh nó trên tập dữ liệu đầy đủ. Nếu mẫu của bạn là đại diện, các thuật toán như k-mean và PAM sẽ cung cấp cho bạn về cơ bản kết quả giống như trên tập dữ liệu hoàn chỉnh.


Sẽ không giúp OP ở đây, nhưng trong trường hợp có người khác đi cùng có số mẫu "trung gian": cũng có fastcluster cho R (xem math.stanford.edu/~muellner/fastcluster.html ).
cbeleites hỗ trợ Monica

Xin chào Anony-Mousse, bạn có thể vui lòng chỉ cho tôi một số thuật toán sử dụng gia tốc cấu trúc chỉ mục không? Cảm ơn rất nhiều!

Ví dụ, DBSCAN có thể được tăng tốc tốt với các chỉ mục hỗ trợ các truy vấn phạm vi epsilon. Có lẽ có nghĩa là thay đổi cụm, quá. OPTICS, cũng có thể được tăng tốc theo cách này, có thể được xem là phiên bản nâng cao hơn của phân cụm liên kết (bạn có thể gọi nó là "phân cụm liên kết mật độ phân cấp")
Có QUIT - Anony-Mousse

2

hãy thử hàm CLARA từ gói cụm trong R. Nó thực hiện thuật toán giống như pam bằng cách lấy mẫu dữ liệu của bạn (đảm bảo bạn cung cấp kích thước mẫu phụ có ý nghĩa cho dữ liệu của bạn vì giá trị mặc định quá nhỏ). Nó hoạt động đặc biệt tốt nếu các mediod trong dữ liệu của bạn có thể được biểu thị bằng một mẫu nhỏ của tổng dữ liệu (nghĩa là - có tương đối ít cụm trong tập dữ liệu). Bằng cách này, bạn có thể phân cụm hiệu quả với một mẫu ngẫu nhiên nhỏ và thêm điểm vào giải pháp phân cụm được tính toán trước.

http://en.wikibooks.org/wiki/Data_Mining_Alacticms_In_R/Clustering/CLARA


chào zzk, cảm ơn đã trả lời. Tôi đã đọc về clara trước đây nhưng có vẻ như nó chỉ cung cấp số liệu euclid và manhattan. Vấn đề chính là tập dữ liệu của tôi có cả biến số và biến danh nghĩa. Vì vậy, không sử dụng số liệu để đo khoảng cách là không phù hợp.

à vâng, đó cũng là một hạn chế đối với tôi. Tôi tin rằng phương pháp thực sự có thể được thực hiện trên bất kỳ khoảng cách tùy ý nào, nhưng tôi không bận tâm xem qua mã nguồn để xem liệu nó có thể được thay đổi hay không.
zzk

0

Bạn cũng có thể áp dụng nhiều phân tích tương ứng trên các biến định tính của mình và biến đổi thành biến số.


2
Đây có vẻ là một ý tưởng tốt, nhưng nó có thể hơi thưa thớt. Bạn có thể xác nhận điều này một chút để giải thích nó là gì và tại sao điều đó sẽ giúp ích?
gung - Phục hồi Monica
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.