Các thuật toán phân cụm cho dữ liệu thưa nhị phân chiều cao


7

Tôi có một bộ dữ liệu với 10.000 gen như dưới đây

person gene1 gene2 ... gene10000  ethnic
  1       0      1         1       asian
  2       1      0         1       European

Mỗi hàng có nghĩa là, một người có gen trong DNA của họ hay không. Chúng tôi đang cố gắng phân loại các nhóm dân tộc khác nhau dựa trên dữ liệu trên. Nhưng trước tiên, chúng tôi muốn sử dụng một số thuật toán phân cụm để hình dung ra cụm đó trông như thế nào đối với các nhóm dân tộc khác nhau. Chúng tôi sẽ không sử dụng thuật toán phân cụm này để phân loại các nhóm, nó sẽ được sử dụng chỉ để hình dung nó trông như thế nào, nếu chúng tôi có các cụm riêng biệt hoặc cụm chồng chéo, v.v.

Vui lòng đề xuất một số thuật toán phân cụm cho loại dữ liệu này. Ngoài ra, kích thước là 10000. Đây có phải là một vấn đề cho việc phân cụm? Tôi có nên sử dụng một số thuật toán giảm kích thước đầu tiên? Nếu vậy xin vui lòng cho lời khuyên của bạn. Cảm ơn trước.


1
Ngay cả khi không có vấn đề gì với việc phân cụm 10000 kích thước (một số thuật toán có, các thuật toán khác không nhiều), bạn sẽ không thể hình dung được nó sau khi phân cụm. Tôi không thể thấy một cách để không làm giảm tính chiều, bằng các kỹ thuật phổ biến (PCA và các phương pháp khác) hoặc bằng cách chọn 2-3 tính năng cùng một lúc.
Mephy

Như đã trả lời trước, trước tiên hãy giải quyết vấn đề trực quan của bạn, sau đó xem xét phân cụm khi điều đó đang hoạt động. Phân cụm làm cho hình dung hơi khó hơn, không dễ dàng hơn.
Có QUIT - Anony-Mousse

Bạn có thể cho tôi một số liên kết đến các tài nguyên cho vấn đề hình dung?
asdlfkjlkj

Câu trả lời:


1

Bạn đã xác định được bao nhiêu dân tộc?

Nếu tôi phải hình dung vấn đề của bạn, tôi sẽ xác định những người có ảnh hưởng chính cho từng nhóm dân tộc theo cách tiếp cận như Naive Bayes. Những gen này (kết hợp gen?!) (Bao gồm các giá trị của chúng) có thể tương quan mạnh với một số nhóm dân tộc, trong khi không (hoặc nghịch đảo) tương quan với nhau.

Đặt chúng trên đầu của một đồ thị kim tự tháp. Đặt các thanh bên trái và bên phải cho các giá trị tương quan.


0

'Phân cụm các nhóm dân tộc khác nhau để trực quan hóa' có vẻ giống như bạn đang cố gắng thực hiện giảm kích thước có giám sát vì bạn đã biết các biến mục tiêu trong trường hợp này.

Vì bạn sẽ sử dụng nó để phân loại sau, tôi giả sử bạn đã biết số lượng các nhóm dân tộc. Điều này có thể được thực hiện bằng cách sử dụng Phân tích phân biệt tuyến tính (LDA). Kiểm tra bài đăng này: /stats/161362/supervised-dimensionality-redraction


0

Thủ tục-1 :

Tôi nghĩ sẽ tốt hơn nếu bạn có thể thử kết hợp một số gen, rất có thể một số người theo xu hướng tương tự, một khi bạn xác định họ thử kết hợp chúng.

Bạn có thể sử dụng một số giảm kích thước, sau đó bạn có thể hiểu rõ hơn về dữ liệu, kể từ bây giờ ngay cả khi bạn cung cấp trực tiếp, có thể mất thời gian để mô hình hiểu và đưa ra một số kết quả hữu ích.

Khi bạn nhận được kết quả của việc giảm thứ nguyên, bạn có thể trực tiếp áp dụng các thuật toán phân loại nhiều lớp như SVM , RF và nhiều thuật toán khác.

Quy trình-2 :

Một điều khác mà bạn có thể thử là, Bạn có thể ghép tất cả các tính năng (Tạo) thành 1 tính năng duy nhất và thử thử hiểu và xem liệu có ý nghĩa gì không / có được một số hiểu biết tốt (Phân tích khám phá).

Hãy cho tôi biết nếu bạn có thắc mắc.

SVM: Máy Vector hỗ trợ

RF: Rừng ngẫu nhiên


Câu trả lời của tôi có hữu ích không?
Toros91

0

Tôi nghi ngờ số lượng các nhóm dân tộc là lớn và bạn được cung cấp một mẫu đủ lớn của những người ngẫu nhiên từ các dân tộc khác nhau để làm việc cùng. Vì vậy, tôi đề xuất như sau:

Thay vì sử dụng phân cụm (phân đoạn không giám sát), bạn có thể sử dụng một nhóm dân tộc ít hạt hơn hiện có. Giả sử các nhóm dân tộc độc đáo của bạn trong bộ dữ liệu thô của bạn giống như trong https://en.wikipedia.org/wiki/List_of_contceed_ethnic_groups sau đó bạn có thể sử dụng một nhóm cấp cao với các nhóm nhỏ hơn như trong https://www.google. com / search? q = dân tộc + nhóm + ở + các + thế giới & rlz = 1C1CHBF_enUS810US810 & OQ = dân tộc + nhóm + ở + các + thế giới & AQS = chrome..69i57.10445j0j8 & sourceid = chrome & ie = UTF-8 với mục đích tìm hiểu các cấu hình nhóm cấp cao : ví dụ bằng cách phân tích thứ hạng giảm dần về số lượng tần số của các tính năng gen phổ biến hơn trong mỗi nhóm. Về mặt kỹ thuật, bạn có thể làm tương tự bằng cách sử dụng các nhóm dân tộc chi tiết hơn ban đầu.

Thông thường, bạn không thể áp dụng phân tích thành phần chính truyền thống trên các tính năng gen vì chúng được phân loại với các giá trị 0 hoặc 1, nhưng bạn có thể áp dụng một phương pháp phù hợp hơn không yêu cầu đầu vào biến liên tục, ví dụ như phương pháp được sử dụng trong gói R này: https: //cran.r-project.org/web/packages/FactoMineR/index.html

Phân cụm và đề xuất trong một lần bắn:

Bạn cũng có thể thử lọc cộng tác rõ ràng yêu cầu dữ liệu phải ở định dạng của người dùng theo mục, theo cách sau:

  1. vì các tính năng gen là tất cả nhị phân, bạn có thể sử dụng id số nhóm dân tộc của mình làm xếp hạng nhưng bạn phải chuyển đổi nó thành số từ 1 đến N nhóm dân tộc riêng biệt
  2. xác định người là thứ nguyên người dùng và id của từng tính năng gen làm thứ nguyên vật phẩm
  3. tổ chức lại dữ liệu dưới dạng [Người, gen, nhóm], trong đó gen = [1,2, ..., N_genes] và nhóm = [1,2, ..., N_ethnic] giữ các hàng trong đó tính năng gen = 1 chỉ trong định dạng này, giá trị 0 được giả sử khi không có sự kết hợp, tách dữ liệu trong các tập dữ liệu huấn luyện và xác thực
  4. Áp dụng Quảng trường tối thiểu thay thế ( https://spark.apache.org/docs/2.2.0/ml-collaborative-filtering.html ) trên dữ liệu đào tạo sau đó sử dụng dữ liệu xác thực để xác thực ALS dự đoán nhóm dân tộc có thể sử dụng tốt như thế nào số lượng phần tử trong nhóm dân tộc nhỏ hơn ở trên là số lượng thành phần ban đầu trong quy trình ALS
  5. Nếu số lượng dự đoán đúng của từng nhóm dân tộc được cung cấp các tính năng gen cho tất cả mọi người cao hơn so với dự đoán không chính xác thì hãy sử dụng mô hình để dự đoán thành viên nhóm dân tộc, bạn cũng có thể xem xét sự pha trộn các đặc điểm gen đặc trưng cho từng nhóm dân tộc từ kết quả này.

0

Nếu bạn biết sự thật cơ bản của dữ liệu, dân tộc ở đây. Bạn có thể hình dung cụm nhị phân của bạn như sau. Tính toán các nguyên mẫu của mỗi cụm sử dụng phiếu bầu đa số cho mỗi tính năng có độ phức tạp tuyến tính về số lượng quan sát và số lượng tính năng. Sau đó hình dung mỗi nguyên mẫu nhị phân như một lưới nhị phân có kích thước100×100 cho bạn 10000đặc trưng. Chọn hai màu yêu thích của bạn và thưởng thức. Bạn sẽ thấy nếu centroid trùng nhau với những người khác khi họ chia sẻ cùng màu ở cùng một pixel. Nếu bạn muốn phân cụm dữ liệu của mình một cách nhanh chóng, tôi sẽ khuyên bạn nên bắt đầu vớiK-ModeS tương đương nhị phân của K-MemộtnS, cả hai đều ở trong Ôi(n), bộ Kphù hợp với số lượng dân tộc của bạn và một khi bạn có các cụm áp dụng lại phiếu bầu đa số để trích xuất các nguyên mẫu, hãy hình dung chúng và quan sát nếu nó có sự tương đồng với sự thật mặt đất. Bạn có thể tìm thấy một phiên bản thuật toán dễ sử dụng ở đây với một ví dụ bootstrap thực tế, với trực quan hóa, trên SparkNotebook này .


0

Bạn đã biết mỗi nhóm thuộc về nhóm nào, vì vậy bạn cần chạy thuật toán phân cụm để đưa ra dự đoán này cho bạn. Câu hỏi của bạn là về khám phá dữ liệu: Bạn đang cố gắng hiểu dữ liệu của mình. Vấn đề thực tế của bạn là một vấn đề phân loại được giám sát (nhiều lớp) và các thuật toán phân cụm không phù hợp với điều đó, bởi vì chúng không được giám sát.

Tôi khuyên bạn nên làm hai việc: Thứ nhất, giảm tính chiều để có thể hình dung. Thứ hai, tính toán số liệu trên bộ dữ liệu chiều cao ban đầu để hiểu rõ hơn.

Để trực quan hóa dữ liệu, tôi khuyên bạn nên sử dụng t-SNE để trực quan hóa theo hai chiều và màu sắc với nhóm dân tộc . Điều này sẽ cho bạn một ý tưởng nếu dữ liệu của bạn tạo thành cụm trong không gian 10k chiều.

Sau đó, nếu bạn muốn cải thiện cảm giác hoặc trực giác về dữ liệu của mình hơn nữa, bằng cách nghĩ về nó theo cụm trong không gian 10 chiều, thì bạn có thể tính toán các số liệu cụm như điểm Silhouette , độ nén của cụm (khoảng cách trung bình đến giữa) hoặc hiển thị khoảng cách giữa các cụm trong bản đồ nhiệt . Bạn có thể hợp nhất hai cụm bằng cách cho chúng cùng một nhãn và xem kết quả của bạn thay đổi như thế nào.

Tôi không thể lường trước được kết quả mà bạn có thể nhận được, vì vậy nó có thể rất sáng, có nghĩa là bạn có thể nói rằng một số cụm rất nhỏ gọn, một số khác rất rộng, một số rất giống với những cái khác, v.v. Nhưng có lẽ, bằng cách sử dụng các phương pháp trên, bạn hoàn toàn không thể hiểu được dữ liệu của mình. Nếu điều đó xảy ra, thì tôi sẽ nói rằng đã đến lúc ngừng suy nghĩ về dữ liệu của bạn như là các điểm trong "không gian gen", với sự khác biệt giữa những người chỉ ra "khoảng cách", v.v. Trong trường hợp này, có thể là ánh xạ từ gen sang sắc tộc việc phân nhóm phức tạp hơn (phi tuyến tính) so với phân cụm không gian, vì vậy bạn cần sử dụng thuật toán phân loại có khả năng mã hóa tính phi tuyến tính này.

Học sâu không có nhiều điều kiện tiên quyết nhưng một trong số đó là nó chỉ có thể mã hóa các chức năng liên tục. Mạng nơ-ron cũng yêu cầu các tính năng đầu vào số, có giá trị thực. Vì vấn đề của bạn có dữ liệu nhị phân và không có lý do gì để nghĩ rằng gen lập bản đồ dân tộc là một chức năng trơn tru, có lẽ các thuật toán dựa trên cây quyết định là một nơi tốt để bắt đầu.

Chúc may mắn! :-)

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.