2013 04 25_bigData_lecture_10

50
Big Data’13 Лекция X: алгоритмы кластеризации Дмитрий Барашев [email protected] Computer Science Center 25 апреля 2013 1/42

Transcript of 2013 04 25_bigData_lecture_10

Page 1: 2013 04 25_bigData_lecture_10

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

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

Computer Science Center

25 апреля 2013

1/42

Page 2: 2013 04 25_bigData_lecture_10

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

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

2/42

Page 3: 2013 04 25_bigData_lecture_10

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

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

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

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

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

Зонтичная кластеризация

3/42

Page 4: 2013 04 25_bigData_lecture_10

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

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

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

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

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

Зонтичная кластеризация

4/42

Page 5: 2013 04 25_bigData_lecture_10

Что хотим

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

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

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

5/42

Page 6: 2013 04 25_bigData_lecture_10

Что хотим

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

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

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

5/42

Page 7: 2013 04 25_bigData_lecture_10

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

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

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

I Функция расстояния – Евклидово, косинусное,Жаккардово, Левенштейна

6/42

Page 8: 2013 04 25_bigData_lecture_10

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

7/42

Page 9: 2013 04 25_bigData_lecture_10

Приложения

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

I Последовательная автоматическаярекластеризация документов

I ”Россия”, ”политика”, ”экономика”, ”спорт”→ ”Россия”, ”футбол”, ”хоккей”, ”лигачемпионов”, ”Гагарин”→ ”Барселона”, ”Германия”, ”полуфиналы”,”какая боль”

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

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

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

8/42

Page 10: 2013 04 25_bigData_lecture_10

Приложения

I Кластеризация результатов поискаI Последовательная автоматическаярекластеризация документов

I ”Россия”, ”политика”, ”экономика”, ”спорт”→ ”Россия”, ”футбол”, ”хоккей”, ”лигачемпионов”, ”Гагарин”→ ”Барселона”, ”Германия”, ”полуфиналы”,”какая боль”

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

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

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

8/42

Page 11: 2013 04 25_bigData_lecture_10

Приложения

I Кластеризация результатов поискаI Последовательная автоматическаярекластеризация документов

I ”Россия”, ”политика”, ”экономика”, ”спорт”→ ”Россия”, ”футбол”, ”хоккей”, ”лигачемпионов”, ”Гагарин”→ ”Барселона”, ”Германия”, ”полуфиналы”,”какая боль”

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

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

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

8/42

Page 12: 2013 04 25_bigData_lecture_10

Приложения

I Кластеризация результатов поискаI Последовательная автоматическаярекластеризация документов

I ”Россия”, ”политика”, ”экономика”, ”спорт”→ ”Россия”, ”футбол”, ”хоккей”, ”лигачемпионов”, ”Гагарин”→ ”Барселона”, ”Германия”, ”полуфиналы”,”какая боль”

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

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

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

8/42

Page 13: 2013 04 25_bigData_lecture_10

Приложения

I Кластеризация результатов поискаI Последовательная автоматическаярекластеризация документов

I ”Россия”, ”политика”, ”экономика”, ”спорт”→ ”Россия”, ”футбол”, ”хоккей”, ”лигачемпионов”, ”Гагарин”→ ”Барселона”, ”Германия”, ”полуфиналы”,”какая боль”

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

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

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

8/42

Page 14: 2013 04 25_bigData_lecture_10

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

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

d(x,y) =

√√√√ n∑i=1

(xi − yi)2

9/42

Page 15: 2013 04 25_bigData_lecture_10

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

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

d(x,y) =∑n

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

√∑ni=1 y2i

10/42

Page 16: 2013 04 25_bigData_lecture_10

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

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

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

11/42

Page 17: 2013 04 25_bigData_lecture_10

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

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

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

|xi − yi|

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

12/42

Page 18: 2013 04 25_bigData_lecture_10

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

13/42

Page 19: 2013 04 25_bigData_lecture_10

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

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

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

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

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

Зонтичная кластеризация

14/42

Page 20: 2013 04 25_bigData_lecture_10

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

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

15/42

Page 21: 2013 04 25_bigData_lecture_10

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

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

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

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

16/42

Page 22: 2013 04 25_bigData_lecture_10

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

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

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

17/42

Page 23: 2013 04 25_bigData_lecture_10

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

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

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

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

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

18/42

Page 24: 2013 04 25_bigData_lecture_10

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

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

19/42

Page 25: 2013 04 25_bigData_lecture_10

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

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

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

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

20/42

Page 26: 2013 04 25_bigData_lecture_10

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

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

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

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

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

Зонтичная кластеризация

21/42

Page 27: 2013 04 25_bigData_lecture_10

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

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

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

22/42

Page 28: 2013 04 25_bigData_lecture_10

..0.

1.

2.

3.

4.

5.0 .

1

.

2

.

3

.

4

.

5

.......

23/42

Page 29: 2013 04 25_bigData_lecture_10

..0.

1.

2.

3.

4.

5.0 .

1

.

2

.

3

.

4

.

5

.......

24/42

Page 30: 2013 04 25_bigData_lecture_10

..0.

1.

2.

3.

4.

5.0 .

1

.

2

.

3

.

4

.

5

.......

25/42

Page 31: 2013 04 25_bigData_lecture_10

..0.

1.

2.

3.

4.

5.0 .

1

.

2

.

3

.

4

.

5

.......

26/42

Page 32: 2013 04 25_bigData_lecture_10

..0.

1.

2.

3.

4.

5.0 .

1

.

2

.

3

.

4

.

5

.......

27/42

Page 33: 2013 04 25_bigData_lecture_10

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

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

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

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

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

Зонтичная кластеризация

28/42

Page 34: 2013 04 25_bigData_lecture_10

Схема

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

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

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

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

29/42

Page 35: 2013 04 25_bigData_lecture_10

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

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

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

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

30/42

Page 36: 2013 04 25_bigData_lecture_10

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

Di =∑x∈ωi

|x− ci|2

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

D =

k∑i=1

Di

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

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

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

31/42

Page 37: 2013 04 25_bigData_lecture_10

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

Di =∑x∈ωi

|x− ci|2

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

D =

k∑i=1

Di

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

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

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

31/42

Page 38: 2013 04 25_bigData_lecture_10

Выбор k

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

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

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

32/42

Page 39: 2013 04 25_bigData_lecture_10

Выбор k

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

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

I k = N

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

32/42

Page 40: 2013 04 25_bigData_lecture_10

Выбор k

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

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

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

32/42

Page 41: 2013 04 25_bigData_lecture_10

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

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

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

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

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

33/42

Page 42: 2013 04 25_bigData_lecture_10

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

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

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

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

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

Зонтичная кластеризация

34/42

Page 43: 2013 04 25_bigData_lecture_10

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

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

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

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

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

35/42

Page 44: 2013 04 25_bigData_lecture_10

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

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

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

d(p, c) <= T2 то забыть ее; если T2 < d(p, c) <= T1

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

бы в одном зонтике

36/42

Page 45: 2013 04 25_bigData_lecture_10

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

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

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

37/42

Page 46: 2013 04 25_bigData_lecture_10

Построение зонтиков с Map-Reduce

I Шаг первый:I входные данные поделить на фрагментыI map (много задач): найти зонтики в одномфрагменте и выплюнуть их центры

I reduce (1 задача): сделать то же самое сполученными центрами. Получить списокцентров.

I Шаг второй:I map: взять фрагмент, список центров иопределить в какие зонтики попала каждаяточка

I reduce: записать либо пары (точка, центр) либо(центр, список точек) либо и то и другое

38/42

Page 47: 2013 04 25_bigData_lecture_10

Инструменты

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

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

39/42

Page 48: 2013 04 25_bigData_lecture_10

Занавес

I Кластеризация решает практические задачиI Много разных алгоритмовI Простой, широко используемый имасштабируемый алгоритм k-средних

I И его можно существенно ускорить

40/42

Page 49: 2013 04 25_bigData_lecture_10

Эта презентация сверстана в

Pa

peeria1LTEX в вашем браузере

papeeria.com

41/42

Page 50: 2013 04 25_bigData_lecture_10

Литература I

42/42