Zwykle, gdy wykonuję dendrogramy i mapy termiczne, używam matrycy dystansowej i robię kilka rzeczy z SciPy
. Chcę wypróbować Seaborn
, ale Seaborn
chce moje dane w formie prostokątnej (wiersze = próbki, cols = atrybuty, a nie macierzy odległości)?Jak nadać sns.clustermap macierz odległości?
Zasadniczo chcę użyć seaborn
jako backendu, aby obliczyć mój dendrogram i przywiązać go do mojej mapy cieplnej. czy to możliwe? Jeśli nie, czy może to być funkcja w przyszłości.
Może są parametry, które mogę dostosować, aby mogły przyjąć matrycę odległości zamiast macierzy prostokątnej?
Oto Wykorzystanie:
seaborn.clustermap¶
seaborn.clustermap(data, pivot_kws=None, method='average', metric='euclidean',
z_score=None, standard_scale=None, figsize=None, cbar_kws=None, row_cluster=True,
col_cluster=True, row_linkage=None, col_linkage=None, row_colors=None,
col_colors=None, mask=None, **kwargs)
Mój kod poniżej:
from sklearn.datasets import load_iris
iris = load_iris()
X, y = iris.data, iris.target
DF = pd.DataFrame(X, index = ["iris_%d" % (i) for i in range(X.shape[0])], columns = iris.feature_names)
Nie sądzę, moja metoda jest poprawna, ponieważ poniżej daję on precomputed macierz odległości, a nie macierz danych prostokątnych zgodnie z żądaniem. Nie ma przykładów użycia matrycy korelacji/odległości z clustermap
, ale istnieje dla https://stanford.edu/~mwaskom/software/seaborn/examples/network_correlations.html, ale kolejność nie jest zgrupowana w/plain sns.heatmap
func.
DF_corr = DF.T.corr()
DF_dism = 1 - DF_corr
sns.clustermap(DF_dism)
Nie jestem pewien, czy rozumiem to pytanie. Czy druga matryca nie jest kwadratowa? – mwaskom
Tak, druga jest zdecydowanie kwadratowa, ale to b/c podałem mu matrycę odległości (korelacja 1-), podczas gdy 'sns.cluster_map' wymaga prostokątnej matrycy danych. Tak więc, w zasadzie zajęło mi to nadmiarową macierz odległości, potraktowałem je jako nieprzetworzone wartości, a następnie powiązałem z tym. Czy to działa matematycznie? Nie wydaje się to mieć sensu, ponieważ dane wejściowe wymagają prostokątnej matrycy danych i wydaje mi się, że pewne kroki są powtarzane. –
Myślę, że musisz edytować pytanie, aby było jasne, co chcesz wiedzieć. Jak napisano, pytasz, jak utworzyć kwadratową matrycę, i wyświetlasz wykres będący kwadratową matrycą. – mwaskom