#python #graph #networkx #outliers #hdbscan
Вопрос:
Я создал взвешенный график с помощью NETWORKX и хочу определить выбросы этого графика. В своей документации они показывают, как это сделать, проблема в том, что clusterer.labels_
не отображается список кластеров по порядку, чтобы я мог определить, какой узел является выбросом, чтобы удалить его. Как я могу это сделать?
distance_matrix=np.array(A.todense())
clusterer = hdbscan.HDBSCAN(metric='precomputed')
clusterer.fit(distance_matrix)
clusterer.labels_
output: array([ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, -1], dtype=int64)
Комментарии:
1. Значения в
clusterer.labels_
массиве действительно находятся в том же порядке, что и исходныйdistance_matrix
массив, в который вы передалиclusterer
. Вы можете просто повторить и то, и другое и сопоставить первую точку с первой меткой и так далее. В выводе, который вы показали здесь, видно, что самая последняя точка в вашем массиве является единственной, которая считается помехой при этой процедуре подгонки.