Эволюционные алгоритмы кластеризации — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
м (rollbackEdits.php mass rollback)
 
(не показаны 24 промежуточные версии 5 участников)
Строка 1: Строка 1:
 
[[Кластеризация#Постановка задачи кластеризации|Формулировка задачи кластеризации]] в общем случае не задаёт условие близости относительно метрики (см. [[Кластеризация#Теорема невозможности Клейнберга|теорему Клейнберга]]); в связи с этим, многие разработанные [[Кластеризация#Методы кластеризации|методы и алгоритмы]] решения задачи кластеризации предполагают применимость конкретной меры близости объектов для анализа рассматриваемой выборки.  
 
[[Кластеризация#Постановка задачи кластеризации|Формулировка задачи кластеризации]] в общем случае не задаёт условие близости относительно метрики (см. [[Кластеризация#Теорема невозможности Клейнберга|теорему Клейнберга]]); в связи с этим, многие разработанные [[Кластеризация#Методы кластеризации|методы и алгоритмы]] решения задачи кластеризации предполагают применимость конкретной меры близости объектов для анализа рассматриваемой выборки.  
 +
 
Альтернативный подход заключается в задании [[Оценка качества в задаче кластеризации|индекса кластеризации]] как меры близости объектов внутри кластеров и использовании универсального метода для оптимизации этого индекса; '''[[эволюционные алгоритмы]]''' являются одним из семейств таких универсальных методов.
 
Альтернативный подход заключается в задании [[Оценка качества в задаче кластеризации|индекса кластеризации]] как меры близости объектов внутри кластеров и использовании универсального метода для оптимизации этого индекса; '''[[эволюционные алгоритмы]]''' являются одним из семейств таких универсальных методов.
 
 
= Описание метода =
 
= Описание метода =
Для решения задачи кластеризации (hard clustering) эволюционный алгоритм использует:
+
Для решения задачи кластеризации эволюционный алгоритм использует:
 
* разбиения выборки в качестве '''особей''';
 
* разбиения выборки в качестве '''особей''';
 
* индекс кластеризации в качестве '''целевой функции''';
 
* индекс кластеризации в качестве '''целевой функции''';
Строка 9: Строка 9:
 
* операции комбинирования ("скрещивания") разбиений в качестве '''кроссовера''';
 
* операции комбинирования ("скрещивания") разбиений в качестве '''кроссовера''';
 
* и т.д.
 
* и т.д.
 +
 
= Параметры эволюционного алгоритма =
 
= Параметры эволюционного алгоритма =
Из описания выше следует, что эволюционный алгоритм кластеризации задаётся рядом гиперпараметров - таких как инициализация, применяемые мутации, схема самого алгоритма и т.п. Некоторые исследованные элементы конфигурации эволюционного алгоритма кластеризации приведены ниже.
+
Из описания выше следует, что эволюционный алгоритм кластеризации задаётся рядом гиперпараметров {{---}} таких как способ инициализации, применяемые мутации, схема самого алгоритма и т.п. Некоторые исследованные элементы конфигурации эволюционного алгоритма кластеризации приведены ниже.
 
== Представление особи ==
 
== Представление особи ==
 
Различные мутации, кроссоверы и способы инициализации особи предполагают некоторое её представление в памяти. Например:
 
Различные мутации, кроссоверы и способы инициализации особи предполагают некоторое её представление в памяти. Например:
* '''целочисленное кодирование по меткам кластеров''' (''label-based integer encoding'') - для каждого объекта в выборке его кластер задаётся непосредственно. Таким образом, вся особь - это массив из $N$ чисел, соответствующих кластерам элементов выборки размера $N$.
+
* '''целочисленное кодирование по меткам кластеров''' (''англ.'' label-based integer encoding) {{---}} для каждого объекта в выборке его кластер задаётся непосредственно. Таким образом, вся особь {{---}} это массив из $N$ чисел, соответствующих кластерам элементов выборки размера $N$.
* '''решётчатое кодирование''' - для каждого вещественного признака (''feature'') объектов одного кластера задаются верхняя и нижняя граница. Таким образом, область одного кластера $f$-мерной выборки ограничивается $f$-мерным гиперкубом.
+
* '''решётчатое кодирование''' {{---}} для каждого вещественного признака объектов одного кластера задаются верхняя и нижняя граница. Таким образом, область одного кластера $d$-мерной выборки ограничивается $d$-мерным гиперкубом.
* '''вещественное кодирование''' (''real encoding'') - для каждого кластера $f$-мерной выборки задаётся его ''центроид'' - синтезированный объект, определяемый его координатами в пространстве выборки. Принадлежность объекта к кластеру определяется центроидом, который ближе всего к объекту согласно используемой метрике. Вся особь определяется вещественным вектором размера $k \cdot f$.
+
* '''вещественное кодирование''' (''англ.'' real encoding) {{---}} для каждого кластера $d$-мерной выборки задаётся его ''центроид'' {{---}} синтезированный объект, определяемый его координатами в пространстве выборки. Принадлежность объекта к кластеру определяется центроидом, который ближе всего к объекту согласно используемой метрике. Вся особь определяется вещественным вектором размера $k \cdot d$.
* '''бинарное кодирование''' (''binary encoding'') - то же самое, что и вещественное кодирование, но в качестве центроида используется элемент выборки (''прототип''). Таким образом, одна особь может быть представлена вектором из $N$ булевых значений, из которых $k$ истинных определяют прототипы соответствующих $k$ кластеров.
+
* '''бинарное кодирование''' (''англ.'' binary encoding) {{---}} то же самое, что и вещественное кодирование, но в качестве центроида используется элемент выборки, называемый прототипом (''англ.'' prototype). Таким образом, одна особь может быть представлена вектором из $N$ булевых значений, из которых $k$ истинных определяют прототипы соответствующих $k$ кластеров.
* '''древесное бинарное кодирование''' (''tree-based binary encoding'') - по выборке строится [[Остовные деревья: определения, лемма о безопасном ребре|минимальное остовное дерево]]; особь кодируется вектором из $N-1$ булевых значений, среди которых $k-1$ истинное соответвует рёбрам остовного дерева, разделяющим кластеры.
+
* '''бинарное кодирование по остовному дереву''' (''англ.'' tree-based binary encoding) {{---}} по выборке строится [[Остовные деревья: определения, лемма о безопасном ребре|минимальное остовное дерево]]; особь кодируется вектором из $N-1$ булевых значений, среди которых $k-1$ истинное соответвует рёбрам остовного дерева, разделяющим кластеры.
 +
 
 
== Мутации ==
 
== Мутации ==
 
В качестве мутации можно либо использовать одну из операций, приведённых ниже, либо случайно (н-р, равновероятно) выбирать одну из нескольких таких операций.
 
В качестве мутации можно либо использовать одну из операций, приведённых ниже, либо случайно (н-р, равновероятно) выбирать одну из нескольких таких операций.
 
=== Разбиения, слияния и переназначения ===
 
=== Разбиения, слияния и переназначения ===
 
В этом разделе приведён ряд мутаций, предполагающих целочисленное кодирование особи.
 
В этом разделе приведён ряд мутаций, предполагающих целочисленное кодирование особи.
Общим свойством этих операций является необходимость выбрать один, два или более кластеров, над которыми операции производятся. Делать это можно либо '''случайно''' (''unguided''), либо '''выборочно''' (''guided'') на основе той или иной характеристики кластера (''interestingness'') - например, расстояний объектов до центроида, плотности объектов в кластере и т.п.
+
Общим свойством этих операций является необходимость выбрать один, два или более кластеров, над которыми операции производятся. Делать это можно либо '''случайно''' (''англ.'' unguided), либо '''выборочно''' (''англ.'' guided) на основе той или иной характеристики кластера (''англ.'' interestingness) {{---}} например, расстояний объектов до центроида, плотности объектов в кластере и т.п. <ref>R. M. Cole. Clustering with genetic algorithms: дис. магистра, University of Western Australia, Perth, W.A., 1998</ref><ref name="evocluster">Ma, P.C.H. An Evolutionary Clustering Algorithm for Gene Expression Microarray Data Analysis / P.C.H. Ma, K.C.C. Chan, X. Yao, D.K.Y. Chiu // IEEE Transactions on Evolutionary Computation, Vol. 10 {{---}} 2006 {{---}} С.296-314</ref>
* '''разбиение кластера''' (''split-gene'') - выбранный кластер делится вдоль $N-1$-мерной поверхности (н-р, гиперплоскости; для двухмерного случая это прямая) на два новых. Гиперплоскость можно задать:
+
* '''разбиение кластера''' (''англ.'' split-gene) {{---}} выбранный кластер делится вдоль $N-1$-мерной поверхности (н-р, гиперплоскости; для двухмерного случая это прямая) на два новых. Гиперплоскость можно задать:
** случайно на основе выпуклой оболочки кластера;
+
** случайно на основе [[Выпуклая оболочка в n-мерном пространстве|выпуклой оболочки]] кластера;
** случайно по направлению, а по положению - выборочно на основе индуцированной функции распределения (или гистограммы) положения объектов кластера вдоль оси, перпендикулярной гиперплоскости;
+
** случайно по направлению, а по положению {{---}} выборочно на основе индуцированной функции распределения (или гистограммы) положения объектов кластера вдоль оси, перпендикулярной гиперплоскости;
 
** детерминированно как медиану между центроидом кластера и самой отдалённым от центроида объектом.
 
** детерминированно как медиану между центроидом кластера и самой отдалённым от центроида объектом.
* '''слияние двух кластеров''' (''merge-gene'') - выбранные два кластера объединяются в один.
+
* '''слияние двух кластеров''' (''англ.'' merge-gene) {{---}} выбранные два кластера объединяются в один.
* '''удаление кластера''' - все объекты выбранного кластера переназначаются в другие кластеры на основе расстояния до них.
+
* '''удаление кластера''' {{---}} все объекты выбранного кластера переназначаются в другие кластеры на основе расстояния до них.
* '''переназначение элементов кластера''' (''remove-and-reclassify'') - небольшой набор объектов выбранного кластера переназначается в другие кластеры. Набор объектов и целевой кластер можно задать случайно или выборочно на основе расстояний до соседних кластеров.
+
* '''переназначение элементов кластера''' (''англ.'' remove-and-reclassify) {{---}} небольшой набор объектов выбранного кластера переназначается в другие кластеры. Вместе с объектом можно также переместить случайное число (от 0 до $N/k$) ближайших к нему объектов. Набор объектов и целевой кластер можно задать случайно или выборочно на основе расстояний до соседних кластеров.
 
Следует заметить, что если алгоритм использует хотя бы одну операцию разбиения, то должна быть включена в рассмотрение какая-нибудь операция слияния, и наоборот. Иначе количество кластеров либо уменьшится до двух, либо возрастёт до $N$.
 
Следует заметить, что если алгоритм использует хотя бы одну операцию разбиения, то должна быть включена в рассмотрение какая-нибудь операция слияния, и наоборот. Иначе количество кластеров либо уменьшится до двух, либо возрастёт до $N$.
 +
 +
=== Модификация прототипа ===
 +
Над прототипами (как вещественно, так и бинарно закодированными) можно проводить операции удаления и добавления; также у вещественного прототипа (центроида) можно поменять координаты. Помимо этого, можно получить гибрид эволюционного алгоритма и ''K-Means'', совершая в качестве одной из возможных мутирующих операций шаг алгоритма $k$ средних значений <ref>Marghny, M.H. An Effective Evolutionary Clustering Algorithm: Hepatitis C case study / M.H. Marghny, Rasha M. Abd El-Aziz, Ahmed I. Taloba // International Journal of Computer Applications, Vol. 34 {{---}} No.6 {{---}} 2011</ref>. Аналогично можно внедрить EM-шаг из ''Gaussian mixture'', но для этого нужно при кодировании особи задавать дисперсию распределения при каждом центроиде <ref>Lu, W. A novel evolutionary clustering algorithm based on Gaussian mixture model / W. Lu, I. Traore // ICCOMP'06 Proceedings of the 10th WSEAS international conference on Computers {{---}} 2006 {{---}} C. 686-691</ref>.
 +
== Кроссовер ==
 +
В качестве операций кроссовера различными авторами были опробованы:
 +
* '''k-точечный кроссовер''' (''англ.'' k-point crossover) на целочисленном и вещественном кодировании;
 +
* '''однородный кроссовер''' (''англ.'' uniform crossover) на бинарном кодированиии по остовному дереву;
 +
* '''скрещивание кластеров''' {{---}} из выбранного кластера первой особи удаляется часть объектов, после чего в него добавляются случайно выбранные объекты из кластера второй особи. Удалённые объекты переназначаются в другие кластеры первой особи. На всех стадиях этой операции, требующих выбор объектов или кластеров, можно использовать как выборочную (''англ.'' guided), так и полностью случайную (''англ.'' unguided) стратегии, аналогично описанию мутаций разбиения и слияния <ref name="evocluster"/>.
 +
== Инициализация ==
 +
Задание особей первого поколения алгоритма может производиться с помощью различных эвристик:
 +
* '''случайная инициализация''' {{---}} объекты назначаются в кластеры полностью случайным образом. Качество у полученной особи наихудшее, но можно использовать этот способ для тестирования.
 +
* '''случайный выбор прототипов''' {{---}} прототипы бинарно закодированной особи задаются случайно.
 +
* '''пространственная инициализация''' {{---}} например, объекты назначаются в кластеры на основе их координаты вдоль случайной оси.
 +
* '''запуск другого алгоритма кластеризации''' {{---}} особь можно инициализировать с помощью ''K-Means'', [[Иерархическая кластеризация|иерархической кластеризации]] и проч.
 +
== Виды алгоритмов ==
 +
На момент написания конспекта автору было известно о попытках использования эволюционных алгоритмов Roulette wheel selection, $(\mu + \lambda)$<ref>Alves, V.S. Towards a fast evolutionary algorithm for clustering / V. S. Alves, R. J. G. B. Campello, E. R. Hruschka, // Proceedings IEEE Congress on Evolutionary Computation {{---}} 2006 {{---}} С. 6240–6247</ref>, tabu search<ref>Pan, S. Evolution-based tabu search approach to automatic clustering / S. Pan, K. Cheng // IEEE Transactions on Systems, Man, and Cybernetics {{---}} Part C, Applications and Reviews, Vol. 37, No. 5 {{---}} 2007 {{---}} С. 827–838</ref>, алгоритма многокритериальной оптимизации PESA-II<ref>Handl, J. An evolutionary approach to multiobjective clustering / J. Handl, J. Knowles, // IEEE Transactions on Evolutionary Computation, vol. 11, no. 1, {{---}} 2007 {{---}} С. 56–76</ref>.
 +
 +
= См. также =
 +
* [[Кластеризация]]
 +
* [[Оценка качества в задаче кластеризации]]
 +
* [[Эволюционные алгоритмы]]
 +
= Примечания =
 +
* [https://ru.wikipedia.org/wiki/Кластерный_анализ Кластерный анализ - Википедия]
 +
* [https://ru.wikipedia.org/wiki/Эволюционные_алгоритмы Эволюционные алгоритмы - Википедия]
 +
* [https://en.wikipedia.org/wiki/Crossover_(genetic_algorithm) Crossover (genetic algorithm) - Wikipedia]
 +
= Источники информации =
 +
# Hruschka, E.R. A Survey of Evolutionary Algorithms for Clustering / E.R. Hruschka, R.J.G.B. Campello, A.A.Freitas, A.C.P.L.F. de Carvalho // IEEE Transactions on Systems, Man, and Cybernetics {{---}} Part C: Applications and Reviews, Vol. 39 {{---}} 2009 {{---}} С.133-155
 +
 +
[[Категория: Машинное обучение]]
 +
[[Категория: Кластеризация]]
 +
[[Категория: Эволюционные алгоритмы]]

Текущая версия на 19:15, 4 сентября 2022

Формулировка задачи кластеризации в общем случае не задаёт условие близости относительно метрики (см. теорему Клейнберга); в связи с этим, многие разработанные методы и алгоритмы решения задачи кластеризации предполагают применимость конкретной меры близости объектов для анализа рассматриваемой выборки.

Альтернативный подход заключается в задании индекса кластеризации как меры близости объектов внутри кластеров и использовании универсального метода для оптимизации этого индекса; эволюционные алгоритмы являются одним из семейств таких универсальных методов.

Описание метода

Для решения задачи кластеризации эволюционный алгоритм использует:

  • разбиения выборки в качестве особей;
  • индекс кластеризации в качестве целевой функции;
  • операции видоизменения разбиений в качестве мутаций;
  • операции комбинирования ("скрещивания") разбиений в качестве кроссовера;
  • и т.д.

Параметры эволюционного алгоритма

Из описания выше следует, что эволюционный алгоритм кластеризации задаётся рядом гиперпараметров — таких как способ инициализации, применяемые мутации, схема самого алгоритма и т.п. Некоторые исследованные элементы конфигурации эволюционного алгоритма кластеризации приведены ниже.

Представление особи

Различные мутации, кроссоверы и способы инициализации особи предполагают некоторое её представление в памяти. Например:

  • целочисленное кодирование по меткам кластеров (англ. label-based integer encoding) — для каждого объекта в выборке его кластер задаётся непосредственно. Таким образом, вся особь — это массив из $N$ чисел, соответствующих кластерам элементов выборки размера $N$.
  • решётчатое кодирование — для каждого вещественного признака объектов одного кластера задаются верхняя и нижняя граница. Таким образом, область одного кластера $d$-мерной выборки ограничивается $d$-мерным гиперкубом.
  • вещественное кодирование (англ. real encoding) — для каждого кластера $d$-мерной выборки задаётся его центроид — синтезированный объект, определяемый его координатами в пространстве выборки. Принадлежность объекта к кластеру определяется центроидом, который ближе всего к объекту согласно используемой метрике. Вся особь определяется вещественным вектором размера $k \cdot d$.
  • бинарное кодирование (англ. binary encoding) — то же самое, что и вещественное кодирование, но в качестве центроида используется элемент выборки, называемый прототипом (англ. prototype). Таким образом, одна особь может быть представлена вектором из $N$ булевых значений, из которых $k$ истинных определяют прототипы соответствующих $k$ кластеров.
  • бинарное кодирование по остовному дереву (англ. tree-based binary encoding) — по выборке строится минимальное остовное дерево; особь кодируется вектором из $N-1$ булевых значений, среди которых $k-1$ истинное соответвует рёбрам остовного дерева, разделяющим кластеры.

Мутации

В качестве мутации можно либо использовать одну из операций, приведённых ниже, либо случайно (н-р, равновероятно) выбирать одну из нескольких таких операций.

Разбиения, слияния и переназначения

В этом разделе приведён ряд мутаций, предполагающих целочисленное кодирование особи. Общим свойством этих операций является необходимость выбрать один, два или более кластеров, над которыми операции производятся. Делать это можно либо случайно (англ. unguided), либо выборочно (англ. guided) на основе той или иной характеристики кластера (англ. interestingness) — например, расстояний объектов до центроида, плотности объектов в кластере и т.п. [1][2]

  • разбиение кластера (англ. split-gene) — выбранный кластер делится вдоль $N-1$-мерной поверхности (н-р, гиперплоскости; для двухмерного случая это прямая) на два новых. Гиперплоскость можно задать:
    • случайно на основе выпуклой оболочки кластера;
    • случайно по направлению, а по положению — выборочно на основе индуцированной функции распределения (или гистограммы) положения объектов кластера вдоль оси, перпендикулярной гиперплоскости;
    • детерминированно как медиану между центроидом кластера и самой отдалённым от центроида объектом.
  • слияние двух кластеров (англ. merge-gene) — выбранные два кластера объединяются в один.
  • удаление кластера — все объекты выбранного кластера переназначаются в другие кластеры на основе расстояния до них.
  • переназначение элементов кластера (англ. remove-and-reclassify) — небольшой набор объектов выбранного кластера переназначается в другие кластеры. Вместе с объектом можно также переместить случайное число (от 0 до $N/k$) ближайших к нему объектов. Набор объектов и целевой кластер можно задать случайно или выборочно на основе расстояний до соседних кластеров.

Следует заметить, что если алгоритм использует хотя бы одну операцию разбиения, то должна быть включена в рассмотрение какая-нибудь операция слияния, и наоборот. Иначе количество кластеров либо уменьшится до двух, либо возрастёт до $N$.

Модификация прототипа

Над прототипами (как вещественно, так и бинарно закодированными) можно проводить операции удаления и добавления; также у вещественного прототипа (центроида) можно поменять координаты. Помимо этого, можно получить гибрид эволюционного алгоритма и K-Means, совершая в качестве одной из возможных мутирующих операций шаг алгоритма $k$ средних значений [3]. Аналогично можно внедрить EM-шаг из Gaussian mixture, но для этого нужно при кодировании особи задавать дисперсию распределения при каждом центроиде [4].

Кроссовер

В качестве операций кроссовера различными авторами были опробованы:

  • k-точечный кроссовер (англ. k-point crossover) на целочисленном и вещественном кодировании;
  • однородный кроссовер (англ. uniform crossover) на бинарном кодированиии по остовному дереву;
  • скрещивание кластеров — из выбранного кластера первой особи удаляется часть объектов, после чего в него добавляются случайно выбранные объекты из кластера второй особи. Удалённые объекты переназначаются в другие кластеры первой особи. На всех стадиях этой операции, требующих выбор объектов или кластеров, можно использовать как выборочную (англ. guided), так и полностью случайную (англ. unguided) стратегии, аналогично описанию мутаций разбиения и слияния [2].

Инициализация

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

  • случайная инициализация — объекты назначаются в кластеры полностью случайным образом. Качество у полученной особи наихудшее, но можно использовать этот способ для тестирования.
  • случайный выбор прототипов — прототипы бинарно закодированной особи задаются случайно.
  • пространственная инициализация — например, объекты назначаются в кластеры на основе их координаты вдоль случайной оси.
  • запуск другого алгоритма кластеризации — особь можно инициализировать с помощью K-Means, иерархической кластеризации и проч.

Виды алгоритмов

На момент написания конспекта автору было известно о попытках использования эволюционных алгоритмов Roulette wheel selection, $(\mu + \lambda)$[5], tabu search[6], алгоритма многокритериальной оптимизации PESA-II[7].

См. также

Примечания

Источники информации

  1. Hruschka, E.R. A Survey of Evolutionary Algorithms for Clustering / E.R. Hruschka, R.J.G.B. Campello, A.A.Freitas, A.C.P.L.F. de Carvalho // IEEE Transactions on Systems, Man, and Cybernetics — Part C: Applications and Reviews, Vol. 39 — 2009 — С.133-155
    1. R. M. Cole. Clustering with genetic algorithms: дис. магистра, University of Western Australia, Perth, W.A., 1998
    2. 2,0 2,1 Ma, P.C.H. An Evolutionary Clustering Algorithm for Gene Expression Microarray Data Analysis / P.C.H. Ma, K.C.C. Chan, X. Yao, D.K.Y. Chiu // IEEE Transactions on Evolutionary Computation, Vol. 10 — 2006 — С.296-314
    3. Marghny, M.H. An Effective Evolutionary Clustering Algorithm: Hepatitis C case study / M.H. Marghny, Rasha M. Abd El-Aziz, Ahmed I. Taloba // International Journal of Computer Applications, Vol. 34 — No.6 — 2011
    4. Lu, W. A novel evolutionary clustering algorithm based on Gaussian mixture model / W. Lu, I. Traore // ICCOMP'06 Proceedings of the 10th WSEAS international conference on Computers — 2006 — C. 686-691
    5. Alves, V.S. Towards a fast evolutionary algorithm for clustering / V. S. Alves, R. J. G. B. Campello, E. R. Hruschka, // Proceedings IEEE Congress on Evolutionary Computation — 2006 — С. 6240–6247
    6. Pan, S. Evolution-based tabu search approach to automatic clustering / S. Pan, K. Cheng // IEEE Transactions on Systems, Man, and Cybernetics — Part C, Applications and Reviews, Vol. 37, No. 5 — 2007 — С. 827–838
    7. Handl, J. An evolutionary approach to multiobjective clustering / J. Handl, J. Knowles, // IEEE Transactions on Evolutionary Computation, vol. 11, no. 1, — 2007 — С. 56–76
    Источник — «http://neerc.ifmo.ru/wiki/index.php?title=Эволюционные_алгоритмы_кластеризации&oldid=84754»