Участник:Илья Егоров/Алгоритм k-средних: различия между версиями
| Строка 6: | Строка 6: | ||
== Общее описание алгоритма == | == Общее описание алгоритма == | ||
Алгоритм кластеризации k-средних был предложен в 1950-х годах математиками Гуго Штейнгаузом и Стюартом Ллойдом независимо друг от друга | Алгоритм кластеризации k-средних впервые был предложен в 1950-х годах математиками Гуго Штейнгаузом и Стюартом Ллойдом независимо друг от друга. Наибольшую популярность он получил после работы Маккуина. | ||
Алгоритм позволяет при заданном числе <math>k</math> построить <math>k</math> кластеров, расположенных на максимальном расстоянии друг от друга. Таким образом, наибольшей точности результат выполнения алгоритма достигает при полной осведомленности Пользователя о характере кластеризуемых объектов и, как следствие, при обладании максимально корректной информацией о числе кластеров. | |||
В общем случае выбор числа <math>k</math> может базироваться на любых значимых факторах, в том числе на результатах предшествующих исследований, теоретических соображениях или интуиции. | |||
== Математическое описание алгоритма == | == Математическое описание алгоритма == | ||
Версия от 16:14, 6 октября 2016
Здесь будет описание алгоритма k-средних
Страница создана группой "Илья Егоров -- Евгений Богомазов"
ЧАСТЬ. Свойства и структура алгоритмов
Общее описание алгоритма
Алгоритм кластеризации k-средних впервые был предложен в 1950-х годах математиками Гуго Штейнгаузом и Стюартом Ллойдом независимо друг от друга. Наибольшую популярность он получил после работы Маккуина.
Алгоритм позволяет при заданном числе [math]\displaystyle{ k }[/math] построить [math]\displaystyle{ k }[/math] кластеров, расположенных на максимальном расстоянии друг от друга. Таким образом, наибольшей точности результат выполнения алгоритма достигает при полной осведомленности Пользователя о характере кластеризуемых объектов и, как следствие, при обладании максимально корректной информацией о числе кластеров.
В общем случае выбор числа [math]\displaystyle{ k }[/math] может базироваться на любых значимых факторах, в том числе на результатах предшествующих исследований, теоретических соображениях или интуиции.
Математическое описание алгоритма
Исходные данные: [math]\displaystyle{ \{a_i\}, i = 1 \dots m }[/math] -- множество из [math]\displaystyle{ m }[/math]объектов, подлежащих кластеризации и определяющихся вектором длины [math]\displaystyle{ n }[/math], [math]\displaystyle{ k }[/math] -- предполагаемое количество кластеров.
Вычисляемые данные: центр предполагаемого кластера (центроид) -- на первом шаге объявляется равным случайному объекту, затем сдвигается в центр масс элементов кластера.
Если [math]\displaystyle{ \{s_1 \dots s_k\} }[/math] -- центроиды, где [math]\displaystyle{ 1 \dots k }[/math] -- номера кластеров, то объект [math]\displaystyle{ a }[/math] относится к кластеру [math]\displaystyle{ p }[/math], если суммарное квадратичное отклонение точек кластеров от центров этих кластеров минимально:
[math]\displaystyle{ \sum^n_{j=1}\sum_{j=1} \left(a_i - p_i\right) \Rightarrow \min }[/math]
Вычислительное ядро алгоритма
Макроструктура алгоритма
Схема реализации последовательного алгоритма
Последовательная сложность алгоритма
Информационный граф
Ресурс параллелизма алгоритма
Входные и выходные данные алгоритма
Свойства алгоритма
ЧАСТЬ. Программная реализация алгоритма
Особенности реализации последовательного алгоритма
Локальность данных и вычислений
Возможные способы и особенности параллельной реализации алгоритма
Масштабируемость алгоритма и его реализации
Динамические характеристики и эффективность реализации алгоритма
Выводы для классов архитектур
Существующие реализации алгоритма
Литература
[1] Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. - СПб.: БХВ-Петербург, 2002. - 608 с.
[2] Воеводин В.В., Воеводин Вад.В. Спасительная локальность суперкомпьютеров //Открытые системы. - 2013. - № 9. - С. 12-15.
[3] Воеводин Вад.В., Швец П. Метод покрытий для оценки локальности использования данных в программах // Вестник УГАТУ. — 2014. — Т. 18, № 1(62). — С. 224–229.
[4] Антонов А.С., Теплов А.М. О практической сложности понятия масштабируемости параллельных программ// Высокопроизводительные параллельные вычисления на кластерных системах (HPC 2014): Материалы XIV Международной конференции -Пермь: Издательство ПНИПУ, 2014. С. 20-27.
[5] Никитенко Д.А. Комплексный анализ производительности суперкомпьютерных систем, основанный на данных системного мониторинга // Вычислительные методы и программирование. 2014. 15. 85–97.