Tôi đang sử dụng seaborn clustermap
để tạo cụm và trực quan hoạt động tốt (điều này example tạo ra kết quả rất giống nhau).Trích xuất cụm từ cụm từ seaborn
Tuy nhiên, tôi đang gặp sự cố khi tìm hiểu cách trích xuất các cụm theo cách lập trình. Ví dụ, trong ví dụ liên kết, làm thế nào tôi có thể tìm ra rằng 1-1 rh, 1-1 lh, 5-1 rh, 5-1 lh làm cho một cụm tốt? Trực quan thật dễ dàng. Tôi cố gắng để sử dụng phương pháp tìm kiếm thông qua các dữ liệu, và dendrograms nhưng tôi đang gặp chút thành công
EDIT Mã từ ví dụ:
import pandas as pd
import seaborn as sns
sns.set(font="monospace")
df = sns.load_dataset("brain_networks", header=[0, 1, 2], index_col=0)
used_networks = [1, 5, 6, 7, 8, 11, 12, 13, 16, 17]
used_columns = (df.columns.get_level_values("network")
.astype(int)
.isin(used_networks))
df = df.loc[:, used_columns]
network_pal = sns.cubehelix_palette(len(used_networks),
light=.9, dark=.1, reverse=True,
start=1, rot=-2)
network_lut = dict(zip(map(str, used_networks), network_pal))
networks = df.columns.get_level_values("network")
network_colors = pd.Series(networks).map(network_lut)
cmap = sns.diverging_palette(h_neg=210, h_pos=350, s=90, l=30, as_cmap=True)
result = sns.clustermap(df.corr(), row_colors=network_colors, method="average",
col_colors=network_colors, figsize=(13, 13), cmap=cmap)
Làm thế nào tôi có thể kéo những gì mô hình trong đó cụm ra của result
?
EDIT2 Các result
không mang theo với nó một linkage
với các dendrogram_col
mà tôi nghĩ sẽ làm việc với fcluster. Nhưng giá trị ngưỡng để chọn điều đó gây nhầm lẫn cho tôi. Tôi cho rằng các giá trị trong bản đồ nhiệt cao hơn ngưỡng sẽ được nhóm lại với nhau?
Hey @Marcel M, bạn sẽ không muốn sử dụng "ma trận không giống nhau" thay vì ma trận tương quan? Giống như '1 - np.abs (tương quan)' hay gì đó? –
@ O.rka Việc truyền các tương quan tới 'sns.clustermap()' xuất phát từ ví dụ bẩm sinh được trích dẫn trong câu hỏi mà tôi vừa sao chép. Cả hai phiên bản tính toán khoảng cách giữa các tương quan, vì vậy trong khoảng cách cuối cùng được sử dụng, nhưng tôi thừa nhận tôi không biết nó có ý nghĩa như thế nào (tôi không biết tại sao ví dụ seaborn làm như vậy). Trong dự án của riêng tôi, tôi sử dụng khoảng cách trực tiếp. –