Изменения

Перейти к: навигация, поиск

Оценка качества в задаче кластеризации

2539 байт добавлено, 19:17, 28 ноября 2019
Источники информации: исправлена фамилия
'''Проблема оценки качества в [[Кластеризация|задаче кластеризации]]''' трудноразрешима, как минимум, по двум причинам:
* Не [[Кластеризация#Теорема невозможности Клейнберга|Теорема невозможности Клейнберга]] {{---}} не существует оптимального алгоритма кластеризации. Иными словами, различные алгоритмы (или различные конфигурации одного алгоритма) выдают разные разделения на кластеры, и ни одно из них не является лучшим во всех ситуациях.
* Многие алгоритмы кластеризации не способны определить настоящее количество кластеров в данных. Чаще всего количество кластеров подается на вход алгоритма и подбирается несколькими запусками алгоритма.
== Методы оценки качества кластеризации ==
'''Метод (индекс) оценки качества кластеризации''' (англ. ''cluster validity index, CVI'') {{---}} инструментарий для количественной оценки результатов кластеризации.
Принято выделять три группы методов оценки качества кластеризации:
* '''Внешние''' (англ. ''Internal'') метрики основаны на сравнении результата кластеризации с априори известным разделением на классы.
* '''Внутренние''' (англ. ''External'') метрики отображают качество кластеризации только по информации в данных.
* '''Относительные''' (англ. ''Relative'') метрики основаны на оценивании полученного разделения на кластеры относительно результатов работы другого алгоритма.
Иногда сложно отнести метод оценки качества кластеризации к одному определенной группе, поэтому нижеприведенное разделение является условным, в других источниках можно встретить иное разделение.
== Внешние метрики оценки качества ==
Данные метрики используют дополнительные знания о кластеризуемом множестве: распределение по кластерам, количество кластеров и т.д.
=== Rand Index ===Рассмотрим пары <math>(x_i, x_j)</math> из элементов кластеризуемого множества <math>X</math>. Подсчитаем количество пар, в которых:* Элементы принадлежат одному кластеру и одному классу {{---}} <math>TP</math>* Элементы принадлежат одному кластеру, но разным классам {{---}} <math>TN</math>* Элементы принадлежат разным кластерам, но одному классу {{---}} <math>FP</math>* Элементы принадлежат разным кластерам и разным классам {{---}} <math>FN</math> Индекс Rand оценивает, насколько много из тех пар элементов, которые находились в одном классе, и тех пар элементов, которые находились в разных классах, сохранили это состояние после кластеризации алгоритмом.: <math>Rand = \dfrac{TP+FN}{TP+TN+FP+FN}</math>Имеет область определения от 0 до 1, где 1 {{---}} полное совпадение кластеров с заданными классами, а 0 {{---}} отсутствие совпадений. === Adjusted Rand Index Обозначения ===Дано множество <math>S</math> из <math>n</math> элементов, и два разделения разделение на кластеры классы <math>X = \{ X_1, X_2, \ldots , X_r \}</math> , и полученное разделение на кластеры <math>Y = \{ Y_1, Y_2, \ldots , Y_s \}</math>, совпадения между <math>X</math> и <math>Y</math> могут быть отражены в таблице сопряженности <math>\left[n_{ij}\right]</math>, где каждое <math>n_{ij}</math> обозначает число объектов, входящих как в<math>X_i</math>, так и в <math>Y_j</math> : <math>n_{ij}=|X_i \cap Y_j|</math>.
: <math>\begin{array}{c|cccc|c}
{{} \atop X}\!\diagdown\!^Y &
\ldots&
b_s&
n
\end{array}</math>
Тогда Пусть <math>p_{ij} = \dfrac{ n_{ij} }{ n }, p_{i} = \dfrac{ a_{i} }{ n }, p_{j} = \dfrac{ b_{j} }{ n } </math>. Также рассмотрим пары <math>(x_i, x_j)</math> из элементов кластеризуемого множества <math>X</math>. Подсчитаем количество пар, в которых:* Элементы принадлежат одному кластеру и одному классу {{---}} <math>TP</math>* Элементы принадлежат одному кластеру, но разным классам {{---}} <math>TN</math>* Элементы принадлежат разным кластерам, но одному классу {{---}} <math>FP</math>* Элементы принадлежат разным кластерам и разным классам {{---}} <math>FN</math> === Rand Index ===Индекс Rand оценивает, насколько много из тех пар элементов, которые находились в одном классе, и тех пар элементов, которые находились в разных классах, сохранили это состояние после кластеризации алгоритмом.: <math>Rand = \dfrac{TP+FN}{TP+TN+FP+FN}</math>Имеет область определения от 0 до 1, где 1 {{---}} полное совпадение кластеров с заданными классами, а 0 {{---}} отсутствие совпадений. === Adjusted Rand Index вычисляется по формуле:===
:<math>\overbrace{ARI}^\text{Adjusted Index} = \frac{ \overbrace{\sum_{ij} \binom{n_{ij}}{2}}^\text{Index} - \overbrace{[\sum_i \binom{a_i}{2} \sum_j \binom{b_j}{2}] / \binom{n}{2}}^\text{Expected Index} }{ \underbrace{\frac{1}{2} [\sum_i \binom{a_i}{2} + \sum_j \binom{b_j}{2}]}_\text{Max Index} - \underbrace{[\sum_i \binom{a_i}{2} \sum_j \binom{b_j}{2}] / \binom{n}{2}}_\text{Expected Index} }</math>
где <math>n_{ij}, a_i, b_j</math> {{---}} значения из таблицы сопряженности.
Более высокое значение индекса означает большее сходство между кластерами. Этот индекс также хорошо работает на зашумленных данных.
== Внешние = Hubert Г statistic ===Данная метрика отражает среднее расстояние между объектами разных кластеров:: <math>Г = \dfrac{1}{M} \sum \limits_{i=1}^{N-1} \sum \limits_{i=i+1}^{N} P(i, j) \cdot Q(i, j),</math>где <math>M = n*(n-1)/2</math>, <math>P(i, j)</math> {{---}} матрица близости, а: <math>Q(i, j) = \begin{cases} 0, & \mbox{если x(i) и x(j) лежат в одном кластере} \\ 1, & \mbox{в другом случае } \\\end{cases}</math>Можно заметить, что два объекта влияют на <math>Г</math>, только если они находятся в разных кластерах. Чем больше значение метрики {{---}} тем лучше. === Phi Index ===Классическая мера корреляции между двумя переменными:: <math>\Phi = \dfrac{ TP \times FN - TN \times FP }{ (TP + TN)(TP + FP)(FN + FP)(FN + TN) }</math> === Minkowski Score ===: <math>MS = \dfrac{ \sqrt{ \sum_i \binom{a_i}{2} + \sum_j \binom{b_i}{2} - 2\sum_{ij} \binom{ n_{ij} }{ 2 } } }{ \sqrt{ \sum_j \binom{b_i}{2} } }</math> === Goodman-Kruskal Index ===: <math>GK = \sum_i p_i(1 - \max_j \dfrac{ p_{ij} }{ p_i })</math> === Entropy ===Энтропия измеряет "чистоту" меток классов:: <math>E = - \sum_i p_i ( \sum_j \dfrac{ p_{ij} }{ p_i } log( \dfrac{ p_{ij} }{ p_i } ) )</math> Стоит отметить, что если все кластера состоят из объектов одного класса, то энтропия равна 0. === Purity ===Чистота ставит в соответствие кластеру самый многочисленный в этом кластере класс. : <math>P = \sum_i p_i ( \max_j \dfrac{ p_{ij} }{ p_i } )</math> Чистота находится в интервале [0, 1], причём значение = 1 отвечает оптимальной кластеризации. === F-мера ===F-мера представляет собой гармоническое среднее между точностью (precision) и полнотой (recall).: <math>F = \sum_j p_j \max_i \big\lbrack 2 \dfrac{ p_{ij} }{ p_i } \dfrac{ p_{ij} }{ p_j } \big/ (\dfrac{ p_{ij} }{ p_i } + \dfrac{ p_{ij} }{ p_j }) \big\rbrack</math> === Variation of Information ===Данная метрика измеряет количество информации, потерянной и полученной при переходе из одного кластера в другой.: <math>VI = - \sum_i p_i \log p_i - \sum_i p_j log p_j - 2 \sum_i \sum_j p_{ij} \log \dfrac{ p_{ij} }{ p_i p_j }</math> == Внутренние метрики оценки качества ==
Данные метрики оценивают качество структуры кластеров опираясь только непосредственно на нее, не используя внешней информации.
Идея данного метода в том, что чем ближе друг к другу находятся объекты внутри кластеров, тем лучше разделение.
Таким образом, необходимо минимизировать внутриклассовое расстояние, например, сумму квадратов отклонений (within cluster sum of squares):
: <math>
WSS = \sum \limits_{j=1}^{M} \sum \limits_{i = 1}^{|C_j|} (x_{ij} - \overline{x_j})^2
В данном случае идея противоположная {{---}} чем дальше друг от друга находятся объекты разных кластеров, тем лучше.
Поэтому здесь стоит задача максимизации суммы квадратов отклонений (between cluster sum of squares):
: <math>
BSS = n \cdot \sum \limits_{j=1}^{M} (\overline{x_{j}} - \overline{x})^2
</math>, где <math>M</math> {{---}} количество кластеров.
 
=== Hubert Г statistic ===
Данная метрика отражает среднее расстояние между объектами разных кластеров:
: <math>
Г = \dfrac{1}{M} \sum \limits_{i=1}^{N-1} \sum \limits_{i=i+1}^{N} P(i, j) \cdot Q(i, j),
</math>
где <math>M = n*(n-1)/2</math>, <math>P(i, j)</math> {{---}} матрица близости, а
: <math>Q(i, j) = \begin{cases}
0, & \mbox{если x(i) и x(j) лежат в одном кластере} \\
1, & \mbox{в другом случае } \\
\end{cases}
</math>
Можно заметить, что два объекта влияют на <math>Г</math>, только если они находятся в разных кластерах.
 
Чем больше значение метрики {{---}} тем лучше.
 
== Относительные оценки качества ==
=== Индекс Данна (Dunn Index) ===
: <math>
wcd(C) = \sum \limits_{c_k \in C} \dfrac{ 1 }{ |c_k| } \sum \limits_{x_i \in c_k} \|x_i - \overline{c_k}\|
</math>
 
=== Gamma Index ===
: <math>
G(C) = \dfrac{ \sum_{c_k \in C} \sum_{x_i,x_j \in c_k} |c_k| \cdot dl(x_i, x_j) }{ n_w (\binom{N}{2} - n_w) }
</math>
 
где:
: <math>dl(x_i,x_j)</math> {{---}} число пар <math>(x_k, x_l) \in X</math> таких, что (1) <math>x_k</math> и <math>x_l</math> принадлежат разным кластерам, и (2) <math>\|x_k - x_l\| < \|x_i - x_j\|</math>,
: <math>
n_w = \sum_{c_k \in C} \binom{|c_k|}{2}
</math>
 
=== COP Index ===
В данной метрике компактность вычисляется как расстояние от точек кластера до его центроиды, а разделимость основана на расстоянии до самого отдаленного соседа.
: <math>
COP(C) = \dfrac{1}{N} \sum \limits_{c_k \in C} |c_k| \dfrac{ 1/|c_k| \sum_{x_i \in c_k} \| x_i - \overline{c_k} \| }{ \min_{x_i \notin c_k} \max_{x_j \in c_k} \| x_i - x_j\| }
</math>
== Сравнение ==
По результатам Не существует лучшего метода оценки качества кластеризации. Однако, в рамках исследования<ref>[https://www.sciencedirect.com/science/article/abs/pii/S003132031200338X An extensive comparative study of cluster validity indices]</ref> была предпринята попытка сравнить существующие метрики на различных данных. Полученные результаты показали, что на искусственных датасетах наилучшие результаты показали наилучшим образом себя проявили индексы Silhouette(Sil), Davies–Bouldin*(DB*) и Calinski–Harabasz(CH). На реальных датасетах лучше всех проявил показал себя Score function.Однако, на определенных данных другие индексы могут показать лучшие результаты (так, например, на зашумленных данных Calinski–Harabasz(CH) дает оценки значительно хуже).
== См. также ==
== Источники информации ==
# [https://en.wikipedia.org/wiki/Category:Clustering_criteria Wikipedia {{---}} Category:Clustering criteria]
# [http://synthesis.ipi.ac.ru/sigmod/seminar/sivogolovko20111124.pdf Сивоголовка Сивоголовко Е. В. Методы оценки качества четкой кластеризации]
# [http://www.cs.kent.edu/~jin/DM08/ClusterValidation.pdf Cluster Validation]
# [https://link.springer.com/article/10.1023/A:1012801612483 Halkidi, M., Batistakis, Y., Vazirgiannis, M., 2001. On clustering validation techniques. Journal of intelligent information systems, 17(2-3), pp.107-145.]
# [https://eurekamag.com/pdf/008/008337083.pdf Pal, N.R., Biswas, J., 1997. Cluster validation using graph theoretic concepts. Pattern Recognition, 30(6), pp.847-857.]
== Примечания ==
Анонимный участник

Навигация