SlideShare ist ein Scribd-Unternehmen logo
1 von 70
Downloaden Sie, um offline zu lesen
Введение в машинное обучение.
Кластеризация.
Алгоритм кластеризации k-means.
Bitworks Software
Жданов Кирилл
Машинное обучение
Компьютер
Что это?
Использование программ
Программа
Входные
данные
Выходные
данные
Создание программ при помощи машинного обучения
Компьютер
Входные
данные
Выходные
данные
Программа
Машинное обучение
Пример: обнаружение спама
Компьютер
Входные данные:
множество писем
Выходные данные:
метки для писем из
входных данных
(спам/не спам)
Программа
Машинное обучение
Пример: обнаружение спама
Компьютер
Программа
Спам
Не спам
Письма
Машинное обучение
Примеры задач
● Поиск похожих элементов
– Сайты-двойники
– Плагиат
● Обработка естественного языка
– Выделение документов со схожими темами
– Выделение ключевых слов
● Самонастраивающиеся приложения
– Рекомендательные системы (Ozon, Netflix)
Машинное обучение
Примеры задач
Поиск плагиата
Выбор
групп слов
Хэширование
Хэширование
Сравнение
Слова,
фразы,
абзацы
Слова,
фразы,
абзацы
Веса
слов,
фраз,
абзацев
Веса
слов,
фраз,
абзацев
Выбор
групп слов
Машинное обучение
Примеры задач
Выделение документов со схожими темами
SVD/CUR
TF-IDF
Политика: 136 статей
Спорт: 409 статей
Общество: 302 статьи
Культура: 254 статьи
Автомобили: 150 статей
Наука: 95 статей
Определение
тем
Список ключевых слов
для каждой статьи
и их значимость
Выделенные скрытые
компоненты
Машинное обучение
Примеры задач
Рекомендательные системы:
● На основании исторических данных о
предпочтениях пользователей, находим
пользователей со схожими вкусами
● Рекомендуем пользователю одной группы
товары, понравившиеся другим
пользователям этой же группы
Задачи машинного обучения
● Обучение с учителем
– Регрессия
● Предсказание значения непрерывной величины
(например, линейная регрессия)
Задачи машинного обучения
● Обучение с учителем: регрессия
Предсказание
веса в
зависимости от
роста: по
обучающей
выборке
построена
линейная
регрессия
Задачи машинного обучения
● Обучение с учителем: регрессия
Для человека с
ростом 187
сантиметров
теперь можем
предсказать
вес: 79
килограммов.
Задачи машинного обучения
● Обучение с учителем
– Регрессия
● Предсказание значения непрерывной величины
(например, линейная регрессия)
– Классификация
● Предсказание значений дискретной величины
(например, линейная классификация)
Задачи машинного обучения
● Обучение с учителем: классификация
Дано: точки двух
классов в
двухмерном
пространстве.
Задачи машинного обучения
● Обучение с учителем: классификация
Какой класс у
точки с такими
координатами?
Задачи машинного обучения
● Обучение с учителем: классификация
Строим
линейный
классификатор.
Задачи машинного обучения
● Обучение с учителем: классификация
На основании
положения точки
относительно
классификатора,
определяем её
класс.
Задачи машинного обучения
● Обучение с учителем
– Регрессия
● Предсказание значения непрерывной величины
(например, линейная регрессия)
– Классификация
● Предсказание значений дискретной величины
(например, линейная классификация)
● Обучение без учителя
● Найти скрытые закономерности в данных, сжать
данные (например, уменьшение размерности
пространства, кластеризация)
Задачи машинного обучения
1000 измерений
A B C D E
3.7 0.3 0.0 0.0 1.7
0.0 0.1 3.5 0.0 7.2
5.8 3.8 0.2 3.8 0.0
2.1 4.5 8.7 1.2 0.2
0.3 2.6 6.2 3.5 8.2
0.8 3.3 7.1 0.0 5.3
4.5 1.0 6.1 9.9 7.3
5 измерений
Уменьшение размерности пространства
● Для чего:
– Уменьшение трудоёмкости вычислений
– Визуализация
0 1 2 3 4 5 6 7 8 9 10 11 12 ...
0.7 0.9 0 0 0 0 0 0 1 1.7 2.8 0 0 ...
4.3 8.1 0 1.8 0.4 0 2.1 0 3.7 0 0.1 0 0.6 ...
0 1.1 1.8 0 6.5 7.1 0 0.6 0 0 1.4 1.8 0.3 ...
1.9 7.7 0 7.3 1.1 1.0 0.4 0 4.4 3.5 0 1.2 0 ...
8.0 0.4 7.1 0 0 1.9 3.4 0.3 0 2.7 0 1.2 6.2 ...
0 9.2 1.2 0.3 0.1 0 3.7 0 0 1.8 9.1 0 1.1 ...
... ... ... ... ... ... ... ... ... ... ... ... ... ...
Задачи машинного обучения
Уменьшение размерности пространства
Переводим точки из двухмерного пространства в одномерное.
Для этого нужно всего лишь подобрать прямую, при проекции
на которую точки будут максимально далеки друг от друга.
Задачи машинного обучения
Уменьшение размерности пространства
Задачи машинного обучения
Кластеризация
Дано: группа элементов, для каждого элемента определены
значения нескольких характеристик (например, рост, вес,
температура и т.д.). Необходимо выделить группы похожих
элементов.
Кластеризация
● Иерархическая
– Каждая точка – кластер
– Объединение ближайших кластеров с
сохранением древовидной структуры
● Назначение точек
– Определить несколько кластеров
– Присвоить каждую точку ближайшему кластеру
● На основании связности
– Близкие друг к другу точки объединяются в
кластеры
K-means
Пример
В наличии набор
точек в
двухмерном
пространстве (в
общем случае – в
многомерном).
K-means
Пример
Хотим выделить
два кластера –
случайно
выбираем две
точки из
множества.
K-means
Пример
Создаём на их
месте две новые
точки – центры
кластеров.
Распределяем
точки между
кластерами на
основании
расстояния.
K-means
Пример
Перемещаем
центры кластеров
так, чтобы
расстояние от
центра до всех
точек этого
кластера было
минимальным.
K-means
Пример
Вновь
распределяем
точки между
кластерами.
K-means
Пример
Продолжаем
обновлять позиции
центров кластеров
и распределять
точки между
кластерами.
K-means
Пример
До тех пор, пока
позиции центров
кластеров
изменяются.
K-means
Пример
K-means
0) Определить метрику расстояния
1) Выбрать количество кластеров
2) Нормализовать данные
3) Выбрать центроиды (центры кластеров)
4) Присвоить точки кластерам
5) Обновить центроиды
6) Повторять 4 и 5
Алгоритм
K-means
● Требования:
– E(x, y) = 0 если и только если x = y
– E(x, y) = E(y, x)
– E(x, y) + E(y, z) > E(x, z)
● Евклидово расстояние:
0) Определить метрику расстояния E
E12=√(x1−x2)
2
+( y1− y2)
2
K-means
Хорошо, если изначально известно. Но чаще
всего этим знанием исследователи не
обладают, поэтому был предложен метод,
позволяющий оценить нужное количество
кластеров – метод локтя (Elbow method).
1) Выбрать количество кластеров
J=
1
n
∑
i=1
n
E( pointi ,centroid( pointi))
K-means
● Функция стоимости:
● Далее производится кластеризация
множества точек с различными значениями
количества кластеров и строится график
зависимости значения функции стоимости от
количества кластеров
1) Выбрать количество кластеров: метод локтя
Центроид кластера, которому
принадлежит эта точка
K-means
Метод локтя (Elbow method)
J
Количество
кластеров
Нужно выбрать такую
точку на графике,
которая определит
оптимальное
соотношение
количества кластеров
и значения функции
стоимости: на сгибе
“локтя” графика.
K-means
Многократная кластеризация всего
исходного набора точек – чаще всего очень
трудоёмкая задача из-за того, что точек и
измерений много. Поэтому выбирается
подмножество точек и используется в
качестве входных данных для методя локтя.
1) Выбрать количество кластеров
K-means
2) Нормализовать данные
ID Заработная плата Возраст
1 80000 37
2 50000 23
3 120000 52
4 75000 28
E12=√(x1−x2)
2
+( y1− y2)
2
E14=√(80000−75000)
2
+(37−28)
2
≈5000
K-means
2) Нормализовать данные
В приведённом примере возраст вносит
незначительный вклад в определение
расстояния между двумя точками из-за того,
что заработная плата измеряется в тысячах,
а возраст в десятках. После нормализации
масштабы шкал измерения параметров
будут совпадать и мы избавимся от этой
проблемы.
K-means
2) Нормализовать данные
ID З/п Возраст
1 80000 37
2 50000 23
3 120000 52
4 75000 28
ID З/п Возраст
1 0.4285 0.4827
2 0 0
3 1 1
4 0.3571 0.1724
K-means
2) Нормализовать данные
ID З/п Возраст
1 0.4285 0.4827
2 0 0
3 1 1
4 0.3571 0.1724
E14=√(80000−75000)
2
+(37−28)
2
≈5000
E14=√(0.4285−0.4827)
2
+(0.3571−0.1724)
2
E14≈0.19153
K-means
● Случайные точки в границах [min; max]
3) Выбрать центроиды
При данном подходе могут
быть выбраны центроиды в
“пустынных” областях
пространства и им
придётся проделать
лишний путь в процессе
минимизации значения
функции стоимости.
K-means
● Случайные точки в границах [min; max]
● Случайные точки из множества точек
3) Выбрать центроиды
Подход, который был использован нами при
рассмотрении первого примера. Выбираем с равной
вероятностью несколько точек из набора исходных,
дублируем их и используем дубликаты в качестве
центроидов.
K-means
3) Выбрать центроиды
Однако, если
большинство точек
сгруппированы в одном
месте, а небольшие
группы точек
расположены на
периферии, то с
большей вероятностью
все центроиды будут
выбраны из большего по
размеру множества
точек – и выделить
кластеры на периферии
не удастся.
K-means
● Случайные точки в границах [min; max]
● Случайные точки из множества точек
● Взвешенный случаный выбор точек из
множества (k-means++):
– Выбрать одну случайно
– Вычислить вероятности для всех остальных
точек на основании расстояния до выбранных
– Выбрать следующую, учитывая вероятности
– Пересчитать вероятности
3) Выбрать центроиды
K-means
4) Присвоить точки кластерам
На основании метрики расстояния
E12=√(x1−x2)
2
+( y1− y2)
2
K-means
5) Обновить центроиды
● Среднее значение всех точек кластера по каждому
измерению:
● Выбрать в качестве центра кластера точку из этого
кластера, которая ближе всех ко всем остальным
точкам кластера (кластроид). Полезно, когда
сложно посчитать среднее значение по какому-
либо измерению и/или пространство многомерное.
0.17+0.12+0.22+0.96
4
=0.37
K-means
6) Повторять 4 и 5
● Критерий остановки:
– Количество итераций (задаётся заранее)
– Пока значение функции стоимости изменяется
K-means
Пример
K-means
Пример
K-means
Пример
Недостатки
● Априорное знание о количестве кластеров
● Сферическая форма выделяемых
кластеров (справедливо для Евклидовой
метрики расстояния; для решения этой
проблемы используются другие метрики
расстояния, например, расстояние по
Махаланобису)
K-means
Недостатки: локальный минимум
Не гарантируется, что в
результате использования
алгоритма кластеризации
k-means будет получено
оптимальное разбиение
множества точек на
кластеры (не
гарантируется
достижение глобального
минимума). Многое
зависит от начального
распределения
центроидов.
K-means
Недостатки: локальный минимум
В рассматриваемом
примере жёлтый
центроид не сдвинется с
места, так как это не
приведёт к улучшению
значения функции
стоимости – из-за того,
что рядом расположен
зелёный кластер и
расстояния от ближайших
точек до зелёного
центроида меньше, чем
до жёлтого.
K-means
Недостатки: локальный минимум
При этом с целью
улучшения значения
функции стоимости синий
кластер формируется из
двух групп точек, которые
могли бы быть выделены
в отдельные кластеры.
K-means
Недостатки: локальный минимум
В конце концов будет
получена следующая
кластеризация точек.
Недостатки k-means
● Априорное знание о количестве кластеров
● Сферическая форма выделяемых
кластеров
● Локальный минимум (для решения этой
проблемы предлагается провести
кластеризацию несколько раз и выбрать
наилучший вариант)
Применение кластеризации
● Сегментирование рынка (целевая аудитория
для рекламы)
● Анализ социальных сетей
● Определение групп похожих продуктов
(рекомендательные системы)
● Уменьшение количества анализируемых
элементов (представить каждый кластер как
одну точку; анализ каждого кластера по
отдельности)
● Квантование цвета
Пример (сотрудники организации)
Данные
ID ФИО Адрес
10 Редькин Магнус Федорович г. Томск, улица Мокрушина, 24
13 Демин Кербер Псоевич г. Томск, Картасный переулок, 17
19 Малянов Дмитрий Алексеевич г. Томск, Иркутский тракт, 142
26 Зыков Игорь Петрович
32 Ойра-Ойра Роман Петрович г. Томск, улица Бела Куна, 12
35 Бородин Юрий Алексеевич г. Северск, Транспортная улица, 79/6
42 Киплинг Джозеф Редьярд
43 Привалов Александр Иванович г. Томск, Новгородская улица, 44/1
● Всего: 60 записей
Пример
● Фильтрация: игнорировать все записи без
адресов (было: 60; стало: 43)
● Преобразовать каждый адрес в кортеж
(широта, долгота), используя Yandex.Maps
API
● Часто бывает полезно для дальнейшего
анализа визуализировать данные (помогает
выделить характерные особенности)
Подготовка данных
Пример
● Выбираем 40% от всего набора данных,
проводим кластеризацию для количества
кластеров 2, 4, 8, 16, 32 (21
, 22
, 23
, ...) – для
определения отрезка, в котором находится
точка, отражающая нужное нам
соотношение количества кластеров и
значения функции стоимости. После
определения этого отрезка можно провести
более детальное его исследование.
Метод локтя
Метод локтя
Количество кластеров – степени двойки
Рассмотрим подробнее
отрезок [6, 16], так как
именно в этих границах
наблюдается резкое
уменьшение скорости
изменения значения
функции стоимости.
Метод локтя
Отрезок от 6 до 16
Значение 8 или 9 для
количества кластеров
подойдёт наилучшим
образом так как данных
не очень много: если
взять 16 кластеров, то
получится примерно по 2
с половиной объекта на
кластер. Но, безусловно,
это зависит от решаемой
задачи.
8 кластеров
Можно видеть, что
разбиение более
или менее
оптимально.
12 кластеров
На этом
изображении
видно, что 12
кластеров – это
слишком много,
так как возникло
два кластера с
одним элементом:
жёлтый и серый.
2 кластера
При разбиении на
два кластера
ожидаемо были
выделены Северск
и Томск.
Применение
● Задача коммивояжёра: уменьшение
количества точек для посещения (доставка
почты, доставка сотрудников до офиса)
● Определение оптимальных по расстоянию
мест для пунктов голосования, магазинов и
других публичных мест
● Определение оптимальных по расстоянию
мест для вышек сотовой связи или
ретрансляции
● Таргетированная реклама новых магазинов в
разных районах города
Другие функции оптимизации
● Диаметр кластера (максимальное
расстояние между двумя точками в
кластере)
● Радиус кластера (максимальное расстояние
между центроидом/кластроидом кластера и
точкой этого кластера)
● Межкластерное расстояние (минимальное из
расстояний между всеми точками двух
кластеров)
Другие метрики
● Lr
-norm (L2
-norm это Евклидово расстояние,
L1
-norm – расстояние по Манхэттену)
● Расстояние Махаланобиса (обобщение
расстояния по Евклиду)
● Жаккардово расстояние (для множеств)
● Косинусное расстояние (угол между
векторами)
● Расстояние редактирования (для строк)
● Что такое машинное обучение?
● Задачи машинного обучения
– Обучение с учителем
– Обучение без учителя
● Кластеризация
– Выделение групп похожих объектов
● Алгоритм кластеризации k-means
– Выбрать центроиды
– Ассоциировать точки с центроидами
– Обновить центроиды
Итоги

Weitere ähnliche Inhalte

Was ist angesagt?

20120415 videorecognition konushin_lecture06
20120415 videorecognition konushin_lecture0620120415 videorecognition konushin_lecture06
20120415 videorecognition konushin_lecture06Computer Science Club
 
Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №10 "Алгоритмические композиции. Завершение" Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №10 "Алгоритмические композиции. Завершение" Technosphere1
 
CV2011 Lecture 8. Detection
CV2011 Lecture 8. DetectionCV2011 Lecture 8. Detection
CV2011 Lecture 8. DetectionAnton Konushin
 
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"Technosphere1
 
L13: Заключительная
L13: ЗаключительнаяL13: Заключительная
L13: ЗаключительнаяTechnosphere1
 
Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes" Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes" Technosphere1
 
Лекция №3 "Различные алгоритмы кластеризации"
Лекция №3 "Различные алгоритмы кластеризации"Лекция №3 "Различные алгоритмы кластеризации"
Лекция №3 "Различные алгоритмы кластеризации"Technosphere1
 
!Predictive analytics part_3
!Predictive analytics part_3!Predictive analytics part_3
!Predictive analytics part_3Vladimir Krylov
 
Лекция №9 "Алгоритмические композиции. Начало"
Лекция №9 "Алгоритмические композиции. Начало"Лекция №9 "Алгоритмические композиции. Начало"
Лекция №9 "Алгоритмические композиции. Начало"Technosphere1
 
CV2011 Lecture 13. Real-time vision
CV2011 Lecture 13. Real-time visionCV2011 Lecture 13. Real-time vision
CV2011 Lecture 13. Real-time visionAnton Konushin
 
CV2011 Lecture 10. Image retrieval
CV2011 Lecture 10.  Image retrievalCV2011 Lecture 10.  Image retrieval
CV2011 Lecture 10. Image retrievalAnton Konushin
 
L7:Задача кластеризации. Метрики качества
L7:Задача кластеризации. Метрики качестваL7:Задача кластеризации. Метрики качества
L7:Задача кластеризации. Метрики качестваTechnosphere1
 
L2: Задача классификации и регрессии. Метрики ошибок
L2: Задача классификации и регрессии. Метрики ошибокL2: Задача классификации и регрессии. Метрики ошибок
L2: Задача классификации и регрессии. Метрики ошибокTechnosphere1
 
Data Mining - lecture 4 - 2014
Data Mining - lecture 4 - 2014Data Mining - lecture 4 - 2014
Data Mining - lecture 4 - 2014Andrii Gakhov
 
CV2015. Лекция 6. Нейросетевые алгоритмы.
CV2015. Лекция 6. Нейросетевые алгоритмы.CV2015. Лекция 6. Нейросетевые алгоритмы.
CV2015. Лекция 6. Нейросетевые алгоритмы.Anton Konushin
 
CV2011 Lecture 11. Basic video
CV2011 Lecture 11. Basic videoCV2011 Lecture 11. Basic video
CV2011 Lecture 11. Basic videoAnton Konushin
 
Лекция 3 Сегментация
Лекция 3 СегментацияЛекция 3 Сегментация
Лекция 3 СегментацияVictor Kulikov
 

Was ist angesagt? (20)

20120415 videorecognition konushin_lecture06
20120415 videorecognition konushin_lecture0620120415 videorecognition konushin_lecture06
20120415 videorecognition konushin_lecture06
 
Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №10 "Алгоритмические композиции. Завершение" Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №10 "Алгоритмические композиции. Завершение"
 
CV2011 Lecture 8. Detection
CV2011 Lecture 8. DetectionCV2011 Lecture 8. Detection
CV2011 Lecture 8. Detection
 
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
 
L13: Заключительная
L13: ЗаключительнаяL13: Заключительная
L13: Заключительная
 
Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes" Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes"
 
4 azure 24 04
4 azure 24 044 azure 24 04
4 azure 24 04
 
Лекция №3 "Различные алгоритмы кластеризации"
Лекция №3 "Различные алгоритмы кластеризации"Лекция №3 "Различные алгоритмы кластеризации"
Лекция №3 "Различные алгоритмы кластеризации"
 
L06 detection
L06 detectionL06 detection
L06 detection
 
!Predictive analytics part_3
!Predictive analytics part_3!Predictive analytics part_3
!Predictive analytics part_3
 
Лекция №9 "Алгоритмические композиции. Начало"
Лекция №9 "Алгоритмические композиции. Начало"Лекция №9 "Алгоритмические композиции. Начало"
Лекция №9 "Алгоритмические композиции. Начало"
 
CV2011 Lecture 13. Real-time vision
CV2011 Lecture 13. Real-time visionCV2011 Lecture 13. Real-time vision
CV2011 Lecture 13. Real-time vision
 
CV2011 Lecture 10. Image retrieval
CV2011 Lecture 10.  Image retrievalCV2011 Lecture 10.  Image retrieval
CV2011 Lecture 10. Image retrieval
 
L7:Задача кластеризации. Метрики качества
L7:Задача кластеризации. Метрики качестваL7:Задача кластеризации. Метрики качества
L7:Задача кластеризации. Метрики качества
 
L2: Задача классификации и регрессии. Метрики ошибок
L2: Задача классификации и регрессии. Метрики ошибокL2: Задача классификации и регрессии. Метрики ошибок
L2: Задача классификации и регрессии. Метрики ошибок
 
Data Mining - lecture 4 - 2014
Data Mining - lecture 4 - 2014Data Mining - lecture 4 - 2014
Data Mining - lecture 4 - 2014
 
CV2015. Лекция 6. Нейросетевые алгоритмы.
CV2015. Лекция 6. Нейросетевые алгоритмы.CV2015. Лекция 6. Нейросетевые алгоритмы.
CV2015. Лекция 6. Нейросетевые алгоритмы.
 
CV2011 Lecture 11. Basic video
CV2011 Lecture 11. Basic videoCV2011 Lecture 11. Basic video
CV2011 Lecture 11. Basic video
 
Использование поисковых машин и ресурсов Интернет для отбора терминов предмет...
Использование поисковых машин и ресурсов Интернет для отбора терминов предмет...Использование поисковых машин и ресурсов Интернет для отбора терминов предмет...
Использование поисковых машин и ресурсов Интернет для отбора терминов предмет...
 
Лекция 3 Сегментация
Лекция 3 СегментацияЛекция 3 Сегментация
Лекция 3 Сегментация
 

Andere mochten auch

К.В. Воронцов "Алгоритмы кластеризации"
К.В. Воронцов "Алгоритмы кластеризации"К.В. Воронцов "Алгоритмы кластеризации"
К.В. Воронцов "Алгоритмы кластеризации"Yandex
 
Identifying news clusters using Q-analysis and Modularity
Identifying news clusters using Q-analysis and ModularityIdentifying news clusters using Q-analysis and Modularity
Identifying news clusters using Q-analysis and ModularityDavid Sousa-Rodrigues
 
Распознавание лиц в реальном времени по базам фотографий глобального масштаба...
Распознавание лиц в реальном времени по базам фотографий глобального масштаба...Распознавание лиц в реальном времени по базам фотографий глобального масштаба...
Распознавание лиц в реальном времени по базам фотографий глобального масштаба...Ontico
 
Машинное обучение на платформе .NET
Машинное обучение на платформе .NETМашинное обучение на платформе .NET
Машинное обучение на платформе .NETDotNetConf
 
Recognition of handwritten digits
Recognition of handwritten digitsRecognition of handwritten digits
Recognition of handwritten digitsAndrew Babiy
 
Deep learning: Cложный анализ данных простыми словами_Сергей Шелпук
Deep learning: Cложный анализ данных простыми словами_Сергей ШелпукDeep learning: Cложный анализ данных простыми словами_Сергей Шелпук
Deep learning: Cложный анализ данных простыми словами_Сергей ШелпукGeeksLab Odessa
 
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...solit
 
Алгебраический подход к анализу данных и его приложения
Алгебраический подход к анализу данных и его приложенияАлгебраический подход к анализу данных и его приложения
Алгебраический подход к анализу данных и его приложенияАлександр Дьяконов
 
Определение курильщика по кардиограмме
Определение курильщика по кардиограммеОпределение курильщика по кардиограмме
Определение курильщика по кардиограммеАлександр Дьяконов
 
Matrix Laboratory (эффективное программирование)
Matrix Laboratory (эффективное программирование)Matrix Laboratory (эффективное программирование)
Matrix Laboratory (эффективное программирование)Александр Дьяконов
 
Наивный байесовский классификатор. Дерево решений. Случайный лес.
Наивный байесовский классификатор. Дерево решений. Случайный лес.Наивный байесовский классификатор. Дерево решений. Случайный лес.
Наивный байесовский классификатор. Дерево решений. Случайный лес.Bitworks Software
 
Machine learning with Python / Олег Шидловский / Doist [Python Meetup 27.03.15]
Machine learning with Python / Олег Шидловский / Doist [Python Meetup 27.03.15] Machine learning with Python / Олег Шидловский / Doist [Python Meetup 27.03.15]
Machine learning with Python / Олег Шидловский / Doist [Python Meetup 27.03.15] Python Meetup
 
Введение в язык программирования Питон (Python)
Введение в язык программирования Питон (Python)Введение в язык программирования Питон (Python)
Введение в язык программирования Питон (Python)Александр Дьяконов
 
Community detection (Поиск сообществ в графах)
Community detection (Поиск сообществ в графах)Community detection (Поиск сообществ в графах)
Community detection (Поиск сообществ в графах)Kirill Rybachuk
 
Машинное обучение на платформе .NET
Машинное обучение на платформе .NETМашинное обучение на платформе .NET
Машинное обучение на платформе .NETRoman Nevolin
 

Andere mochten auch (20)

К.В. Воронцов "Алгоритмы кластеризации"
К.В. Воронцов "Алгоритмы кластеризации"К.В. Воронцов "Алгоритмы кластеризации"
К.В. Воронцов "Алгоритмы кластеризации"
 
Identifying news clusters using Q-analysis and Modularity
Identifying news clusters using Q-analysis and ModularityIdentifying news clusters using Q-analysis and Modularity
Identifying news clusters using Q-analysis and Modularity
 
Кластеризация русскоязычных текстов на основе латентно-семантического анализа
Кластеризация русскоязычных текстов на основе латентно-семантического анализаКластеризация русскоязычных текстов на основе латентно-семантического анализа
Кластеризация русскоязычных текстов на основе латентно-семантического анализа
 
Машинное обучение
Машинное обучениеМашинное обучение
Машинное обучение
 
Распознавание лиц в реальном времени по базам фотографий глобального масштаба...
Распознавание лиц в реальном времени по базам фотографий глобального масштаба...Распознавание лиц в реальном времени по базам фотографий глобального масштаба...
Распознавание лиц в реальном времени по базам фотографий глобального масштаба...
 
Машинное обучение на платформе .NET
Машинное обучение на платформе .NETМашинное обучение на платформе .NET
Машинное обучение на платформе .NET
 
Recognition of handwritten digits
Recognition of handwritten digitsRecognition of handwritten digits
Recognition of handwritten digits
 
Deep learning: Cложный анализ данных простыми словами_Сергей Шелпук
Deep learning: Cложный анализ данных простыми словами_Сергей ШелпукDeep learning: Cложный анализ данных простыми словами_Сергей Шелпук
Deep learning: Cложный анализ данных простыми словами_Сергей Шелпук
 
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...
 
Алгебраический подход к анализу данных и его приложения
Алгебраический подход к анализу данных и его приложенияАлгебраический подход к анализу данных и его приложения
Алгебраический подход к анализу данных и его приложения
 
Определение курильщика по кардиограмме
Определение курильщика по кардиограммеОпределение курильщика по кардиограмме
Определение курильщика по кардиограмме
 
Спектральная теория графов
Спектральная теория графовСпектральная теория графов
Спектральная теория графов
 
Решение задачи Search Results Relevance
Решение задачи Search Results RelevanceРешение задачи Search Results Relevance
Решение задачи Search Results Relevance
 
Matrix Laboratory (эффективное программирование)
Matrix Laboratory (эффективное программирование)Matrix Laboratory (эффективное программирование)
Matrix Laboratory (эффективное программирование)
 
Наивный байесовский классификатор. Дерево решений. Случайный лес.
Наивный байесовский классификатор. Дерево решений. Случайный лес.Наивный байесовский классификатор. Дерево решений. Случайный лес.
Наивный байесовский классификатор. Дерево решений. Случайный лес.
 
Machine learning with Python / Олег Шидловский / Doist [Python Meetup 27.03.15]
Machine learning with Python / Олег Шидловский / Doist [Python Meetup 27.03.15] Machine learning with Python / Олег Шидловский / Doist [Python Meetup 27.03.15]
Machine learning with Python / Олег Шидловский / Doist [Python Meetup 27.03.15]
 
Введение в язык программирования Питон (Python)
Введение в язык программирования Питон (Python)Введение в язык программирования Питон (Python)
Введение в язык программирования Питон (Python)
 
Community detection (Поиск сообществ в графах)
Community detection (Поиск сообществ в графах)Community detection (Поиск сообществ в графах)
Community detection (Поиск сообществ в графах)
 
Теория нечётких множеств
Теория нечётких множествТеория нечётких множеств
Теория нечётких множеств
 
Машинное обучение на платформе .NET
Машинное обучение на платформе .NETМашинное обучение на платформе .NET
Машинное обучение на платформе .NET
 

Ähnlich wie Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)

!Predictive analytics part_2
!Predictive analytics part_2!Predictive analytics part_2
!Predictive analytics part_2Vladimir Krylov
 
Семинар 5. Многопоточное программирование на OpenMP (часть 5)
Семинар 5. Многопоточное программирование на OpenMP (часть 5)Семинар 5. Многопоточное программирование на OpenMP (часть 5)
Семинар 5. Многопоточное программирование на OpenMP (часть 5)Mikhail Kurnosov
 
чернякова г.в.
чернякова г.в.чернякова г.в.
чернякова г.в.sharikdp
 
Принципы работы статического анализатора кода PVS-Studio
Принципы работы статического анализатора кода PVS-StudioПринципы работы статического анализатора кода PVS-Studio
Принципы работы статического анализатора кода PVS-StudioAndrey Karpov
 
Мастер класс по алгоритмам. Часть 1
Мастер класс по алгоритмам. Часть 1Мастер класс по алгоритмам. Часть 1
Мастер класс по алгоритмам. Часть 1Pavel Egorov
 
BigData Week Moscow 2013 - Case: Personalization
BigData Week Moscow 2013 - Case: PersonalizationBigData Week Moscow 2013 - Case: Personalization
BigData Week Moscow 2013 - Case: PersonalizationAnton Gorokhov
 
Производительность запросов в PostgreSQL - шаг за шагом / Илья Космодемьянски...
Производительность запросов в PostgreSQL - шаг за шагом / Илья Космодемьянски...Производительность запросов в PostgreSQL - шаг за шагом / Илья Космодемьянски...
Производительность запросов в PostgreSQL - шаг за шагом / Илья Космодемьянски...Ontico
 
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014Python Meetup
 
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 3...
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 3...PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 3...
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 3...pgdayrussia
 
Data Mining - lecture 3 - 2014
Data Mining - lecture 3 - 2014Data Mining - lecture 3 - 2014
Data Mining - lecture 3 - 2014Andrii Gakhov
 
FaceDetection+GenderRecognition_review
FaceDetection+GenderRecognition_reviewFaceDetection+GenderRecognition_review
FaceDetection+GenderRecognition_reviewKhryashchev
 
алгоритмизация
алгоритмизацияалгоритмизация
алгоритмизацияisva69
 
Data Mining - lecture 6 - 2014
Data Mining - lecture 6 - 2014Data Mining - lecture 6 - 2014
Data Mining - lecture 6 - 2014Andrii Gakhov
 
Как не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru Group
Как не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru GroupКак не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru Group
Как не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru GroupMail.ru Group
 
Про Python и вычисления.
Про Python и вычисления.Про Python и вычисления.
Про Python и вычисления.Optima-PROMO
 
Руслан Гроховецкий — Python и вычисления
Руслан Гроховецкий — Python и вычисленияРуслан Гроховецкий — Python и вычисления
Руслан Гроховецкий — Python и вычисленияYandex
 
Big Data - первые шаги
Big Data - первые шагиBig Data - первые шаги
Big Data - первые шагиAnton Gorokhov
 
Отказоустойчивая обработка 10M OAuth токенов на Tarantool / Владимир Перепели...
Отказоустойчивая обработка 10M OAuth токенов на Tarantool / Владимир Перепели...Отказоустойчивая обработка 10M OAuth токенов на Tarantool / Владимир Перепели...
Отказоустойчивая обработка 10M OAuth токенов на Tarantool / Владимир Перепели...Ontico
 

Ähnlich wie Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов) (20)

!Predictive analytics part_2
!Predictive analytics part_2!Predictive analytics part_2
!Predictive analytics part_2
 
Семинар 5. Многопоточное программирование на OpenMP (часть 5)
Семинар 5. Многопоточное программирование на OpenMP (часть 5)Семинар 5. Многопоточное программирование на OpenMP (часть 5)
Семинар 5. Многопоточное программирование на OpenMP (часть 5)
 
чернякова г.в.
чернякова г.в.чернякова г.в.
чернякова г.в.
 
Efficiency vvv
Efficiency vvvEfficiency vvv
Efficiency vvv
 
Принципы работы статического анализатора кода PVS-Studio
Принципы работы статического анализатора кода PVS-StudioПринципы работы статического анализатора кода PVS-Studio
Принципы работы статического анализатора кода PVS-Studio
 
Мастер класс по алгоритмам. Часть 1
Мастер класс по алгоритмам. Часть 1Мастер класс по алгоритмам. Часть 1
Мастер класс по алгоритмам. Часть 1
 
BigData Week Moscow 2013 - Case: Personalization
BigData Week Moscow 2013 - Case: PersonalizationBigData Week Moscow 2013 - Case: Personalization
BigData Week Moscow 2013 - Case: Personalization
 
Производительность запросов в PostgreSQL - шаг за шагом / Илья Космодемьянски...
Производительность запросов в PostgreSQL - шаг за шагом / Илья Космодемьянски...Производительность запросов в PostgreSQL - шаг за шагом / Илья Космодемьянски...
Производительность запросов в PostgreSQL - шаг за шагом / Илья Космодемьянски...
 
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
 
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 3...
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 3...PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 3...
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 3...
 
Data Mining - lecture 3 - 2014
Data Mining - lecture 3 - 2014Data Mining - lecture 3 - 2014
Data Mining - lecture 3 - 2014
 
FaceDetection+GenderRecognition_review
FaceDetection+GenderRecognition_reviewFaceDetection+GenderRecognition_review
FaceDetection+GenderRecognition_review
 
алгоритмизация
алгоритмизацияалгоритмизация
алгоритмизация
 
Data Mining - lecture 6 - 2014
Data Mining - lecture 6 - 2014Data Mining - lecture 6 - 2014
Data Mining - lecture 6 - 2014
 
Как не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru Group
Как не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru GroupКак не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru Group
Как не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru Group
 
Про Python и вычисления.
Про Python и вычисления.Про Python и вычисления.
Про Python и вычисления.
 
Руслан Гроховецкий — Python и вычисления
Руслан Гроховецкий — Python и вычисленияРуслан Гроховецкий — Python и вычисления
Руслан Гроховецкий — Python и вычисления
 
Основы SciPy
Основы SciPyОсновы SciPy
Основы SciPy
 
Big Data - первые шаги
Big Data - первые шагиBig Data - первые шаги
Big Data - первые шаги
 
Отказоустойчивая обработка 10M OAuth токенов на Tarantool / Владимир Перепели...
Отказоустойчивая обработка 10M OAuth токенов на Tarantool / Владимир Перепели...Отказоустойчивая обработка 10M OAuth токенов на Tarantool / Владимир Перепели...
Отказоустойчивая обработка 10M OAuth токенов на Tarantool / Владимир Перепели...
 

Mehr von Dmitry Kornev

Экономика в 2016 году (Барри Эйхенгрин)
Экономика в 2016 году (Барри Эйхенгрин)Экономика в 2016 году (Барри Эйхенгрин)
Экономика в 2016 году (Барри Эйхенгрин)Dmitry Kornev
 
Новости глобальной экономики (14-20 марта 2016 г.)
Новости глобальной экономики (14-20 марта 2016 г.)Новости глобальной экономики (14-20 марта 2016 г.)
Новости глобальной экономики (14-20 марта 2016 г.)Dmitry Kornev
 
Открытые данные в Российской Федерации
Открытые данные в Российской Федерации Открытые данные в Российской Федерации
Открытые данные в Российской Федерации Dmitry Kornev
 
Прогноз развития России на 2016-2018 годы (отчет)
Прогноз развития России на 2016-2018 годы (отчет)Прогноз развития России на 2016-2018 годы (отчет)
Прогноз развития России на 2016-2018 годы (отчет)Dmitry Kornev
 
Kremlinology - Stratfor
Kremlinology  - StratforKremlinology  - Stratfor
Kremlinology - StratforDmitry Kornev
 
Введение в современную военную технику (2015)
Введение в современную военную технику (2015)Введение в современную военную технику (2015)
Введение в современную военную технику (2015)Dmitry Kornev
 
Bitworks presentation 2015_v3
Bitworks presentation 2015_v3Bitworks presentation 2015_v3
Bitworks presentation 2015_v3Dmitry Kornev
 
История создания систем ПРО в СССР и России / History of the russian anti-bal...
История создания систем ПРО в СССР и России / History of the russian anti-bal...История создания систем ПРО в СССР и России / History of the russian anti-bal...
История создания систем ПРО в СССР и России / History of the russian anti-bal...Dmitry Kornev
 

Mehr von Dmitry Kornev (8)

Экономика в 2016 году (Барри Эйхенгрин)
Экономика в 2016 году (Барри Эйхенгрин)Экономика в 2016 году (Барри Эйхенгрин)
Экономика в 2016 году (Барри Эйхенгрин)
 
Новости глобальной экономики (14-20 марта 2016 г.)
Новости глобальной экономики (14-20 марта 2016 г.)Новости глобальной экономики (14-20 марта 2016 г.)
Новости глобальной экономики (14-20 марта 2016 г.)
 
Открытые данные в Российской Федерации
Открытые данные в Российской Федерации Открытые данные в Российской Федерации
Открытые данные в Российской Федерации
 
Прогноз развития России на 2016-2018 годы (отчет)
Прогноз развития России на 2016-2018 годы (отчет)Прогноз развития России на 2016-2018 годы (отчет)
Прогноз развития России на 2016-2018 годы (отчет)
 
Kremlinology - Stratfor
Kremlinology  - StratforKremlinology  - Stratfor
Kremlinology - Stratfor
 
Введение в современную военную технику (2015)
Введение в современную военную технику (2015)Введение в современную военную технику (2015)
Введение в современную военную технику (2015)
 
Bitworks presentation 2015_v3
Bitworks presentation 2015_v3Bitworks presentation 2015_v3
Bitworks presentation 2015_v3
 
История создания систем ПРО в СССР и России / History of the russian anti-bal...
История создания систем ПРО в СССР и России / History of the russian anti-bal...История создания систем ПРО в СССР и России / History of the russian anti-bal...
История создания систем ПРО в СССР и России / History of the russian anti-bal...
 

Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)

  • 1. Введение в машинное обучение. Кластеризация. Алгоритм кластеризации k-means. Bitworks Software Жданов Кирилл
  • 2. Машинное обучение Компьютер Что это? Использование программ Программа Входные данные Выходные данные Создание программ при помощи машинного обучения Компьютер Входные данные Выходные данные Программа
  • 3. Машинное обучение Пример: обнаружение спама Компьютер Входные данные: множество писем Выходные данные: метки для писем из входных данных (спам/не спам) Программа
  • 4. Машинное обучение Пример: обнаружение спама Компьютер Программа Спам Не спам Письма
  • 5. Машинное обучение Примеры задач ● Поиск похожих элементов – Сайты-двойники – Плагиат ● Обработка естественного языка – Выделение документов со схожими темами – Выделение ключевых слов ● Самонастраивающиеся приложения – Рекомендательные системы (Ozon, Netflix)
  • 6. Машинное обучение Примеры задач Поиск плагиата Выбор групп слов Хэширование Хэширование Сравнение Слова, фразы, абзацы Слова, фразы, абзацы Веса слов, фраз, абзацев Веса слов, фраз, абзацев Выбор групп слов
  • 7. Машинное обучение Примеры задач Выделение документов со схожими темами SVD/CUR TF-IDF Политика: 136 статей Спорт: 409 статей Общество: 302 статьи Культура: 254 статьи Автомобили: 150 статей Наука: 95 статей Определение тем Список ключевых слов для каждой статьи и их значимость Выделенные скрытые компоненты
  • 8. Машинное обучение Примеры задач Рекомендательные системы: ● На основании исторических данных о предпочтениях пользователей, находим пользователей со схожими вкусами ● Рекомендуем пользователю одной группы товары, понравившиеся другим пользователям этой же группы
  • 9. Задачи машинного обучения ● Обучение с учителем – Регрессия ● Предсказание значения непрерывной величины (например, линейная регрессия)
  • 10. Задачи машинного обучения ● Обучение с учителем: регрессия Предсказание веса в зависимости от роста: по обучающей выборке построена линейная регрессия
  • 11. Задачи машинного обучения ● Обучение с учителем: регрессия Для человека с ростом 187 сантиметров теперь можем предсказать вес: 79 килограммов.
  • 12. Задачи машинного обучения ● Обучение с учителем – Регрессия ● Предсказание значения непрерывной величины (например, линейная регрессия) – Классификация ● Предсказание значений дискретной величины (например, линейная классификация)
  • 13. Задачи машинного обучения ● Обучение с учителем: классификация Дано: точки двух классов в двухмерном пространстве.
  • 14. Задачи машинного обучения ● Обучение с учителем: классификация Какой класс у точки с такими координатами?
  • 15. Задачи машинного обучения ● Обучение с учителем: классификация Строим линейный классификатор.
  • 16. Задачи машинного обучения ● Обучение с учителем: классификация На основании положения точки относительно классификатора, определяем её класс.
  • 17. Задачи машинного обучения ● Обучение с учителем – Регрессия ● Предсказание значения непрерывной величины (например, линейная регрессия) – Классификация ● Предсказание значений дискретной величины (например, линейная классификация) ● Обучение без учителя ● Найти скрытые закономерности в данных, сжать данные (например, уменьшение размерности пространства, кластеризация)
  • 18. Задачи машинного обучения 1000 измерений A B C D E 3.7 0.3 0.0 0.0 1.7 0.0 0.1 3.5 0.0 7.2 5.8 3.8 0.2 3.8 0.0 2.1 4.5 8.7 1.2 0.2 0.3 2.6 6.2 3.5 8.2 0.8 3.3 7.1 0.0 5.3 4.5 1.0 6.1 9.9 7.3 5 измерений Уменьшение размерности пространства ● Для чего: – Уменьшение трудоёмкости вычислений – Визуализация 0 1 2 3 4 5 6 7 8 9 10 11 12 ... 0.7 0.9 0 0 0 0 0 0 1 1.7 2.8 0 0 ... 4.3 8.1 0 1.8 0.4 0 2.1 0 3.7 0 0.1 0 0.6 ... 0 1.1 1.8 0 6.5 7.1 0 0.6 0 0 1.4 1.8 0.3 ... 1.9 7.7 0 7.3 1.1 1.0 0.4 0 4.4 3.5 0 1.2 0 ... 8.0 0.4 7.1 0 0 1.9 3.4 0.3 0 2.7 0 1.2 6.2 ... 0 9.2 1.2 0.3 0.1 0 3.7 0 0 1.8 9.1 0 1.1 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
  • 19. Задачи машинного обучения Уменьшение размерности пространства Переводим точки из двухмерного пространства в одномерное. Для этого нужно всего лишь подобрать прямую, при проекции на которую точки будут максимально далеки друг от друга.
  • 20. Задачи машинного обучения Уменьшение размерности пространства
  • 21. Задачи машинного обучения Кластеризация Дано: группа элементов, для каждого элемента определены значения нескольких характеристик (например, рост, вес, температура и т.д.). Необходимо выделить группы похожих элементов.
  • 22. Кластеризация ● Иерархическая – Каждая точка – кластер – Объединение ближайших кластеров с сохранением древовидной структуры ● Назначение точек – Определить несколько кластеров – Присвоить каждую точку ближайшему кластеру ● На основании связности – Близкие друг к другу точки объединяются в кластеры
  • 23. K-means Пример В наличии набор точек в двухмерном пространстве (в общем случае – в многомерном).
  • 24. K-means Пример Хотим выделить два кластера – случайно выбираем две точки из множества.
  • 25. K-means Пример Создаём на их месте две новые точки – центры кластеров. Распределяем точки между кластерами на основании расстояния.
  • 26. K-means Пример Перемещаем центры кластеров так, чтобы расстояние от центра до всех точек этого кластера было минимальным.
  • 29. K-means Пример До тех пор, пока позиции центров кластеров изменяются.
  • 31. K-means 0) Определить метрику расстояния 1) Выбрать количество кластеров 2) Нормализовать данные 3) Выбрать центроиды (центры кластеров) 4) Присвоить точки кластерам 5) Обновить центроиды 6) Повторять 4 и 5 Алгоритм
  • 32. K-means ● Требования: – E(x, y) = 0 если и только если x = y – E(x, y) = E(y, x) – E(x, y) + E(y, z) > E(x, z) ● Евклидово расстояние: 0) Определить метрику расстояния E E12=√(x1−x2) 2 +( y1− y2) 2
  • 33. K-means Хорошо, если изначально известно. Но чаще всего этим знанием исследователи не обладают, поэтому был предложен метод, позволяющий оценить нужное количество кластеров – метод локтя (Elbow method). 1) Выбрать количество кластеров
  • 34. J= 1 n ∑ i=1 n E( pointi ,centroid( pointi)) K-means ● Функция стоимости: ● Далее производится кластеризация множества точек с различными значениями количества кластеров и строится график зависимости значения функции стоимости от количества кластеров 1) Выбрать количество кластеров: метод локтя Центроид кластера, которому принадлежит эта точка
  • 35. K-means Метод локтя (Elbow method) J Количество кластеров Нужно выбрать такую точку на графике, которая определит оптимальное соотношение количества кластеров и значения функции стоимости: на сгибе “локтя” графика.
  • 36. K-means Многократная кластеризация всего исходного набора точек – чаще всего очень трудоёмкая задача из-за того, что точек и измерений много. Поэтому выбирается подмножество точек и используется в качестве входных данных для методя локтя. 1) Выбрать количество кластеров
  • 37. K-means 2) Нормализовать данные ID Заработная плата Возраст 1 80000 37 2 50000 23 3 120000 52 4 75000 28 E12=√(x1−x2) 2 +( y1− y2) 2 E14=√(80000−75000) 2 +(37−28) 2 ≈5000
  • 38. K-means 2) Нормализовать данные В приведённом примере возраст вносит незначительный вклад в определение расстояния между двумя точками из-за того, что заработная плата измеряется в тысячах, а возраст в десятках. После нормализации масштабы шкал измерения параметров будут совпадать и мы избавимся от этой проблемы.
  • 39. K-means 2) Нормализовать данные ID З/п Возраст 1 80000 37 2 50000 23 3 120000 52 4 75000 28 ID З/п Возраст 1 0.4285 0.4827 2 0 0 3 1 1 4 0.3571 0.1724
  • 40. K-means 2) Нормализовать данные ID З/п Возраст 1 0.4285 0.4827 2 0 0 3 1 1 4 0.3571 0.1724 E14=√(80000−75000) 2 +(37−28) 2 ≈5000 E14=√(0.4285−0.4827) 2 +(0.3571−0.1724) 2 E14≈0.19153
  • 41. K-means ● Случайные точки в границах [min; max] 3) Выбрать центроиды При данном подходе могут быть выбраны центроиды в “пустынных” областях пространства и им придётся проделать лишний путь в процессе минимизации значения функции стоимости.
  • 42. K-means ● Случайные точки в границах [min; max] ● Случайные точки из множества точек 3) Выбрать центроиды Подход, который был использован нами при рассмотрении первого примера. Выбираем с равной вероятностью несколько точек из набора исходных, дублируем их и используем дубликаты в качестве центроидов.
  • 43. K-means 3) Выбрать центроиды Однако, если большинство точек сгруппированы в одном месте, а небольшие группы точек расположены на периферии, то с большей вероятностью все центроиды будут выбраны из большего по размеру множества точек – и выделить кластеры на периферии не удастся.
  • 44. K-means ● Случайные точки в границах [min; max] ● Случайные точки из множества точек ● Взвешенный случаный выбор точек из множества (k-means++): – Выбрать одну случайно – Вычислить вероятности для всех остальных точек на основании расстояния до выбранных – Выбрать следующую, учитывая вероятности – Пересчитать вероятности 3) Выбрать центроиды
  • 45. K-means 4) Присвоить точки кластерам На основании метрики расстояния E12=√(x1−x2) 2 +( y1− y2) 2
  • 46. K-means 5) Обновить центроиды ● Среднее значение всех точек кластера по каждому измерению: ● Выбрать в качестве центра кластера точку из этого кластера, которая ближе всех ко всем остальным точкам кластера (кластроид). Полезно, когда сложно посчитать среднее значение по какому- либо измерению и/или пространство многомерное. 0.17+0.12+0.22+0.96 4 =0.37
  • 47. K-means 6) Повторять 4 и 5 ● Критерий остановки: – Количество итераций (задаётся заранее) – Пока значение функции стоимости изменяется
  • 51. Недостатки ● Априорное знание о количестве кластеров ● Сферическая форма выделяемых кластеров (справедливо для Евклидовой метрики расстояния; для решения этой проблемы используются другие метрики расстояния, например, расстояние по Махаланобису)
  • 52. K-means Недостатки: локальный минимум Не гарантируется, что в результате использования алгоритма кластеризации k-means будет получено оптимальное разбиение множества точек на кластеры (не гарантируется достижение глобального минимума). Многое зависит от начального распределения центроидов.
  • 53. K-means Недостатки: локальный минимум В рассматриваемом примере жёлтый центроид не сдвинется с места, так как это не приведёт к улучшению значения функции стоимости – из-за того, что рядом расположен зелёный кластер и расстояния от ближайших точек до зелёного центроида меньше, чем до жёлтого.
  • 54. K-means Недостатки: локальный минимум При этом с целью улучшения значения функции стоимости синий кластер формируется из двух групп точек, которые могли бы быть выделены в отдельные кластеры.
  • 55. K-means Недостатки: локальный минимум В конце концов будет получена следующая кластеризация точек.
  • 56. Недостатки k-means ● Априорное знание о количестве кластеров ● Сферическая форма выделяемых кластеров ● Локальный минимум (для решения этой проблемы предлагается провести кластеризацию несколько раз и выбрать наилучший вариант)
  • 57. Применение кластеризации ● Сегментирование рынка (целевая аудитория для рекламы) ● Анализ социальных сетей ● Определение групп похожих продуктов (рекомендательные системы) ● Уменьшение количества анализируемых элементов (представить каждый кластер как одну точку; анализ каждого кластера по отдельности) ● Квантование цвета
  • 58. Пример (сотрудники организации) Данные ID ФИО Адрес 10 Редькин Магнус Федорович г. Томск, улица Мокрушина, 24 13 Демин Кербер Псоевич г. Томск, Картасный переулок, 17 19 Малянов Дмитрий Алексеевич г. Томск, Иркутский тракт, 142 26 Зыков Игорь Петрович 32 Ойра-Ойра Роман Петрович г. Томск, улица Бела Куна, 12 35 Бородин Юрий Алексеевич г. Северск, Транспортная улица, 79/6 42 Киплинг Джозеф Редьярд 43 Привалов Александр Иванович г. Томск, Новгородская улица, 44/1 ● Всего: 60 записей
  • 59. Пример ● Фильтрация: игнорировать все записи без адресов (было: 60; стало: 43) ● Преобразовать каждый адрес в кортеж (широта, долгота), используя Yandex.Maps API ● Часто бывает полезно для дальнейшего анализа визуализировать данные (помогает выделить характерные особенности) Подготовка данных
  • 60.
  • 61. Пример ● Выбираем 40% от всего набора данных, проводим кластеризацию для количества кластеров 2, 4, 8, 16, 32 (21 , 22 , 23 , ...) – для определения отрезка, в котором находится точка, отражающая нужное нам соотношение количества кластеров и значения функции стоимости. После определения этого отрезка можно провести более детальное его исследование. Метод локтя
  • 62. Метод локтя Количество кластеров – степени двойки Рассмотрим подробнее отрезок [6, 16], так как именно в этих границах наблюдается резкое уменьшение скорости изменения значения функции стоимости.
  • 63. Метод локтя Отрезок от 6 до 16 Значение 8 или 9 для количества кластеров подойдёт наилучшим образом так как данных не очень много: если взять 16 кластеров, то получится примерно по 2 с половиной объекта на кластер. Но, безусловно, это зависит от решаемой задачи.
  • 64. 8 кластеров Можно видеть, что разбиение более или менее оптимально.
  • 65. 12 кластеров На этом изображении видно, что 12 кластеров – это слишком много, так как возникло два кластера с одним элементом: жёлтый и серый.
  • 66. 2 кластера При разбиении на два кластера ожидаемо были выделены Северск и Томск.
  • 67. Применение ● Задача коммивояжёра: уменьшение количества точек для посещения (доставка почты, доставка сотрудников до офиса) ● Определение оптимальных по расстоянию мест для пунктов голосования, магазинов и других публичных мест ● Определение оптимальных по расстоянию мест для вышек сотовой связи или ретрансляции ● Таргетированная реклама новых магазинов в разных районах города
  • 68. Другие функции оптимизации ● Диаметр кластера (максимальное расстояние между двумя точками в кластере) ● Радиус кластера (максимальное расстояние между центроидом/кластроидом кластера и точкой этого кластера) ● Межкластерное расстояние (минимальное из расстояний между всеми точками двух кластеров)
  • 69. Другие метрики ● Lr -norm (L2 -norm это Евклидово расстояние, L1 -norm – расстояние по Манхэттену) ● Расстояние Махаланобиса (обобщение расстояния по Евклиду) ● Жаккардово расстояние (для множеств) ● Косинусное расстояние (угол между векторами) ● Расстояние редактирования (для строк)
  • 70. ● Что такое машинное обучение? ● Задачи машинного обучения – Обучение с учителем – Обучение без учителя ● Кластеризация – Выделение групп похожих объектов ● Алгоритм кластеризации k-means – Выбрать центроиды – Ассоциировать точки с центроидами – Обновить центроиды Итоги