2014-11-10 6 views
2

У меня есть вопрос, связанный с кластеризацией иерархии. У меня есть относительные сложные наборы данных с 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') 

, как можно проверить/отследить некоторый элемент сказать, когда отсечка в группе х 0,1, и когда отсечка составляет 0,2 в группе у. и т. д.

Я подумал о показе дендрограммы, но для отслеживания 1 предмета в 2000 образцов из дендрограммы было бы слишком грязным?

ответ

0

Попробуйте создать набор идентификаторов кластеров с помощью set(list(..)), чтобы удалить дубликаты, а затем пройти через элементы и отфильтровать данные, зависит от того кластера, в котором они находятся. Попробуйте, поскольку вы не дали образец данных для его проверки.

Ваш код будет выглядеть следующим образом:

clusterIDs = set(list(results)) 
D= {} # Dictinary where you store ClusterID: [list of points that belong to that cluster] 
for i, clusterID in enumerate(clusterIDs): 
    clusterItems = data[np.where(results == clusterID)] 
    D[clusterID]=clusterItems 

 Смежные вопросы

  • Нет связанных вопросов^_^