Введение 3
1. Цель работы 5
2. Понятие отношения частичного порядка на множестве точек 6
3. Алгоритмы кластеризации точек 8
3.1. Квадратичный алгоритм 8
3.1.1. Описание алгоритма 8
3.1.2. Реализация алгоритма на языке С# 10
3.1.3. Тестирование работы алгоритма 14
3.2. Линейно-логарифмический алгоритм 17
3.2.1. Описание алгоритма 17
3.2.2. Реализация алгоритма на языке С# 20
3.2.3. Тестирование работы алгоритма 30
4. Сравнение работы двух алгоритмов 31
5. Заключение 32
6. Список литературы 33
7. Приложение. Листинг программы
С появлением вычислительной техники объём данных, с которыми может работать человек, значительно увеличился. Относительно недавно возник термин Big Data (в переводе с англ. «Большие данные»). В настоящее время люди сталкиваются с большим объемом данных, что делает информацию об этих самых данных трудной для понимания. Поэтому были разработаны и разрабатываются по сей день методы обработки больших данных с целью более простого понимания их значения, а также представления их в виде, удобном для исследования и использования. Эти методы являются областью интеллектуального анализа данных (англ. Data Mining), который является одной из самых молодых научных областей и самых актуальных тем на сегодняшний день.
Кластеризация - объединение в группы схожих объектов - является одной из фундаментальных задач в области анализа данных и Data Mining. Под кластером понимается объединение множества однородных объектов, обладающих определенными свойствами. Задачей кластеризации является выделение в исходном множестве некоторой, заранее неизвестной, структуры кластеров. Особенность данной задачи заключается в том, что число кластеров заранее неизвестно. Оно определяется в процессе работы алгоритма. Кластеризация широко используется как в качестве отдельного инструмента анализа, так и как один из этапов предварительной обработки данных перед использованием других аналитических методов. Аналитику часто легче выделить группы схожих объектов, изучить их особенности и построить для каждой группы отдельную модель, чем создавать одну общую модель на всех данных. Список прикладных областей, где она применяется, широк: сегментация изображений, маркетинг, борьба с мошенничеством, прогнозирование, анализ текстов и многие другие. На современном этапе кластеризация часто выступает первым шагом при анализе данных. После выделения схожих групп применяются другие методы, для каждой группы строится отдельная модель.
В данной работе рассматривается частный случай, когда кластерами являются монотонные кривые, то есть кластеризируемые точки будут разбиваться на кривые, которые возрастают или убывают.
1. Цель работы
Целью выпускной работы является исследование двух алгоритмов разбиения частично упорядоченного множества точек на антицепи(ломанные), соединяющие точки. Эти ломанные должны быть монотонными функциями. Исследование заключается в сравнении времени работы двух алгоритмов в зависимости от размерности(объема) точек. На основании исследования времени работы можно будет сделать вывод относительно целесообразности применения того или иного алгоритма для различной размерности данных.
Существуют следующие варианты ломанных, соединяющих точки на плоскости:
1) Строго возрастающая;
2) Возрастающая с горизонтальными отрезками;
3) Возрастающая с вертикальными отрезками;
4) Возрастающая с горизонтальными и вертикальными отрезками;
5) Строго убывающая;
6) Убывающая с горизонтальными отрезками;
7) Убывающая с вертикальными отрезками;
8) Убывающая с горизонтальными и вертикальными отрезками.
В данной работе была исследована работа двух алгоритмов разбиения частичного множества точек на антицепи(ломанные), соединяющие точки. При тестировании мы убедились, что время исполнения данного алгоритма приемлемо только для нескольких десятков тысяч данных. Убедившись в необходимости более эффективного по времени алгоритма, мы реализовали линейно-логарифмический алгоритм, который за очень короткое время выдал нам решение нашей задачи.
1. Кормен Т.Х., Лейзерсон Ч.И., Ривест Р.Л., Штайн К. Алгоритмы: построение и анализ, 2-е издание.: Пер. с англ. - М.: Издательский дом “Вильямс”, 2005. - 1296 с.
2. Lerner E. and Voloskov D. Clustering of the points lying on monotonous curves as a partition into antichains // 2015. J. Phys.: Conf. Ser. 633 012066
3. Спивак А.В., статья “Цепи и антицепи” https://www.mccme.ru/circles/oim/materials/spivak-04-2.pdf
4. Руководство по программированию на С#.
https://msdn.microsoft.com/ru-ru/library/67ef8sbd(v=vs.120).aspx