我正在尝试创建使用分层凝聚聚类对文档进行聚类的程序,程序的输出依赖于在这样一个级别上削减树状图,以便获得最大纯度。
下面是我现在正在研究的算法。
Create dedrogram for the documents in the dataset
purity = 0
final_clusters
for all the levels, lvl, in the dendrogram
clusters = cut dendrogram at lvl
new_purity = calculate_purity_of(clusters)
if new_purity > p
使用发布的代码,我创建了一个很好的分层集群:
假设左边的树状图是通过这样的操作创建的
Y = sch.linkage(D, method='average') # D is a distance matrix
cutoff = 0.5*max(Y[:,2])
Z = sch.dendrogram(Y, orientation='right', color_threshold=cutoff)
现在,如何得到每个有色簇成员的索引?可以简化这种情况,忽略顶部的聚类,只关注矩阵左侧的树状图。
此信息应存储在树状图Z存储的变量中。有一个函数应该执行我想要的fcl
我有一个与层次结构聚类相关的问题。我有一个相对复杂的数据集,有2000个项目/样本。我使用scipy对项目进行聚类,并给聚类不同的分界值,例如,从0.1到0.9
from scipy.cluster import hierarchy as hac
Z=hac.linkage(distance, single,'euclidean')
results=hac.fcluster(Z, cutoff,'distance')
我如何检查/跟踪某个项目,比如x组中的截止值为0.1,y组中的截止值为0.2等
我考虑过展示树状图,但从树状图中跟踪2000个样本中的1个项目会不