SlideShare a Scribd company logo
Big Data’13
Лекция X: алгоритмы кластеризации
Дмитрий Барашев
bigdata@barashev.net
Computer Science Center
25 апреля 2013
1/42
Этот материал распространяется под лицензией
Creative Commons ”Attribution - Share Alike” 3.0
http://creativecommons.org/licenses/by-sa/3.0/us/deed.ru
2/42
Сегодня в программе
Задача кластеризации
Методы кластеризации
Иерархическая кластеризация
Алгоритм k-средних
Зонтичная кластеризация
3/42
Сегодня в программе
Задача кластеризации
Методы кластеризации
Иерархическая кластеризация
Алгоритм k-средних
Зонтичная кластеризация
4/42
Что хотим
Дано
некоторый набор точек
функция расстояния между точками
Что хотим
сгруппировать точки в некоторое количество
кластеров по каким-то правилам
5/42
Что хотим
Дано
некоторый набор точек
функция расстояния между точками
Что хотим
сгруппировать точки в некоторое количество
кластеров по каким-то правилам
Сколько кластеров?
Какие правила?
Какая функция расстояния?
5/42
Точки и расстояние
Обычно точки в евклидовом многомерном
пространстве
А может и в неевклидовом
в евклидовом пространстве обычно можно найти
некую ”среднюю” точку, возможно
отсутствующую в исходном множестве
Функция расстояния – Евклидово, косинусное,
Жаккардово, Левенштейна
6/42
Четкие кластеры
7/42
Приложения
Кластеризация результатов поиска
8/42
Приложения
Кластеризация результатов поиска
Последовательная автоматическая
рекластеризация документов
”Россия”, ”политика”, ”экономика”, ”спорт”
→ ”Россия”, ”футбол”, ”хоккей”, ”лига
чемпионов”, ”Гагарин”
→ ”Барселона”, ”Германия”, ”полуфиналы”,
”какая боль”
8/42
Приложения
Кластеризация результатов поиска
Последовательная автоматическая
рекластеризация документов
”Россия”, ”политика”, ”экономика”, ”спорт”
→ ”Россия”, ”футбол”, ”хоккей”, ”лига
чемпионов”, ”Гагарин”
→ ”Барселона”, ”Германия”, ”полуфиналы”,
”какая боль”
Поиск тесно связанных между собой
пользователей контактика
8/42
Приложения
Кластеризация результатов поиска
Последовательная автоматическая
рекластеризация документов
”Россия”, ”политика”, ”экономика”, ”спорт”
→ ”Россия”, ”футбол”, ”хоккей”, ”лига
чемпионов”, ”Гагарин”
→ ”Барселона”, ”Германия”, ”полуфиналы”,
”какая боль”
Поиск тесно связанных между собой
пользователей контактика
Поиск научных статей, похожих по темам на
вашу
8/42
Приложения
Кластеризация результатов поиска
Последовательная автоматическая
рекластеризация документов
”Россия”, ”политика”, ”экономика”, ”спорт”
→ ”Россия”, ”футбол”, ”хоккей”, ”лига
чемпионов”, ”Гагарин”
→ ”Барселона”, ”Германия”, ”полуфиналы”,
”какая боль”
Поиск тесно связанных между собой
пользователей контактика
Поиск научных статей, похожих по темам на
вашу
Определение оптимального местоположения
базовых станций сотовой сети
8/42
Евклидово расстояние
x = [x1, . . . , xn], y = [y1, . . . , yn]
d(x, y) =
n∑
i=1
(xi − yi)2
9/42
Косинусное расстояние
x = [x1, . . . , xn], y = [y1, . . . , yn]
d(x, y) =
∑n
i=1(xi × yi)
√∑n
i=1 x2
i
√∑n
i=1 y2
i
10/42
Жаккардово расстояние
Коэффициент схожести J(A, B) = A∩B
A∪B
Расстояние d(A, B) = 1 − J(A, B)
11/42
Манхеттенское расстояние
x = [x1, . . . , xn], y = [y1, . . . , yn]
d(x, y) =
n∑
i=1
|xi − yi|
Сколько кварталов нужно пройти по Манхеттену
чтоб попасть с одного перекрестка на другой
12/42
Манхеттенское расстояние
13/42
Сегодня в программе
Задача кластеризации
Методы кластеризации
Иерархическая кластеризация
Алгоритм k-средних
Зонтичная кластеризация
14/42
Две разные стратегии
Иерархическая (восходящая и нисходящая)
Плоская
15/42
Иерархическая стратегия
Сначала каждая точка – один кластер
На итерации «ближайшие» кластеры
объединяются
Итерации останавливаются при достижении
какого-то критерия
В нисходящей стратегии все наоборот,
начинается с одного большого кластера,
включающего все точки
16/42
Плоская стратегия
Определяются первоначальные кластеры
Точки рассматриваются по очереди и
приписываются какому-то кластеру
Если результат достаточно хорош, итерации
останавливаются
17/42
Возможные характеристики кластеров
Диаметр: максимальное расстояние между
любыми двумя точками в кластере
Радиус: максимальное расстояние от некого
«центра» до любой из точек кластера
Плотность: количество точек в кластере
поделенное на «объём»: радиус в какой-то
степени
Межкластерное расстояние: расстояние
между центрами, между ближайшими точками,
среднее расстояние между всеми парами
18/42
Критерии прекращения кластеризации
Построено нужное число кластеров
Характеристики кластеров (диаметр,
плотность) достигли граничных значений
19/42
Центры кластеров
В евклидовом пространстве есть центроид –
среднем арифметическом точек кластера
В неевклидовом пространстве (например в
пространстве строк) центроида нет. Центром
(кластроидом) выбирается одна из точек
кластера, минимизирующая
максимальное расстояние до остальных точек
или сумму растояний
или сумму квадратов расстояний
20/42
Сегодня в программе
Задача кластеризации
Методы кластеризации
Иерархическая кластеризация
Алгоритм k-средних
Зонтичная кластеризация
21/42
Восходящая иерархическая кластеризация
Евклидово пространство
Исходное положение: каждая точка - один
кластер
Итерация: объединяются два самых близких
кластера
22/42
..
0
.
1
.
2
.
3
.
4
.
5
.0 .
1
.
2
.
3
.
4
.
5
.......
23/42
..
0
.
1
.
2
.
3
.
4
.
5
.0 .
1
.
2
.
3
.
4
.
5
.......
24/42
..
0
.
1
.
2
.
3
.
4
.
5
.0 .
1
.
2
.
3
.
4
.
5
.......
25/42
..
0
.
1
.
2
.
3
.
4
.
5
.0 .
1
.
2
.
3
.
4
.
5
.......
26/42
..
0
.
1
.
2
.
3
.
4
.
5
.0 .
1
.
2
.
3
.
4
.
5
.......
27/42
Сегодня в программе
Задача кластеризации
Методы кластеризации
Иерархическая кластеризация
Алгоритм k-средних
Зонтичная кластеризация
28/42
Схема
Выбрать k точек, находящиеся вероятно в
разных кластерах и объявить их центроидами
Итерация: для каждой точки найти ближайший
центроид и отнести её к соотв. кластеру
Пересчитать центроиды и если требуется,
сделать следующую итерацию
например если ни одна точка не переехала в
другой кластер то уже наверное хватит
29/42
Map-Reduce реализация
Подготовка: заготовить список центроидов
[ci]k
i=1. Он скорее всего поместится в RAM
Map: для каждой точки p прочитать центроиды,
найти ближайший cj, выплюнуть пару (cj, p)
Reduce: для полученного кластера,
представленного центроидом ci (ключ свертки)
и списка точек найти новый центроид и
посчитать характеристики кластера. Результат
записать.
30/42
Снова о прекращении итераций
Среднеквадратическая ошибка
Для одного кластера
Di =
∑
x∈ωi
|x − ci|2
Для всего множества
D =
k∑
i=1
Di
31/42
Снова о прекращении итераций
Среднеквадратическая ошибка
Для одного кластера
Di =
∑
x∈ωi
|x − ci|2
Для всего множества
D =
k∑
i=1
Di
Алгоритм k-means находит (локальный)
минимум D
можно останавливаться, если D стал ниже
плинтуса порога
или если изменение D стало маленьким
31/42
Выбор k
Если число кластеров неизвестно априорно, то
можно перебрать разные k
Если поставить цель минимизировать
среднеквадратичную ошибку то лучшее k
32/42
Выбор k
Если число кластеров неизвестно априорно, то
можно перебрать разные k
Если поставить цель минимизировать
среднеквадратичную ошибку то лучшее k
k = N
32/42
Выбор k
Если число кластеров неизвестно априорно, то
можно перебрать разные k
Если поставить цель минимизировать
среднеквадратичную ошибку то лучшее k
k = N
Можно рассмотреть кривую уменьшения D в
зависимости от увеличения k и брать k
соответствующий точкам изгиба
32/42
Выбор начальных центроидов
Случайный, как можно дальше друг от друга
outlier может все испортить
Случайный с выкидыванием отщепенцев
Предварительная иерархическая кластеризация
и центроиды получившихся кластеров в
качестве первоначальных для k-means
можно проводить над небольшой случайной
выборкой из исходных точек
Несколько разных наборов начальных
центроидов и выбор показавшего лучший
результат
33/42
Сегодня в программе
Задача кластеризации
Методы кластеризации
Иерархическая кластеризация
Алгоритм k-средних
Зонтичная кластеризация
34/42
Сокращение вычислений
Измерять расстояние от каждой точки до
каждого центроида может быть дорого
С некоторыми центроидами даже связываться
не хочется
Давайте заранее определим «зонтики» –
(перекрывающиеся) области, где имеет смысл
вычислять расстояние
Расстояние между точками из разных зонтиков
будет равно ∞
35/42
Построение зонтиков
У зонтика есть центр, внешний радиус T1 и
внутренний радиус T2
Шаги построения:
1. случайно выбрать центр c
2. для каждой точки p исходного множества если
d(p, c) <= T2 то забыть ее; если T2 < d(p, c) <= T1
то записать точку в зонтик
3. делать так пока каждая точка не окажется хотя
бы в одном зонтике
36/42
Применение к k-means
В k-means расстояние между точками из разных
зонтиков равно ∞
Все остальное точно так же
37/42
Построение зонтиков с Map-Reduce
Шаг первый:
входные данные поделить на фрагменты
map (много задач): найти зонтики в одном
фрагменте и выплюнуть их центры
reduce (1 задача): сделать то же самое с
полученными центрами. Получить список
центров.
Шаг второй:
map: взять фрагмент, список центров и
определить в какие зонтики попала каждая
точка
reduce: записать либо пары (точка, центр) либо
(центр, список точек) либо и то и другое
38/42
Инструменты
Apache Mahout: алгоритмы кластеризации
поверх Hadoop
Weka: набор data mining библиотек и
алгоритмов для одной машины
39/42
Занавес
Кластеризация решает практические задачи
Много разных алгоритмов
Простой, широко используемый и
масштабируемый алгоритм k-средних
И его можно существенно ускорить
40/42
Эта презентация сверстана в
P
a
peeria1LTEX в вашем браузере
papeeria.com
41/42
Литература I
42/42

More Related Content

PDF
L10: Алгоритмы кластеризации
PDF
Лекция №3 "Различные алгоритмы кластеризации"
PDF
Лекция №8 "Методы снижения размерности пространства"
PDF
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
PDF
Лекция №4 "Задача классификации"
PDF
Лекция №12 "Ограниченная машина Больцмана"
PDF
L11: Метод ансамблей
PDF
L7:Задача кластеризации. Метрики качества
L10: Алгоритмы кластеризации
Лекция №3 "Различные алгоритмы кластеризации"
Лекция №8 "Методы снижения размерности пространства"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №4 "Задача классификации"
Лекция №12 "Ограниченная машина Больцмана"
L11: Метод ансамблей
L7:Задача кластеризации. Метрики качества

Viewers also liked (19)

PDF
142 - Spring. Вызов потока из контроллера
PDF
139 - Spring. Добавление JavaScript
PDF
134 - Spring. Области видимости данных
PDF
135 - Spring. Применение областей видимости данных
PDF
140 - Spring. Валидация
PDF
137 - Spring. ResourceBundle
PDF
130 - Spring WebFlow. Создание проекта
PDF
131 - Spring. Переход между страницами
PDF
136 - Spring. FlowRequestContext
PDF
133 - Spring. Создание подпотоков
PDF
01 - JavaFX. Введение в JavaFX
PDF
138 - Spring. Перехват исключений
PDF
129 - Spring. Основные понятия
PDF
144 - Spring. Наследование потоков
PDF
143 - Spring. JSF centric integration
PDF
66 - Spring. Spring и JSF
PDF
141 - Spring. Добавление контроллеров Spring MVC
PDF
17 - Web-технологии. Real Time сообщения
PDF
Лекция 7. Исключения и менеджеры контекста.
142 - Spring. Вызов потока из контроллера
139 - Spring. Добавление JavaScript
134 - Spring. Области видимости данных
135 - Spring. Применение областей видимости данных
140 - Spring. Валидация
137 - Spring. ResourceBundle
130 - Spring WebFlow. Создание проекта
131 - Spring. Переход между страницами
136 - Spring. FlowRequestContext
133 - Spring. Создание подпотоков
01 - JavaFX. Введение в JavaFX
138 - Spring. Перехват исключений
129 - Spring. Основные понятия
144 - Spring. Наследование потоков
143 - Spring. JSF centric integration
66 - Spring. Spring и JSF
141 - Spring. Добавление контроллеров Spring MVC
17 - Web-технологии. Real Time сообщения
Лекция 7. Исключения и менеджеры контекста.
Ad

Similar to 2013 04 25_bigData_lecture_10 (14)

PDF
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
PDF
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
ODP
Алгоритмы кластеризации. ч.2
PPTX
интелектуальный анализ экономических данных в системе каркас
ODP
Алгоритмы кластеризации. ч.1
PDF
К.В. Воронцов "Алгоритмы кластеризации"
PPTX
Text clustering v1.1
PPTX
Geo sib 2012
PPTX
Практический курс «Основы Data Mining для всех»
PPTX
Методы кластеризации
PPT
03 кластеризация документов
ODP
Алгоритмы кластеризации. ч.3
PPTX
!Predictive analytics part_2
PDF
Community detection (Поиск сообществ в графах)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Алгоритмы кластеризации. ч.2
интелектуальный анализ экономических данных в системе каркас
Алгоритмы кластеризации. ч.1
К.В. Воронцов "Алгоритмы кластеризации"
Text clustering v1.1
Geo sib 2012
Практический курс «Основы Data Mining для всех»
Методы кластеризации
03 кластеризация документов
Алгоритмы кластеризации. ч.3
!Predictive analytics part_2
Community detection (Поиск сообществ в графах)
Ad

More from Roman Brovko (20)

PDF
Individual task Networking
PPTX
Networking essentials lect3
PPTX
Gl embedded starterkit_ethernet
PPTX
Networking essentials lect2
PPTX
Networking essentials lect1
PPTX
Bare metal training_07_spi_flash
PPTX
Bare metal training_06_I2C
PPTX
Glesk worshop
PPTX
Bare metal training_05_uart
PPTX
Bare metal training_04_adc_temp_sensor
PPTX
Bare metal training_03_timers_pwm
PPTX
Bare metal training_02_le_ds_and_buttons
PPTX
Bare metal training_01_hello_world
PPTX
Bare metal training_00_prerequisites
PPTX
C language lect_23_advanced
PPTX
C language lect_22_advanced
PPTX
C language lect_21_advanced
PPTX
подготовка рабочего окружения
PPTX
C language lect_20_advanced
PPTX
C language lect_19_basics
Individual task Networking
Networking essentials lect3
Gl embedded starterkit_ethernet
Networking essentials lect2
Networking essentials lect1
Bare metal training_07_spi_flash
Bare metal training_06_I2C
Glesk worshop
Bare metal training_05_uart
Bare metal training_04_adc_temp_sensor
Bare metal training_03_timers_pwm
Bare metal training_02_le_ds_and_buttons
Bare metal training_01_hello_world
Bare metal training_00_prerequisites
C language lect_23_advanced
C language lect_22_advanced
C language lect_21_advanced
подготовка рабочего окружения
C language lect_20_advanced
C language lect_19_basics

2013 04 25_bigData_lecture_10

  • 1. Big Data’13 Лекция X: алгоритмы кластеризации Дмитрий Барашев bigdata@barashev.net Computer Science Center 25 апреля 2013 1/42
  • 2. Этот материал распространяется под лицензией Creative Commons ”Attribution - Share Alike” 3.0 http://creativecommons.org/licenses/by-sa/3.0/us/deed.ru 2/42
  • 3. Сегодня в программе Задача кластеризации Методы кластеризации Иерархическая кластеризация Алгоритм k-средних Зонтичная кластеризация 3/42
  • 4. Сегодня в программе Задача кластеризации Методы кластеризации Иерархическая кластеризация Алгоритм k-средних Зонтичная кластеризация 4/42
  • 5. Что хотим Дано некоторый набор точек функция расстояния между точками Что хотим сгруппировать точки в некоторое количество кластеров по каким-то правилам 5/42
  • 6. Что хотим Дано некоторый набор точек функция расстояния между точками Что хотим сгруппировать точки в некоторое количество кластеров по каким-то правилам Сколько кластеров? Какие правила? Какая функция расстояния? 5/42
  • 7. Точки и расстояние Обычно точки в евклидовом многомерном пространстве А может и в неевклидовом в евклидовом пространстве обычно можно найти некую ”среднюю” точку, возможно отсутствующую в исходном множестве Функция расстояния – Евклидово, косинусное, Жаккардово, Левенштейна 6/42
  • 10. Приложения Кластеризация результатов поиска Последовательная автоматическая рекластеризация документов ”Россия”, ”политика”, ”экономика”, ”спорт” → ”Россия”, ”футбол”, ”хоккей”, ”лига чемпионов”, ”Гагарин” → ”Барселона”, ”Германия”, ”полуфиналы”, ”какая боль” 8/42
  • 11. Приложения Кластеризация результатов поиска Последовательная автоматическая рекластеризация документов ”Россия”, ”политика”, ”экономика”, ”спорт” → ”Россия”, ”футбол”, ”хоккей”, ”лига чемпионов”, ”Гагарин” → ”Барселона”, ”Германия”, ”полуфиналы”, ”какая боль” Поиск тесно связанных между собой пользователей контактика 8/42
  • 12. Приложения Кластеризация результатов поиска Последовательная автоматическая рекластеризация документов ”Россия”, ”политика”, ”экономика”, ”спорт” → ”Россия”, ”футбол”, ”хоккей”, ”лига чемпионов”, ”Гагарин” → ”Барселона”, ”Германия”, ”полуфиналы”, ”какая боль” Поиск тесно связанных между собой пользователей контактика Поиск научных статей, похожих по темам на вашу 8/42
  • 13. Приложения Кластеризация результатов поиска Последовательная автоматическая рекластеризация документов ”Россия”, ”политика”, ”экономика”, ”спорт” → ”Россия”, ”футбол”, ”хоккей”, ”лига чемпионов”, ”Гагарин” → ”Барселона”, ”Германия”, ”полуфиналы”, ”какая боль” Поиск тесно связанных между собой пользователей контактика Поиск научных статей, похожих по темам на вашу Определение оптимального местоположения базовых станций сотовой сети 8/42
  • 14. Евклидово расстояние x = [x1, . . . , xn], y = [y1, . . . , yn] d(x, y) = n∑ i=1 (xi − yi)2 9/42
  • 15. Косинусное расстояние x = [x1, . . . , xn], y = [y1, . . . , yn] d(x, y) = ∑n i=1(xi × yi) √∑n i=1 x2 i √∑n i=1 y2 i 10/42
  • 16. Жаккардово расстояние Коэффициент схожести J(A, B) = A∩B A∪B Расстояние d(A, B) = 1 − J(A, B) 11/42
  • 17. Манхеттенское расстояние x = [x1, . . . , xn], y = [y1, . . . , yn] d(x, y) = n∑ i=1 |xi − yi| Сколько кварталов нужно пройти по Манхеттену чтоб попасть с одного перекрестка на другой 12/42
  • 19. Сегодня в программе Задача кластеризации Методы кластеризации Иерархическая кластеризация Алгоритм k-средних Зонтичная кластеризация 14/42
  • 20. Две разные стратегии Иерархическая (восходящая и нисходящая) Плоская 15/42
  • 21. Иерархическая стратегия Сначала каждая точка – один кластер На итерации «ближайшие» кластеры объединяются Итерации останавливаются при достижении какого-то критерия В нисходящей стратегии все наоборот, начинается с одного большого кластера, включающего все точки 16/42
  • 22. Плоская стратегия Определяются первоначальные кластеры Точки рассматриваются по очереди и приписываются какому-то кластеру Если результат достаточно хорош, итерации останавливаются 17/42
  • 23. Возможные характеристики кластеров Диаметр: максимальное расстояние между любыми двумя точками в кластере Радиус: максимальное расстояние от некого «центра» до любой из точек кластера Плотность: количество точек в кластере поделенное на «объём»: радиус в какой-то степени Межкластерное расстояние: расстояние между центрами, между ближайшими точками, среднее расстояние между всеми парами 18/42
  • 24. Критерии прекращения кластеризации Построено нужное число кластеров Характеристики кластеров (диаметр, плотность) достигли граничных значений 19/42
  • 25. Центры кластеров В евклидовом пространстве есть центроид – среднем арифметическом точек кластера В неевклидовом пространстве (например в пространстве строк) центроида нет. Центром (кластроидом) выбирается одна из точек кластера, минимизирующая максимальное расстояние до остальных точек или сумму растояний или сумму квадратов расстояний 20/42
  • 26. Сегодня в программе Задача кластеризации Методы кластеризации Иерархическая кластеризация Алгоритм k-средних Зонтичная кластеризация 21/42
  • 27. Восходящая иерархическая кластеризация Евклидово пространство Исходное положение: каждая точка - один кластер Итерация: объединяются два самых близких кластера 22/42
  • 33. Сегодня в программе Задача кластеризации Методы кластеризации Иерархическая кластеризация Алгоритм k-средних Зонтичная кластеризация 28/42
  • 34. Схема Выбрать k точек, находящиеся вероятно в разных кластерах и объявить их центроидами Итерация: для каждой точки найти ближайший центроид и отнести её к соотв. кластеру Пересчитать центроиды и если требуется, сделать следующую итерацию например если ни одна точка не переехала в другой кластер то уже наверное хватит 29/42
  • 35. Map-Reduce реализация Подготовка: заготовить список центроидов [ci]k i=1. Он скорее всего поместится в RAM Map: для каждой точки p прочитать центроиды, найти ближайший cj, выплюнуть пару (cj, p) Reduce: для полученного кластера, представленного центроидом ci (ключ свертки) и списка точек найти новый центроид и посчитать характеристики кластера. Результат записать. 30/42
  • 36. Снова о прекращении итераций Среднеквадратическая ошибка Для одного кластера Di = ∑ x∈ωi |x − ci|2 Для всего множества D = k∑ i=1 Di 31/42
  • 37. Снова о прекращении итераций Среднеквадратическая ошибка Для одного кластера Di = ∑ x∈ωi |x − ci|2 Для всего множества D = k∑ i=1 Di Алгоритм k-means находит (локальный) минимум D можно останавливаться, если D стал ниже плинтуса порога или если изменение D стало маленьким 31/42
  • 38. Выбор k Если число кластеров неизвестно априорно, то можно перебрать разные k Если поставить цель минимизировать среднеквадратичную ошибку то лучшее k 32/42
  • 39. Выбор k Если число кластеров неизвестно априорно, то можно перебрать разные k Если поставить цель минимизировать среднеквадратичную ошибку то лучшее k k = N 32/42
  • 40. Выбор k Если число кластеров неизвестно априорно, то можно перебрать разные k Если поставить цель минимизировать среднеквадратичную ошибку то лучшее k k = N Можно рассмотреть кривую уменьшения D в зависимости от увеличения k и брать k соответствующий точкам изгиба 32/42
  • 41. Выбор начальных центроидов Случайный, как можно дальше друг от друга outlier может все испортить Случайный с выкидыванием отщепенцев Предварительная иерархическая кластеризация и центроиды получившихся кластеров в качестве первоначальных для k-means можно проводить над небольшой случайной выборкой из исходных точек Несколько разных наборов начальных центроидов и выбор показавшего лучший результат 33/42
  • 42. Сегодня в программе Задача кластеризации Методы кластеризации Иерархическая кластеризация Алгоритм k-средних Зонтичная кластеризация 34/42
  • 43. Сокращение вычислений Измерять расстояние от каждой точки до каждого центроида может быть дорого С некоторыми центроидами даже связываться не хочется Давайте заранее определим «зонтики» – (перекрывающиеся) области, где имеет смысл вычислять расстояние Расстояние между точками из разных зонтиков будет равно ∞ 35/42
  • 44. Построение зонтиков У зонтика есть центр, внешний радиус T1 и внутренний радиус T2 Шаги построения: 1. случайно выбрать центр c 2. для каждой точки p исходного множества если d(p, c) <= T2 то забыть ее; если T2 < d(p, c) <= T1 то записать точку в зонтик 3. делать так пока каждая точка не окажется хотя бы в одном зонтике 36/42
  • 45. Применение к k-means В k-means расстояние между точками из разных зонтиков равно ∞ Все остальное точно так же 37/42
  • 46. Построение зонтиков с Map-Reduce Шаг первый: входные данные поделить на фрагменты map (много задач): найти зонтики в одном фрагменте и выплюнуть их центры reduce (1 задача): сделать то же самое с полученными центрами. Получить список центров. Шаг второй: map: взять фрагмент, список центров и определить в какие зонтики попала каждая точка reduce: записать либо пары (точка, центр) либо (центр, список точек) либо и то и другое 38/42
  • 47. Инструменты Apache Mahout: алгоритмы кластеризации поверх Hadoop Weka: набор data mining библиотек и алгоритмов для одной машины 39/42
  • 48. Занавес Кластеризация решает практические задачи Много разных алгоритмов Простой, широко используемый и масштабируемый алгоритм k-средних И его можно существенно ускорить 40/42
  • 49. Эта презентация сверстана в P a peeria1LTEX в вашем браузере papeeria.com 41/42