Genellikle dendrogram ve ısı eşlemleri yaptığımda, bir uzaklık matrisi kullanıyorum ve bir grup SciPy
yapalım. Seaborn
'u denemek istiyorum ama Seaborn
verilerimi dikdörtgen biçiminde istiyor (satırlar = örnekler, cols = öznitelikler, bir uzaklık matrisi değil)?sns.clustermap önceden hesaplanmış bir uzaklık matrisine nasıl verilir?
Esasen dendrogramımı hesaplamak ve ısıma eşime yapıştırmak için arka uç olarak seaborn
kullanmak istiyorum. Mümkün mü? Değilse, bu gelecekte bir özellik olabilir.
Belki bir dikdörtgen matris yerine bir uzaklık matrisi alabilmem için ayarlayabildiğim parametreler var mı? İşte
kullanımı:
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)
aşağıda
Kodum:
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)
benim yöntem aşağıda doğru olduğunu düşünmüyorum çünkü bunu bir precomputed veriyorum mesafe matrisi ve istendiği gibi dikdörtgen bir veri matrisi DEĞİL. clustermap
ile korelasyon/uzaklık matrisinin nasıl kullanıldığına dair bir örnek yoktur, ancak https://stanford.edu/~mwaskom/software/seaborn/examples/network_correlations.html için vardır, ancak düzlem sns.heatmap
func ile kümelenmemiş.
DF_corr = DF.T.corr()
DF_dism = 1 - DF_corr
sns.clustermap(DF_dism)
Soruyu anladığımdan emin değilim. İkinci matris kare değil mi? – mwaskom
Yea, ikincisi kesinlikle kare ama b/c bir mesafe matrisi (1- korelasyon) besledim, sns.cluster_map ise dikdörtgen veri matrisini gerektirir. Bu yüzden temelde gereksiz kare mesafe matrisimi aldım, onları ham değerler olarak kabul ettim ve bundan sonra bağlantı kurdum. Bu matematiksel olarak çalışır mı? Girdi dikdörtgen bir veri matrisi gerektirdiği için mantıklı görünmüyor ve bazı adımların tekrarlandığını düşünüyorum. –
Bence, bilmek istediğin şeyi daha net hale getirmek için soruyu düzenlemelisin. Yazılı olarak kare matrisi nasıl yapacağınızı soruyorsunuz ve kare matris olan bir arsa gösteriyorsunuz. – mwaskom