У меня есть большой словарь "парных матриц подобия", который будет выглядеть следующим образом:
similarity['group1']
:
array([[1. , 0. , 0. , 0. , 0. ],
[0. , 1. , 0.09 , 0.09 , 0. ],
[0. , 0.09 , 1. , 0.94535157, 0. ],
[0. , 0.09 , 0.94535157, 1. , 0. ],
[0. , 0. , 0. , 0. , 1. ]])
Короче говоря, каждый элемент предыдущей матрицы являетсявероятность того, что record_i
и record_j
похожи (значения 0 и 1 включительно), 1
точно одинаковы, а 0
совершенно разные.
Затем я подаю каждую матрицу подобия в AffinityPropagation
алгоритм для группировки / кластеризации похожих записей:
sim = similarities['group1']
clusterer = AffinityPropagation(affinity='precomputed',
damping=0.5,
max_iter=25000,
convergence_iter=2500,
preference=????)) # ISSUE here
affinity = clusterer.fit(sim)
cluster_centers_indices = affinity.cluster_centers_indices_
labels = affinity.labels_
Однако, поскольку я запускаю вышеизложенное на множественных матрицах подобия, мне нужно иметь обобщенный параметр preference
, который яне могу настроиться.
В документации сказано, что по умолчанию она установлена как медиана матрицы подобия, однако я получаю много ложных срабатываний с этой настройкой, иногда среднее значение иногда дает слишком многокластеры и т.д ...
Например: при игре с параметром предпочтения я получаю результаты из матрицы подобия
preference = default # which is the median (value 0.2) of the similarity matrix
:( неверные результаты, мы видим, что запись 18
не должна быть там, потому что сходство с другими записями очень низкое):
# Indexes of the elements in Cluster n°5: [15, 18, 22, 27]
{'15_18': 0.08,
'15_22': 0.964546229533378,
'15_27': 0.6909703138051403,
'18_22': 0.12, # Not Ok, the similarity is too low
'18_27': 0.19, # Not Ok, the similarity is too low
'22_27': 0.6909703138051403}
preference = 0.2 in fact from 0.11 to 0.26
: ( правильно результаты, поскольку записи похожи):
# Indexes of the elements in Cluster n°5: [15, 22, 27]
{'15_22': 0.964546229533378,
'15_27': 0.6909703138051403,
'22_27': 0.6909703138051403}
Мой вопрос : Как следуетЯ выбрал этот preference
параметр таким образом, чтобы обобщить