62
Big Data’15 Лекция IX: алгоритмы кластеризации Дмитрий Барашев [email protected] Computer Science Center 21 апреля 2015 1/52

Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Embed Size (px)

Citation preview

Page 1: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Big Data’15Лекция IX: алгоритмы кластеризации

Дмитрий Барашев[email protected]

Computer Science Center

21 апреля 2015

1/52

Page 2: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Этот материал распространяется под лицензией

Creative Commons ”Attribution - Share Alike” 3.0http://creativecommons.org/licenses/by-sa/3.0/us/deed.ru

сверстано в онлайн LATEX редакторе

Pa

peeriapapeeria.com

2/52

Page 3: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Сегодня в программе

Задача кластеризации

Методы кластеризации

Иерархическая кластеризация

Алгоритм k-средних

Попытки улучшенийCURE – clustering using representativesЗонтичная кластеризация

3/52

Page 4: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Сегодня в программе

Задача кластеризации

Методы кластеризации

Иерархическая кластеризация

Алгоритм k-средних

Попытки улучшенийCURE – clustering using representativesЗонтичная кластеризация

4/52

Page 5: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Что хотим

▶ Дано▶ некоторый набор точек▶ функция расстояния между точками

▶ Что хотим▶ сгруппировать точки в некоторое количествокластеров по каким-то правилам

▶ Сколько кластеров?▶ Какие правила?▶ Какая функция расстояния?

5/52

Page 6: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Что хотим

▶ Дано▶ некоторый набор точек▶ функция расстояния между точками

▶ Что хотим▶ сгруппировать точки в некоторое количествокластеров по каким-то правилам

▶ Сколько кластеров?▶ Какие правила?▶ Какая функция расстояния?

5/52

Page 7: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Точки и расстояние

▶ Обычно точки в евклидовом многомерномпространстве

▶ А может и в неевклидовом▶ в евклидовом пространстве обычно можно найтинекую ”среднюю” точку, возможноотсутствующую в исходном множестве

▶ Функция расстояния – Евклидово, косинусное,Жаккардово, Левенштейна, Хэмминга

6/52

Page 8: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Четкие кластеры

7/52

Page 9: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Цели кластеризации

▶ понимание данных▶ Сжатие данных▶ Обнаружение новых объектов

8/52

Page 10: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Приложения

▶ Кластеризация результатов поиска

▶ Поиск сегментов рынка по характеристикампокупателей

▶ Поиск тесно связанных между собойпользователей контактика

▶ Поиск научных статей, похожих по темам навашу

▶ Определение оптимального местоположениябазовых станций сотовой сети

9/52

Page 11: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Приложения

▶ Кластеризация результатов поиска▶ Поиск сегментов рынка по характеристикампокупателей

▶ Поиск тесно связанных между собойпользователей контактика

▶ Поиск научных статей, похожих по темам навашу

▶ Определение оптимального местоположениябазовых станций сотовой сети

9/52

Page 12: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Приложения

▶ Кластеризация результатов поиска▶ Поиск сегментов рынка по характеристикампокупателей

▶ Поиск тесно связанных между собойпользователей контактика

▶ Поиск научных статей, похожих по темам навашу

▶ Определение оптимального местоположениябазовых станций сотовой сети

9/52

Page 13: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Приложения

▶ Кластеризация результатов поиска▶ Поиск сегментов рынка по характеристикампокупателей

▶ Поиск тесно связанных между собойпользователей контактика

▶ Поиск научных статей, похожих по темам навашу

▶ Определение оптимального местоположениябазовых станций сотовой сети

9/52

Page 14: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Приложения

▶ Кластеризация результатов поиска▶ Поиск сегментов рынка по характеристикампокупателей

▶ Поиск тесно связанных между собойпользователей контактика

▶ Поиск научных статей, похожих по темам навашу

▶ Определение оптимального местоположениябазовых станций сотовой сети

9/52

Page 15: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Евклидово расстояние

x = [x1, . . . ,xn],y = [y1, . . . ,yn]

d(x,y) =

√√√√ n∑i=1

(xi − yi)2

10/52

Page 16: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Косинусное расстояние

x = [x1, . . . ,xn],y = [y1, . . . ,yn]

d(x,y) =∑n

i=1(xi × yi)√∑ni=1 x2i

√∑ni=1 y2i

11/52

Page 17: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Жаккардово расстояние

▶ Коэффициент схожести J(A,B) = A∩BA∪B

▶ Расстояние d(A,B) = 1− J(A,B)

12/52

Page 18: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Манхеттенское расстояние

x = [x1, . . . ,xn],y = [y1, . . . ,yn]

d(x,y) =n∑i=1

|xi − yi|

▶ Сколько кварталов нужно пройти по Манхеттенучтоб попасть с одного перекрестка на другой

13/52

Page 19: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Манхеттенское расстояние

14/52

Page 20: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Расстояния Хэмминга и Левенштейна

▶ Для строк одинаковой длины расстояниеХэмминга – кол-во позиций где символыразличны

▶ Расстояние Левенштейна – количествоопераций вставки/удаления/замены символадля превращения одной строки в другую

Пример1234567890 vs 0123456789расстояние Хэмминга = 10, расстояние Левенштейна = 2

15/52

Page 21: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Расстояния Хэмминга и Левенштейна

▶ Для строк одинаковой длины расстояниеХэмминга – кол-во позиций где символыразличны

▶ Расстояние Левенштейна – количествоопераций вставки/удаления/замены символадля превращения одной строки в другую

Пример1234567890 vs 0123456789расстояние Хэмминга = 10, расстояние Левенштейна = 2

15/52

Page 22: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Сегодня в программе

Задача кластеризации

Методы кластеризации

Иерархическая кластеризация

Алгоритм k-средних

Попытки улучшенийCURE – clustering using representativesЗонтичная кластеризация

16/52

Page 23: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Две разные стратегии

▶ Иерархическая (восходящая и нисходящая)▶ Плоская

▶ Конкретных алгоритмов много, тыщи их

17/52

Page 24: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Две разные стратегии

▶ Иерархическая (восходящая и нисходящая)▶ Плоская▶ Конкретных алгоритмов много, тыщи их

17/52

Page 25: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Иерархическая стратегия

▶ Сначала каждая точка – один кластер▶ На итерации «ближайшие» кластерыобъединяются

▶ Итерации останавливаются при достижениикакого-то критерия

▶ В нисходящей стратегии все наоборот,начинается с одного большого кластера,включающего все точки

18/52

Page 26: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Плоская стратегия

▶ Определяются первоначальные кластеры▶ Точки рассматриваются по очереди иприписываются какому-то кластеру

▶ Если результат достаточно хорош, итерацииостанавливаются

▶ В процессе кластеры могут объединяться илираспадаться, а точки терять прописку

19/52

Page 27: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Возможные характеристики кластеров

▶ Диаметр: максимальное расстояние междулюбыми двумя точками в кластере

▶ Радиус: максимальное расстояние от некого«центра» до любой из точек кластера

▶ Плотность: количество точек в кластереподеленное на «объём»: радиус в какой-тостепени

▶ Межкластерное расстояние: расстояниемежду центрами, между ближайшими точками,среднее расстояние между всеми парами

20/52

Page 28: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Критерии прекращения кластеризации

▶ Построено нужное число кластеров▶ Характеристики кластеров (диаметр,плотность) достигли граничных значений

21/52

Page 29: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Центры кластеров

▶ В евклидовом пространстве есть центроид –среднем арифметическом точек кластера

▶ В неевклидовом пространстве (например впространстве строк) центроида нет. Центром(кластроидом) выбирается одна из точеккластера, минимизирующая

▶ максимальное расстояние до остальных точек▶ или сумму растояний▶ или сумму квадратов расстояний

22/52

Page 30: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Сегодня в программе

Задача кластеризации

Методы кластеризации

Иерархическая кластеризация

Алгоритм k-средних

Попытки улучшенийCURE – clustering using representativesЗонтичная кластеризация

23/52

Page 31: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Восходящая иерархическаякластеризация

▶ Евклидово пространство▶ Исходное положение: каждая точка - одинкластер

▶ Итерация: объединяются два самых близкихкластера

24/52

Page 32: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

0 1 2 3 4 50

1

2

3

4

5

25/52

Page 33: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

0 1 2 3 4 50

1

2

3

4

5

26/52

Page 34: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

0 1 2 3 4 50

1

2

3

4

5

27/52

Page 35: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

0 1 2 3 4 50

1

2

3

4

5

28/52

Page 36: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

0 1 2 3 4 50

1

2

3

4

5

29/52

Page 37: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Плюсы, минусы, подводные камни

▶ Может (иногда) находить кластерыпричудливой формы

▶ N2 первоначальных сравнений и еще порядка Nшагов ⇒ N3

▶ для большого количества точек подходит плохо

30/52

Page 38: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Сегодня в программе

Задача кластеризации

Методы кластеризации

Иерархическая кластеризация

Алгоритм k-средних

Попытки улучшенийCURE – clustering using representativesЗонтичная кластеризация

31/52

Page 39: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Схема

▶ Выбрать k точек, находящиеся вероятно вразных кластерах и объявить их центроидами

▶ Итерация: для каждой точки найти ближайшийцентроид и отнести её к соотв. кластеру

▶ Пересчитать центроиды и если требуется,сделать следующую итерацию

▶ например если ни одна точка не переехала вдругой кластер то уже наверное хватит

32/52

Page 40: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Map-Reduce реализация

▶ Подготовка: заготовить список центроидов[ci]ki=1. Он скорее всего поместится в RAM

▶ Map: для каждой точки p прочитать центроиды,найти ближайший cj, выплюнуть пару (cj,p)

▶ Reduce: для полученного кластера,представленного центроидом ci (ключ свертки)и списка точек найти новый центроид ипосчитать характеристики кластера. Результатзаписать.

33/52

Page 41: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Снова о прекращении итераций▶ Среднеквадратическая ошибка▶ Для одного кластера

Di =∑x∈ωi

|x− ci|2

▶ Для всего множества

D =

k∑i=1

Di

▶ Алгоритм k-means находит (локальный)минимум D

▶ можно останавливаться, если D стал нижеплинтуса порога

▶ или если изменение D стало маленьким

34/52

Page 42: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Снова о прекращении итераций▶ Среднеквадратическая ошибка▶ Для одного кластера

Di =∑x∈ωi

|x− ci|2

▶ Для всего множества

D =

k∑i=1

Di

▶ Алгоритм k-means находит (локальный)минимум D

▶ можно останавливаться, если D стал нижеплинтуса порога

▶ или если изменение D стало маленьким34/52

Page 43: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Выбор k

▶ Если число кластеров неизвестно априорно, томожно перебрать разные k

▶ Если поставить цель минимизироватьсреднеквадратичную ошибку то лучшее k

▶ k = N▶ Можно рассмотреть кривую уменьшения D взависимости от увеличения k и брать kсоответствующий точкам изгиба

35/52

Page 44: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Выбор k

▶ Если число кластеров неизвестно априорно, томожно перебрать разные k

▶ Если поставить цель минимизироватьсреднеквадратичную ошибку то лучшее k

▶ k = N

▶ Можно рассмотреть кривую уменьшения D взависимости от увеличения k и брать kсоответствующий точкам изгиба

35/52

Page 45: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Выбор k

▶ Если число кластеров неизвестно априорно, томожно перебрать разные k

▶ Если поставить цель минимизироватьсреднеквадратичную ошибку то лучшее k

▶ k = N▶ Можно рассмотреть кривую уменьшения D взависимости от увеличения k и брать kсоответствующий точкам изгиба

35/52

Page 46: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Выбор начальных центроидов

▶ Случайный, как можно дальше друг от друга▶ outlier может все испортить

▶ Случайный с выкидыванием отщепенцев▶ Предварительная иерархическая кластеризацияи центроиды получившихся кластеров вкачестве первоначальных для k-means

▶ можно проводить над небольшой случайнойвыборкой из исходных точек

▶ Несколько разных наборов начальныхцентроидов и выбор показавшего лучшийрезультат

36/52

Page 47: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Плюсы, минусы, подводные камни

▶ Невысокая сложность▶ Простое распараллеливание▶ Хорошие результаты для «хороших» данных▶ Но не все данные одинаково хороши

37/52

Page 48: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Несферические кластеры

Исходные данные38/52

Page 49: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Несферические кластеры

Результат работы k-means39/52

Page 50: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Несферические кластеры

Результат работы иерархического алгоритма40/52

Page 51: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Неравномерные кластеры

Исходные данные41/52

Page 52: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Неравномерные кластеры

Результат работы k-means42/52

Page 53: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Сегодня в программе

Задача кластеризации

Методы кластеризации

Иерархическая кластеризация

Алгоритм k-средних

Попытки улучшенийCURE – clustering using representativesЗонтичная кластеризация

43/52

Page 54: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Представители кластера

▶ В k-means кластер представлен центроидом▶ В иерархической кластеризации кластерпредставлен всеми точками

▶ Давайте выберем несколько представителейкаждого кластера

44/52

Page 55: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Выбросы1

▶ Выбросы могут сильно испортитькластеризацию

▶ Можно пытаться их предварительноотфильтровывать

▶ CURE старается их приручить

1outliers45/52

Page 56: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Алгоритм CURE▶ Взять небольшой семпл исходных точек▶ Чуток кластеризовать их иерархическойкластеризацией

▶ Выбрать в каждом кластере множествопредставителей

▶ представители должны располагаться какможно дальше друг от друга

▶ Сдвинуть всех представителей ближе к ихцентроиду

▶ Последовательно объединять кластеры сдостаточно близко расположеннымипредставителями

▶ Оставшиеся точки распределить в кластер,принадлежащий ближайшему представителю.

46/52

Page 57: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Сокращение вычислений

▶ Измерять расстояние от каждой точки докаждого центроида может быть дорого

▶ С некоторыми центроидами даже связыватьсяне хочется

▶ Давайте заранее определим «зонтики»2 –(перекрывающиеся) области, где имеет смыслвычислять расстояние

▶ Расстояние между точками из разных зонтиковбудет равно ∞

2canopy47/52

Page 58: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Построение зонтиков

▶ У зонтика есть центр, внешний радиус T1 ивнутренний радиус T2

▶ Шаги построения:1. случайно выбрать центр c2. для каждой точки p исходного множества если

d(p, c) <= T1 то записать точку в зонтик, а еслиd(p, c) <= T2 то дополнительно не рассматриватьеё как кандидата в дугие зонтики

3. делать так пока каждая точка не окажется хотябы в одном зонтике

48/52

Page 59: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Применение к k-means

▶ В k-means расстояние между точками из разныхзонтиков равно ∞

▶ Все остальное точно так же

49/52

Page 60: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Инструменты

▶ Apache Mahout: алгоритмы кластеризацииповерх Hadoop

▶ Weka: набор data mining библиотек иалгоритмов для одной машины

50/52

Page 61: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Занавес

▶ Кластеризация решает практические задачи▶ Много разных алгоритмов▶ К каждому алгоритму можно подобрать«плохие» данные

▶ Часто используется простой и масштабируемыйалгоритм k-средних

51/52

Page 62: Технологии хранения и обработки больших объёмов данных, весна 2015: Алгоритмы кластеризации

Литература I

Andrew McCallum, Kamal Nigam, and Lyle H. Ungar.Efficient clustering of high-dimensional data setswith application to reference matching.In Proceedings of the Sixth ACM SIGKDDInternational Conference on Knowledge Discoveryand Data Mining, KDD ’00, pages 169–178, NewYork, NY, USA, 2000. ACM.Anand Rajaraman and Jeffrey David Ullman.Mining of massive datasets.Cambridge University Press, 2011.

52/52