Распространение сходства

редактировать

В статистика и интеллектуальный анализ данных, Распространение сходства ( AP) - это алгоритм кластеризации, основанный на концепции «передачи сообщений» между точками данных. В отличие от алгоритмов кластеризации, таких как k-means или k-medoids, распространение сродства не требует определения или оценки количества кластеров перед запуском алгоритма. Подобно k-medoids, распространение аффинности находит «образцы», элементы входного набора, которые представляют кластеры.

Содержание
  • 1 Алгоритм
  • 2 Приложения
  • 3 Программное обеспечение
  • 4 Ссылки
Алгоритм

Пусть x 1 - x n будет набором точек данных без каких-либо предположений об их внутренней структуре, и пусть s будет функцией, которая количественно определяет сходство между любыми двумя точками, такое, что s (i, j)>s (i, k) iff xiбольше похоже на x j, чем на x k. В этом примере использовался отрицательный квадрат расстояния двух точек данных, т.е. для точек x i и x k, s (i, k) = - ‖ xi - xk ‖ 2 {\ displaystyle s (i, k) = - \ left \ | x_ {i} -x_ {k} \ right \ | ^ {2}}{\displaystyle s(i,k)=-\left\|x_{i}-x_{k}\right\|^{2}}

Диагональ s (т.е. s (i, i) {\ displaystyle s ( i, i)}{\displaystyle s(i,i)}) особенно важен, поскольку он представляет предпочтение экземпляра, означающее, насколько вероятно, что конкретный экземпляр станет образцом. Когда для всех входов установлено одинаковое значение, он контролирует, сколько классов генерирует алгоритм. Значение, близкое к минимально возможному сходству, дает меньше классов, в то время как значение, близкое или большее, чем максимально возможное сходство, дает много классов. Обычно он инициализируется средним подобием всех пар входных данных.

Алгоритм переходит между двумя этапами передачи сообщений, которые обновляют две матрицы:

  • Матрица «ответственности» R имеет значения r (i, k), которые количественно определяют, насколько хорошо -подходит x k, чтобы служить примером для x i по сравнению с другими примерами-кандидатами для x i.
  • Матрица «доступности» A содержит значения a (i, k), которые представляют, насколько «уместно» для x i выбрать x k в качестве своего образца, принимая во внимание предпочтение других точек для x k в качестве примера.

Обе матрицы инициализируются всеми нулями, и их можно рассматривать как таблицы логарифмической вероятности. Затем алгоритм итеративно выполняет следующие обновления:

  • Сначала рассылаются обновления ответственности: r (i, k) ← s (i, k) - max k ′ ≠ k {a (i, k ′) + s (я, k ')} {\ displaystyle r (i, k) \ leftarrow s (i, k) - \ max _ {k' \ neq k} \ left \ {a (i, k ') + s (i, k ') \ right \}}r(i,k) \leftarrow s(i,k) - \max_{k' \neq k} \left\{ a(i,k') + s(i,k') \right\}
  • Затем доступность обновляется за
a (i, k) ← min (0, r (k, k) + ∑ i ′ ∉ {i, k} макс (0, р (я ', к))) {\ Displaystyle а (я, к) \ leftarrow \ мин \ влево (0, г (к, к) + \ сумма _ {я' \ not \ in \ { i, k \}} \ max (0, r (i ', k)) \ right)}a(i,k) \leftarrow \min \left( 0, r(k,k) + \sum_{i' \not\in \{i,k\}} \max(0, r(i',k)) \right)для i ≠ k {\ displaystyle i \ neq k}i \neq kи
a (k, k) ← ∑ i ′ ≠ k max (0, r (i ′, k)) {\ displaystyle a (k, k) \ leftarrow \ sum _ {i '\ neq k} \ max (0, r (i ', k))}a(k,k) \leftarrow \sum_{i' \neq k} \max(0, r(i',k)).

Итерации выполняются до тех пор, пока либо границы кластера не останутся неизменными в течение нескольких итераций, либо не будет достигнуто некоторое заранее определенное количество (итераций). Образцы извлекаются из окончательных матриц как те, чья «ответственность + доступность» для себя положительна (т.е. (r (i, i) + a (i, i))>0 {\ displaystyle (r (i, i) + a (i, i))>0}{\displaystyle (r(i,i)+a(i,i))>0} ).

Приложения

Изобретатели распространения сродства показали, что он лучше подходит для определенных задач компьютерного зрения и вычислительной биологии, например, для кластеризации изображений человеческие лица и идентификация регулируемых транскриптов, чем k-среднее, даже когда k-среднее было разрешено много случайных перезапусков и инициализировано с использованием PCA. Было обнаружено исследование, сравнивающее распространение аффинности и марковскую кластеризацию при разделении Марковская кластеризация лучше справляется с этой проблемой. Для приложений интеллектуального анализа текста был предложен вариант с полууправлением.

Программная реализация
  • A Java включена в ELKI фрейм интеллектуального анализа данных ork.
  • A Джулия реализация распространения аффинности содержится в пакете Clustering.jl от Julia Statistics.
  • A Версия Python является частью библиотеки scikit-learn.
  • Реализация R доступна в пакете "apcluster".
Ссылки
=== !!! == Знак равно <2>{\ Displaystyle (г (я, я) + а (я, я))>0} <2><3>{\ Displaystyle s (я, к) = - \ влево \ | x_ {я} -x_ {k} \ right \ | ^ {2}} <3><4>i \ neq k <4><5>r (i, k) \ leftarrow s (i, k) - \ max_ {k <5><6>a (i, k) \ leftarrow \ min \ left (0, r (k, k) + \ sum_ {i <6><7>{\ displaystyle s (i, i)} <7><8>a (k, k) \ leftarrow \ sum_ {i <8>html
Последняя правка сделана 2021-06-09 15:35:10
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте