2013 04 25_bigData_lecture_10
-
Upload
roman-brovko -
Category
Education
-
view
165 -
download
0
Transcript of 2013 04 25_bigData_lecture_10
![Page 1: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/1.jpg)
Big Data’13Лекция X: алгоритмы кластеризации
Дмитрий Барашев[email protected]
Computer Science Center
25 апреля 2013
1/42
![Page 2: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/2.jpg)
Этот материал распространяется под лицензией
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](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/3.jpg)
Сегодня в программе
Задача кластеризации
Методы кластеризации
Иерархическая кластеризация
Алгоритм k-средних
Зонтичная кластеризация
3/42
![Page 4: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/4.jpg)
Сегодня в программе
Задача кластеризации
Методы кластеризации
Иерархическая кластеризация
Алгоритм k-средних
Зонтичная кластеризация
4/42
![Page 5: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/5.jpg)
Что хотим
I ДаноI некоторый набор точекI функция расстояния между точками
I Что хотимI сгруппировать точки в некоторое количествокластеров по каким-то правилам
I Сколько кластеров?I Какие правила?I Какая функция расстояния?
5/42
![Page 6: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/6.jpg)
Что хотим
I ДаноI некоторый набор точекI функция расстояния между точками
I Что хотимI сгруппировать точки в некоторое количествокластеров по каким-то правилам
I Сколько кластеров?I Какие правила?I Какая функция расстояния?
5/42
![Page 7: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/7.jpg)
Точки и расстояние
I Обычно точки в евклидовом многомерномпространстве
I А может и в неевклидовомI в евклидовом пространстве обычно можно найтинекую ”среднюю” точку, возможноотсутствующую в исходном множестве
I Функция расстояния – Евклидово, косинусное,Жаккардово, Левенштейна
6/42
![Page 8: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/8.jpg)
Четкие кластеры
7/42
![Page 9: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/9.jpg)
Приложения
I Кластеризация результатов поиска
I Последовательная автоматическаярекластеризация документов
I ”Россия”, ”политика”, ”экономика”, ”спорт”→ ”Россия”, ”футбол”, ”хоккей”, ”лигачемпионов”, ”Гагарин”→ ”Барселона”, ”Германия”, ”полуфиналы”,”какая боль”
I Поиск тесно связанных между собойпользователей контактика
I Поиск научных статей, похожих по темам навашу
I Определение оптимального местоположениябазовых станций сотовой сети
8/42
![Page 10: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/10.jpg)
Приложения
I Кластеризация результатов поискаI Последовательная автоматическаярекластеризация документов
I ”Россия”, ”политика”, ”экономика”, ”спорт”→ ”Россия”, ”футбол”, ”хоккей”, ”лигачемпионов”, ”Гагарин”→ ”Барселона”, ”Германия”, ”полуфиналы”,”какая боль”
I Поиск тесно связанных между собойпользователей контактика
I Поиск научных статей, похожих по темам навашу
I Определение оптимального местоположениябазовых станций сотовой сети
8/42
![Page 11: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/11.jpg)
Приложения
I Кластеризация результатов поискаI Последовательная автоматическаярекластеризация документов
I ”Россия”, ”политика”, ”экономика”, ”спорт”→ ”Россия”, ”футбол”, ”хоккей”, ”лигачемпионов”, ”Гагарин”→ ”Барселона”, ”Германия”, ”полуфиналы”,”какая боль”
I Поиск тесно связанных между собойпользователей контактика
I Поиск научных статей, похожих по темам навашу
I Определение оптимального местоположениябазовых станций сотовой сети
8/42
![Page 12: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/12.jpg)
Приложения
I Кластеризация результатов поискаI Последовательная автоматическаярекластеризация документов
I ”Россия”, ”политика”, ”экономика”, ”спорт”→ ”Россия”, ”футбол”, ”хоккей”, ”лигачемпионов”, ”Гагарин”→ ”Барселона”, ”Германия”, ”полуфиналы”,”какая боль”
I Поиск тесно связанных между собойпользователей контактика
I Поиск научных статей, похожих по темам навашу
I Определение оптимального местоположениябазовых станций сотовой сети
8/42
![Page 13: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/13.jpg)
Приложения
I Кластеризация результатов поискаI Последовательная автоматическаярекластеризация документов
I ”Россия”, ”политика”, ”экономика”, ”спорт”→ ”Россия”, ”футбол”, ”хоккей”, ”лигачемпионов”, ”Гагарин”→ ”Барселона”, ”Германия”, ”полуфиналы”,”какая боль”
I Поиск тесно связанных между собойпользователей контактика
I Поиск научных статей, похожих по темам навашу
I Определение оптимального местоположениябазовых станций сотовой сети
8/42
![Page 14: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/14.jpg)
Евклидово расстояние
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](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/15.jpg)
Косинусное расстояние
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](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/16.jpg)
Жаккардово расстояние
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](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/17.jpg)
Манхеттенское расстояние
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](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/18.jpg)
Манхеттенское расстояние
13/42
![Page 19: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/19.jpg)
Сегодня в программе
Задача кластеризации
Методы кластеризации
Иерархическая кластеризация
Алгоритм k-средних
Зонтичная кластеризация
14/42
![Page 20: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/20.jpg)
Две разные стратегии
I Иерархическая (восходящая и нисходящая)I Плоская
15/42
![Page 21: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/21.jpg)
Иерархическая стратегия
I Сначала каждая точка – один кластерI На итерации «ближайшие» кластерыобъединяются
I Итерации останавливаются при достижениикакого-то критерия
I В нисходящей стратегии все наоборот,начинается с одного большого кластера,включающего все точки
16/42
![Page 22: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/22.jpg)
Плоская стратегия
I Определяются первоначальные кластерыI Точки рассматриваются по очереди иприписываются какому-то кластеру
I Если результат достаточно хорош, итерацииостанавливаются
17/42
![Page 23: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/23.jpg)
Возможные характеристики кластеров
I Диаметр: максимальное расстояние междулюбыми двумя точками в кластере
I Радиус: максимальное расстояние от некого«центра» до любой из точек кластера
I Плотность: количество точек в кластереподеленное на «объём»: радиус в какой-тостепени
I Межкластерное расстояние: расстояниемежду центрами, между ближайшими точками,среднее расстояние между всеми парами
18/42
![Page 24: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/24.jpg)
Критерии прекращения кластеризации
I Построено нужное число кластеровI Характеристики кластеров (диаметр,плотность) достигли граничных значений
19/42
![Page 25: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/25.jpg)
Центры кластеров
I В евклидовом пространстве есть центроид –среднем арифметическом точек кластера
I В неевклидовом пространстве (например впространстве строк) центроида нет. Центром(кластроидом) выбирается одна из точеккластера, минимизирующая
I максимальное расстояние до остальных точекI или сумму растоянийI или сумму квадратов расстояний
20/42
![Page 26: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/26.jpg)
Сегодня в программе
Задача кластеризации
Методы кластеризации
Иерархическая кластеризация
Алгоритм k-средних
Зонтичная кластеризация
21/42
![Page 27: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/27.jpg)
Восходящая иерархическая кластеризация
I Евклидово пространствоI Исходное положение: каждая точка - одинкластер
I Итерация: объединяются два самых близкихкластера
22/42
![Page 28: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/28.jpg)
..0.
1.
2.
3.
4.
5.0 .
1
.
2
.
3
.
4
.
5
.......
23/42
![Page 29: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/29.jpg)
..0.
1.
2.
3.
4.
5.0 .
1
.
2
.
3
.
4
.
5
.......
24/42
![Page 30: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/30.jpg)
..0.
1.
2.
3.
4.
5.0 .
1
.
2
.
3
.
4
.
5
.......
25/42
![Page 31: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/31.jpg)
..0.
1.
2.
3.
4.
5.0 .
1
.
2
.
3
.
4
.
5
.......
26/42
![Page 32: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/32.jpg)
..0.
1.
2.
3.
4.
5.0 .
1
.
2
.
3
.
4
.
5
.......
27/42
![Page 33: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/33.jpg)
Сегодня в программе
Задача кластеризации
Методы кластеризации
Иерархическая кластеризация
Алгоритм k-средних
Зонтичная кластеризация
28/42
![Page 34: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/34.jpg)
Схема
I Выбрать k точек, находящиеся вероятно вразных кластерах и объявить их центроидами
I Итерация: для каждой точки найти ближайшийцентроид и отнести её к соотв. кластеру
I Пересчитать центроиды и если требуется,сделать следующую итерацию
I например если ни одна точка не переехала вдругой кластер то уже наверное хватит
29/42
![Page 35: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/35.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/36.jpg)
Снова о прекращении итераций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](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/37.jpg)
Снова о прекращении итераций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](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/38.jpg)
Выбор k
I Если число кластеров неизвестно априорно, томожно перебрать разные k
I Если поставить цель минимизироватьсреднеквадратичную ошибку то лучшее k
I k = NI Можно рассмотреть кривую уменьшения D взависимости от увеличения k и брать kсоответствующий точкам изгиба
32/42
![Page 39: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/39.jpg)
Выбор k
I Если число кластеров неизвестно априорно, томожно перебрать разные k
I Если поставить цель минимизироватьсреднеквадратичную ошибку то лучшее k
I k = N
I Можно рассмотреть кривую уменьшения D взависимости от увеличения k и брать kсоответствующий точкам изгиба
32/42
![Page 40: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/40.jpg)
Выбор k
I Если число кластеров неизвестно априорно, томожно перебрать разные k
I Если поставить цель минимизироватьсреднеквадратичную ошибку то лучшее k
I k = NI Можно рассмотреть кривую уменьшения D взависимости от увеличения k и брать kсоответствующий точкам изгиба
32/42
![Page 41: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/41.jpg)
Выбор начальных центроидов
I Случайный, как можно дальше друг от другаI outlier может все испортить
I Случайный с выкидыванием отщепенцевI Предварительная иерархическая кластеризацияи центроиды получившихся кластеров вкачестве первоначальных для k-means
I можно проводить над небольшой случайнойвыборкой из исходных точек
I Несколько разных наборов начальныхцентроидов и выбор показавшего лучшийрезультат
33/42
![Page 42: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/42.jpg)
Сегодня в программе
Задача кластеризации
Методы кластеризации
Иерархическая кластеризация
Алгоритм k-средних
Зонтичная кластеризация
34/42
![Page 43: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/43.jpg)
Сокращение вычислений
I Измерять расстояние от каждой точки докаждого центроида может быть дорого
I С некоторыми центроидами даже связыватьсяне хочется
I Давайте заранее определим «зонтики» –(перекрывающиеся) области, где имеет смыслвычислять расстояние
I Расстояние между точками из разных зонтиковбудет равно ∞
35/42
![Page 44: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/44.jpg)
Построение зонтиков
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](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/45.jpg)
Применение к k-means
I В k-means расстояние между точками из разныхзонтиков равно ∞
I Все остальное точно так же
37/42
![Page 46: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/46.jpg)
Построение зонтиков с Map-Reduce
I Шаг первый:I входные данные поделить на фрагментыI map (много задач): найти зонтики в одномфрагменте и выплюнуть их центры
I reduce (1 задача): сделать то же самое сполученными центрами. Получить списокцентров.
I Шаг второй:I map: взять фрагмент, список центров иопределить в какие зонтики попала каждаяточка
I reduce: записать либо пары (точка, центр) либо(центр, список точек) либо и то и другое
38/42
![Page 47: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/47.jpg)
Инструменты
I Apache Mahout: алгоритмы кластеризацииповерх Hadoop
I Weka: набор data mining библиотек иалгоритмов для одной машины
39/42
![Page 48: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/48.jpg)
Занавес
I Кластеризация решает практические задачиI Много разных алгоритмовI Простой, широко используемый имасштабируемый алгоритм k-средних
I И его можно существенно ускорить
40/42
![Page 50: 2013 04 25_bigData_lecture_10](https://reader033.fdocuments.net/reader033/viewer/2022060119/558e93f01a28ab46108b4659/html5/thumbnails/50.jpg)
Литература I
42/42