我正在使用scipy
链接进行群集。我想知道将结果绘制成散点图的最简单方法是什么:
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
from scipy.cluster.hierarchy import dendrogram, linkage
from sklearn.manifold import MDS
n = 10
X = [np.random.rand(10) + 1 for i in range(n)]
X = np.concatenate((X, [np.random.rand(10) - 1 for i in range(n)]), 0)
mds = MDS(n_components=2)
X_r = mds.fit(X).embedding_
# Plot MDS result
plt.figure(figsize=(5,5))
plt.title("MDS")
plt.scatter(X_r[:,0], X_r[:, 1])
lnk = linkage(X)
# Plot dendogram
plt.figure(figsize=(5,5))
plt.title("Dendogram")
dendrogram(lnk)
# Plot 'lnk' into scatter plot ..
结果
缺少的是另一个彩色MDS图,以反映群集分配。
答案 0 :(得分:0)
假设有两个群集,您可以fcluster
与lnk
一起使用
# Plot 'lnk' into scatter plot ..
from scipy.cluster.hierarchy import fcluster
fc = fcluster(lnk, 2, criterion='maxclust')
plt.figure(figsize=(5,5))
plt.scatter(X_r[:,0],X_r[:,1],c=fc)
然后用c作为颜色绘制散点图。这给了,