Trực quan hóa dữ liệu đa chiều (LSI) trong 2D


11

Tôi đang sử dụng lập chỉ mục ngữ nghĩa tiềm ẩn để tìm sự tương đồng giữa các tài liệu ( cảm ơn, JMS! )

Sau khi giảm kích thước, tôi đã thử phân cụm k-nghĩa để nhóm các tài liệu thành các cụm, hoạt động rất tốt. Nhưng tôi muốn đi xa hơn một chút và hình dung các tài liệu như một tập hợp các nút, trong đó khoảng cách giữa hai nút bất kỳ tỷ lệ nghịch với độ tương tự của chúng (các nút rất giống nhau gần nhau).

Tôi nhận ra rằng tôi không thể giảm chính xác ma trận tương tự thành đồ thị 2 chiều vì dữ liệu của tôi> 2 chiều. Vì vậy, câu hỏi đầu tiên của tôi: có một cách tiêu chuẩn để làm điều này?

Tôi có thể giảm dữ liệu của mình xuống hai chiều và sau đó vẽ chúng dưới dạng trục X và Y không, và điều đó có đủ cho một nhóm ~ 100-200 tài liệu không? Nếu đây là giải pháp, tốt hơn hết là giảm dữ liệu của tôi xuống 2 chiều ngay từ đầu hoặc có cách nào để chọn hai thứ nguyên "tốt nhất" từ dữ liệu đa chiều của tôi không?

Tôi đang sử dụng Python và thư viện gensim nếu điều đó tạo ra sự khác biệt.


Tại sao bạn cần giảm chiều? Để xây dựng biểu đồ bạn muốn, bạn chỉ cần các cạnh trong đó độ dài của cạnh tỷ lệ với khoảng cách giữa các tài liệu. Bạn đã có điều đó, từ số liệu được sử dụng cho phân cụm k-mean của bạn.
Aman

@Aman không hoạt động để hiển thị sự giống nhau giữa> 2 tài liệu trên mặt phẳng 2D (biểu đồ). chắc chắn, tôi có thể vẽ các điểm A và B với khoảng cách dựa trên khoảng cách k-mean. nhưng sau đó khi tôi cần vẽ điểm C, dựa trên khoảng cách đến A và B, thông thường không có điểm nào trong không gian 2D thỏa mãn tất cả các mối quan hệ theo cặp.
Jeff

Câu trả lời:


7

Đây là những gì MDS (chia tỷ lệ đa chiều) được thiết kế cho. Nói tóm lại, nếu bạn được cung cấp một ma trận tương tự M, bạn muốn tìm xấp xỉ gần nhất trong đó có thứ hạng 2. Điều này có thể được thực hiện bằng cách tính toán SVD của trong đó .S=XXSM=VΛV=XXX=VΛ1/2

Bây giờ, giả sử rằng được hoán vị để các giá trị riêng theo thứ tự giảm dần, hai cột đầu tiên của là nhúng bạn muốn trong mặt phẳng.ΛX

Có rất nhiều mã có sẵn cho MDS (và tôi sẽ ngạc nhiên nếu scipy không có phiên bản nào của nó). Trong mọi trường hợp miễn là bạn có quyền truy cập vào một số thói quen SVD trong python bạn đã đặt.


1
Tôi nghĩ rằng LDA sẽ tốt hơn cho việc này. PCA - như bạn nhận được thông qua SVD- sẽ không lưu giữ bất kỳ thông tin phân biệt đối xử cụm (lớp) nào, đó là những gì OP có sau.
Zhubarb

0

Có một phần mềm được gọi là ggobi có thể giúp bạn. Nó cho phép bạn khám phá các không gian giả đa chiều. Phần lớn là để khám phá dữ liệu nhưng giao diện của nó cực kỳ thân thiện và 'nó chỉ hoạt động'!

Bạn chỉ cần một định dạng CSV (trong RI thường chỉ sử dụng write.csv với các tham số mặc định) hoặc tệp XML (định dạng này cho phép bạn kiểm soát nhiều hơn; Tôi thường lưu bảng của mình trong CSV sau đó xuất nó sang XML bằng ggobi và chỉnh sửa thủ công ví dụ để thay đổi thứ tự của một số yếu tố).

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.