Tôi đang tìm cách thực hiện phân cụm riêng biệt trên các hàng ma trận và hơn cột của nó, sắp xếp lại dữ liệu trong ma trận để phản ánh phân cụm và gộp tất cả . Vấn đề phân cụm có thể dễ dàng giải được, do đó, việc tạo chương trình dendrogram (ví dụ: this blog hoặc trong "Programming collective intelligence"). Tuy nhiên, làm thế nào để sắp xếp lại dữ liệu vẫn chưa rõ ràng cho tôi. Cuối cùng, tôi đang tìm cách tạo đồ thị tương tự như dưới đây bằng cách sử dụng Python ngây thơ (với bất kỳ thư viện "chuẩn" nào như numpy, matplotlib vv, nhưng không có using R hoặc các công cụ bên ngoài khác).Sắp xếp lại các phần tử ma trận để phản ánh phân cụm cột và hàng trong trăn nai
dendogram http://www2.warwick.ac.uk/fac/sci/moac/currentstudents/peter_cock/r/heatmap/no_scaling.png
Làm rõ
tôi đã hỏi những gì tôi có nghĩa là bằng cách sắp xếp lại. Khi bạn cụm dữ liệu trong một ma trận đầu tiên bởi các hàng ma trận, sau đó bởi các cột của nó, mỗi ô ma trận có thể được xác định bởi vị trí trong hai dendrograms. Nếu bạn sắp xếp lại các hàng và các cột của ma trận gốc sao cho các phần tử gần nhau trong các dendrogram trở nên gần nhau trong ma trận, và sau đó tạo ra bản đồ nhiệt, việc phân cụm dữ liệu có thể trở nên rõ ràng đối với người xem (như trong hình trên)
Ý anh là gì bằng cách sắp xếp lại? Trao đổi n hàng lân cận/cols với n khác? –
Bạn muốn sử dụng numpy/scipy khi giao dịch với ma trận cho chắc chắn. Matplotlib cũng bắt chước Matlab rất tốt. Đây là một thỏa thuận: nếu bạn có thể làm điều này trong Matlab, bạn có thể làm điều đó trong scipy cũng (sự khác biệt cú pháp tầm thường nếu có). –
Ooh, +1 cho hình ảnh đẹp ;-) –