SlideShare a Scribd company logo
1 of 24
Download to read offline
Введение в Data Science
Занятие 6. Кластеризация
Николай Анохин Михаил Фирулик
9 апреля 2014 г.
План занятия
Задача кластеризации
Функции расстояния
Критерии качества кластеризации
Python-программисты (by Gilad Lotan)
Слова и топики
Интуиция
Кластерный анализ
Разбиение множества обучающих объектов на непересекающиеся
подмножества (кластеры) с использованием некоторой функции
расстояния между объектами так, чтобы любые два объекта,
лежащие в одном кластере были схожи, а любые два объекта,
лежащие в разных кластерах существенно различались.
Зачем
расширение обучающей выборки
ручная разметка объектов
конструирование признаков
суммаризация данных
визуализация данных
Формально
Дано:
Обучающая выборка (x1, . . . , xN ), где xj – объект,
принадлежащий некоторому множеству X
На X определена функция расстояния (схожести)
Найти: Разбиение f : X → C, где C = {1, . . . , K} – множество
идентификаторов K кластеров.
Функция расстояния
Def
Функция d(x, y) : X × X → R является функцией расстояния,
определенной на пространстве X тогда и только тогда, когда
∀x ∈ X, ∀y ∈ X, ∀z ∈ X выполнено:
1. d(x, y) ≥ 0
2. d(x, y) = 0 ⇔ x = y
3. d(x, y) = d(y, x)
4. d(x, y) ≤ d(x, z) + d(y, z)
Расстояния 1
Минковского
dr (x, y) =


N
j=1
|xj − yj |r


1
r
Евклидово r = 2
dE (x, y) = d2(x, y)
Манхэттэн r = 1
dM (x, y) = d1(x, y)
r = ∞
d∞(x, y) = max
j
|xj − yj |
Проблема
Функции расстояния чувствительны к преобразоаниям данных
Решение
Преобразовать обучающую выборку так, чтобы признаки имели
нулевое среднее и единичную дисперсию – инвариантность к
растяжению и сдвигу (stanartize)
Преобразовать обучающую выборку так, чтобы оси совпадали с
главными компонентами матрицы ковариации – инвариантность
относительно поворотов (PCA)
Расстояния 2
Жаккар
dJ (x, y) = 1 −
|x ∩ y|
|x ∪ y|
Косинус
dc (x, y) = arccos
xy
x y
Правки
de – наименьшее количество
удалений и вставок, приводящее x к
y.
Хэмминг
dH – количество различных
компонент в x и y.
Проклятие размерности
Задача
Даны два случайных вектора x и y в пространстве размерности D.
Как зависит математическое ожидание косинус-расстояния между x
и y от размерности D?
dc (x, y) = arccos
D
j=1 xj yj
D
j=1 x2
j
D
j=1 y2
j
Наблюдения:
числитель стремится к нулю
знаменатель положительный
Вывод: dc (x, y) → π
2 .
Выбор разбиения
Идея
Определить критерий качества кластеризации J и
выбрать разбиение выборки на кластеры, которое
которое соответствует оптимальному значению этого
критерия.
Квардатичная ошибка
Среднее k-го кластера
mk =
1
nk
xi ∈Ck
xi
Критерий
JE =
K
k=1 xi ∈Ck
xi − mk
2
→ min
Предпочтение кластерам близких
размеров
Обобщение квадратичной ошибки
Критерий
JE =
K
k=1 xi ∈Ck
xi − mk
2
=
=
1
2
K
k=1
nk

 1
n2
k xi ∈Ck xj ∈Ck
xi − xj
2

 =
=
1
2
K
k=1
nk

 1
n2
k xi ∈Ck xj ∈Ck
s(xi , xj )

 =
1
2
K
k=1
nk¯sk
Примеры ¯si
¯sk = min
xi ,xj
s(xi , xj ); ¯sk = max
xi ,xj
s(xi , xj )
Матрицы разброса
Матрица разброса внутри кластеров
Sk =
xi ∈Ck
(xi − mk )(xi − mk ) ; SW =
K
k=1
Sk
Матрица разброса между кластерами
SB =
K
k=1
nk (mk − m)(mk − m)
Матрица разброса
ST =
xi ∈X
(xi − m)(xi − m)
ST = SW + SB
Критерии
След
JE = trSW =
K
k=1 xi ∈CK
xi − mk
2
→ min
Детерминант (инвариант относительно растяжения)
Jd = det SW → min
Инварианты отностиельно линейных преобразований
Jl = trS−1
W SB =
d
j=1
λj → max, Jf =
d
j=1
1
1 + λj
→ min
λ1, . . . , λd – собственные числа S−1
W SB
Итеративный алгоритм
Критерий
Jk =
xi ∈Ck
xi − mk
2
, mk =
1
nk
xi ∈Ck
xi
Переносим ˆx из кластера l в кластер k
m∗
k = mk +
ˆx − mk
nk + 1
, J∗
k = Jk +
nk
nk + 1
ˆx − mk
2
m∗
l = ml −
ˆx − ml
nl − 1
, J∗
l = Jl −
nl
nl − 1
ˆx − ml
2
Перенос имеет смысл, если
nl
nl − 1
ˆx − ml
2
>
nk
nk + 1
ˆx − mk
2
Итеративный алгоритм
cluster(X, K):
инициализируем C1, . . . , CK , n1, . . . , nK
do:
случайно выбираем ˆx ∈ X
if nl > 1:
k∗
= arg mink J∗
перемещаем ˆx в k∗
until кластеры стабильны или превышено число итераций
+ Обучение online
— Локальная оптимизация
— Зависимость от порядка рассмотрения x
Качество кластеризации
Задача
Пусть дана обучающая выборка, для которой правильная
кластеризация C известна. С помощью выбранного алгоритма
получена кластеризация K. Проверить, насколько K совпадает с C.
Rand Index
a – кол-во пар объектов, попавших в один кластер и в C, и в K
b – кол-во пар объектов, попавших в разные кластеры и в C, и в K
RI =
a + b
CN
2
Mutual Information
MI =
c∈C k∈K
p(c, k) log
p(c, k)
p(k)p(c)
Зоопарк алгоритмов
По способу формирования кластеров
иерархические (hierarchical, agglomerative)
поточечные (point assignment)
По типу пространства X
X – евклидово
X – не евклидово
По требованиям к памяти
обучающая выборка должна помещаться в основную память
поддерживает обработку данных кусками
Задача модуля
Классифицировать пользователей социальных сетей с
использованием реализованных в ДЗ алгоритмов классификации и
регрессии
Презентация 12.04.2014
1. Описание задачи (1-2 слайда)
1.1 Количество объектов в выборке
1.2 Распределение целевой переменной
1.3 Метод тестирования алгоритмов
2. Каждый участник группы представляет алгоритм (1-2 слайда)
2.1 Использованные признаки: распределения, преобразования
2.2 Алгоритм: реализация и выбор параметров
2.3 Метрики качества: результаты
3. Итоговый выбор (1-2 слайда)
3.1 Какой выбран алгоритм
3.2 Труднсти
Итог: 6-12 слайдов на группу, 15 мин на доклад, 30 (20 + 10) баллов
ДЗ
Использование готового алгорима = половина баллов (если не
оговорено обратное)
Общие замечания
1. Дедлайны
2. Интерфейс классификаторов: fit/predict/predict_proba
Пожелания
1. PEP-8
2. Коменты
3. Адекватный текст коммитов
Обсуждение
1. Процедура сабмита ДЗ
2. Размер группы
Практика: итеративный алгоритм
1. Скачать ветку clust из репозитория и убедиться, что все
работает
2. Проверить, что предложенный алгоритм кластеризации не
является глобальным
3. Реализовать n-restart алгоритма для обеспечения глобальности
4. Поэкспериментировать с раздичными линейными
преобразованиями пространства
5. (*) Реализовать критерий оптимальности, инвариантный
относительно преобразований

More Related Content

What's hot

Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"Technosphere1
 
Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes" Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes" Technosphere1
 
Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №10 "Алгоритмические композиции. Завершение" Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №10 "Алгоритмические композиции. Завершение" Technosphere1
 
Лекция №7 "Машина опорных векторов"
Лекция №7 "Машина опорных векторов" Лекция №7 "Машина опорных векторов"
Лекция №7 "Машина опорных векторов" Technosphere1
 
Лекция №6 "Линейные модели для классификации и регрессии"
Лекция №6 "Линейные модели для классификации и регрессии" Лекция №6 "Линейные модели для классификации и регрессии"
Лекция №6 "Линейные модели для классификации и регрессии" Technosphere1
 
Лекция №8 "Методы снижения размерности пространства"
Лекция №8 "Методы снижения размерности пространства" Лекция №8 "Методы снижения размерности пространства"
Лекция №8 "Методы снижения размерности пространства" Technosphere1
 
Лекция №1 "Задачи Data Mining"
Лекция №1 "Задачи Data Mining" Лекция №1 "Задачи Data Mining"
Лекция №1 "Задачи Data Mining" Technosphere1
 
Лекция №9 "Алгоритмические композиции. Начало"
Лекция №9 "Алгоритмические композиции. Начало"Лекция №9 "Алгоритмические композиции. Начало"
Лекция №9 "Алгоритмические композиции. Начало"Technosphere1
 
Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана" Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана" Technosphere1
 
Многочлены наилучших среднеквадратичных приближений
Многочлены наилучших среднеквадратичных приближенийМногочлены наилучших среднеквадратичных приближений
Многочлены наилучших среднеквадратичных приближенийTheoretical mechanics department
 
Решение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементовРешение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементовTheoretical mechanics department
 
20110403 quantum algorithms_vyali_lecture03
20110403 quantum algorithms_vyali_lecture0320110403 quantum algorithms_vyali_lecture03
20110403 quantum algorithms_vyali_lecture03Computer Science Club
 
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...Nikolay Grebenshikov
 
Лекция №13 "Глубокие нейронные сети"
Лекция №13 "Глубокие нейронные сети" Лекция №13 "Глубокие нейронные сети"
Лекция №13 "Глубокие нейронные сети" Technosphere1
 
Лекция №11 "Основы нейронных сетей"
Лекция №11 "Основы нейронных сетей" Лекция №11 "Основы нейронных сетей"
Лекция №11 "Основы нейронных сетей" Technosphere1
 
Структурное обучение и S-SVM
Структурное обучение и S-SVMСтруктурное обучение и S-SVM
Структурное обучение и S-SVMromovpa
 
Сергей Герасимов (ВМК МГУ), Александр Мещеряков (Институт космических исследо...
Сергей Герасимов (ВМК МГУ), Александр Мещеряков (Институт космических исследо...Сергей Герасимов (ВМК МГУ), Александр Мещеряков (Институт космических исследо...
Сергей Герасимов (ВМК МГУ), Александр Мещеряков (Институт космических исследо...Mail.ru Group
 
20110224 systems of_typed_lambda_calculi_moskvin_lecture02
20110224 systems of_typed_lambda_calculi_moskvin_lecture0220110224 systems of_typed_lambda_calculi_moskvin_lecture02
20110224 systems of_typed_lambda_calculi_moskvin_lecture02Computer Science Club
 
Дмитрий Кропотов, ВМК МГУ, Группа Байесовских Методов, «Методы оптимизации бо...
Дмитрий Кропотов, ВМК МГУ, Группа Байесовских Методов, «Методы оптимизации бо...Дмитрий Кропотов, ВМК МГУ, Группа Байесовских Методов, «Методы оптимизации бо...
Дмитрий Кропотов, ВМК МГУ, Группа Байесовских Методов, «Методы оптимизации бо...Mail.ru Group
 

What's hot (20)

Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
 
Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes" Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes"
 
Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №10 "Алгоритмические композиции. Завершение" Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №10 "Алгоритмические композиции. Завершение"
 
Лекция №7 "Машина опорных векторов"
Лекция №7 "Машина опорных векторов" Лекция №7 "Машина опорных векторов"
Лекция №7 "Машина опорных векторов"
 
Лекция №6 "Линейные модели для классификации и регрессии"
Лекция №6 "Линейные модели для классификации и регрессии" Лекция №6 "Линейные модели для классификации и регрессии"
Лекция №6 "Линейные модели для классификации и регрессии"
 
Лекция №8 "Методы снижения размерности пространства"
Лекция №8 "Методы снижения размерности пространства" Лекция №8 "Методы снижения размерности пространства"
Лекция №8 "Методы снижения размерности пространства"
 
Лекция №1 "Задачи Data Mining"
Лекция №1 "Задачи Data Mining" Лекция №1 "Задачи Data Mining"
Лекция №1 "Задачи Data Mining"
 
Лекция №9 "Алгоритмические композиции. Начало"
Лекция №9 "Алгоритмические композиции. Начало"Лекция №9 "Алгоритмические композиции. Начало"
Лекция №9 "Алгоритмические композиции. Начало"
 
Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана" Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана"
 
Многочлены наилучших среднеквадратичных приближений
Многочлены наилучших среднеквадратичных приближенийМногочлены наилучших среднеквадратичных приближений
Многочлены наилучших среднеквадратичных приближений
 
Решение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементовРешение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементов
 
20110403 quantum algorithms_vyali_lecture03
20110403 quantum algorithms_vyali_lecture0320110403 quantum algorithms_vyali_lecture03
20110403 quantum algorithms_vyali_lecture03
 
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
 
Лекция №13 "Глубокие нейронные сети"
Лекция №13 "Глубокие нейронные сети" Лекция №13 "Глубокие нейронные сети"
Лекция №13 "Глубокие нейронные сети"
 
Лекция №11 "Основы нейронных сетей"
Лекция №11 "Основы нейронных сетей" Лекция №11 "Основы нейронных сетей"
Лекция №11 "Основы нейронных сетей"
 
Структурное обучение и S-SVM
Структурное обучение и S-SVMСтруктурное обучение и S-SVM
Структурное обучение и S-SVM
 
Линейные многошаговые методы
Линейные многошаговые методыЛинейные многошаговые методы
Линейные многошаговые методы
 
Сергей Герасимов (ВМК МГУ), Александр Мещеряков (Институт космических исследо...
Сергей Герасимов (ВМК МГУ), Александр Мещеряков (Институт космических исследо...Сергей Герасимов (ВМК МГУ), Александр Мещеряков (Институт космических исследо...
Сергей Герасимов (ВМК МГУ), Александр Мещеряков (Институт космических исследо...
 
20110224 systems of_typed_lambda_calculi_moskvin_lecture02
20110224 systems of_typed_lambda_calculi_moskvin_lecture0220110224 systems of_typed_lambda_calculi_moskvin_lecture02
20110224 systems of_typed_lambda_calculi_moskvin_lecture02
 
Дмитрий Кропотов, ВМК МГУ, Группа Байесовских Методов, «Методы оптимизации бо...
Дмитрий Кропотов, ВМК МГУ, Группа Байесовских Методов, «Методы оптимизации бо...Дмитрий Кропотов, ВМК МГУ, Группа Байесовских Методов, «Методы оптимизации бо...
Дмитрий Кропотов, ВМК МГУ, Группа Байесовских Методов, «Методы оптимизации бо...
 

Similar to L7:Задача кластеризации. Метрики качества

Анализ данных. Лекция 2
Анализ данных. Лекция 2Анализ данных. Лекция 2
Анализ данных. Лекция 2Sergey Khlebnikov
 
20090913 algorithmsfornphardproblems kulikov_lecture02
20090913 algorithmsfornphardproblems kulikov_lecture0220090913 algorithmsfornphardproblems kulikov_lecture02
20090913 algorithmsfornphardproblems kulikov_lecture02Computer Science Club
 
Статистическое сравнение классификаторов
Статистическое сравнение классификаторовСтатистическое сравнение классификаторов
Статистическое сравнение классификаторовAnton Konushin
 
03 кластеризация документов
03 кластеризация документов03 кластеризация документов
03 кластеризация документовLidia Pivovarova
 
2013 04 25_bigData_lecture_10
2013 04 25_bigData_lecture_102013 04 25_bigData_lecture_10
2013 04 25_bigData_lecture_10Roman Brovko
 
!Predictive analytics part_2
!Predictive analytics part_2!Predictive analytics part_2
!Predictive analytics part_2Vladimir Krylov
 
20091108 algorithmsfornphardproblems kulikov_lecture08
20091108 algorithmsfornphardproblems kulikov_lecture0820091108 algorithmsfornphardproblems kulikov_lecture08
20091108 algorithmsfornphardproblems kulikov_lecture08Computer Science Club
 
Classifier evaluation and comparison
Classifier evaluation and comparisonClassifier evaluation and comparison
Classifier evaluation and comparisonAnton Konushin
 
Нейронные сети и Keras. Часть 1
Нейронные сети и Keras. Часть 1Нейронные сети и Keras. Часть 1
Нейронные сети и Keras. Часть 1PyNSK
 
Лекция 12. Быстрее, Python, ещё быстрее.
Лекция 12. Быстрее, Python, ещё быстрее.Лекция 12. Быстрее, Python, ещё быстрее.
Лекция 12. Быстрее, Python, ещё быстрее.Roman Brovko
 
Data Mining - lecture 4 - 2014
Data Mining - lecture 4 - 2014Data Mining - lecture 4 - 2014
Data Mining - lecture 4 - 2014Andrii Gakhov
 
20071111 efficientalgorithms kulikov_lecture06
20071111 efficientalgorithms kulikov_lecture0620071111 efficientalgorithms kulikov_lecture06
20071111 efficientalgorithms kulikov_lecture06Computer Science Club
 
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.Anton Konushin
 
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...Computer Science Club
 
Логические алгоритмы классификации
Логические алгоритмы классификацииЛогические алгоритмы классификации
Логические алгоритмы классификацииyaevents
 
Михаил Рыбалкин. Перестановочные многочлены.
Михаил Рыбалкин. Перестановочные многочлены.Михаил Рыбалкин. Перестановочные многочлены.
Михаил Рыбалкин. Перестановочные многочлены.LiloSEA
 
Supervised ML in Practice: Tips & Tricks
Supervised ML in Practice:  Tips & TricksSupervised ML in Practice:  Tips & Tricks
Supervised ML in Practice: Tips & TricksDzianis Pirshtuk
 
Karkas интеллектуальный анализ
Karkas интеллектуальный анализKarkas интеллектуальный анализ
Karkas интеллектуальный анализVladimir Burdaev
 

Similar to L7:Задача кластеризации. Метрики качества (20)

Анализ данных. Лекция 2
Анализ данных. Лекция 2Анализ данных. Лекция 2
Анализ данных. Лекция 2
 
20090913 algorithmsfornphardproblems kulikov_lecture02
20090913 algorithmsfornphardproblems kulikov_lecture0220090913 algorithmsfornphardproblems kulikov_lecture02
20090913 algorithmsfornphardproblems kulikov_lecture02
 
817996.pptx
817996.pptx817996.pptx
817996.pptx
 
Статистическое сравнение классификаторов
Статистическое сравнение классификаторовСтатистическое сравнение классификаторов
Статистическое сравнение классификаторов
 
03 кластеризация документов
03 кластеризация документов03 кластеризация документов
03 кластеризация документов
 
презентация к уроку 1
презентация к уроку 1презентация к уроку 1
презентация к уроку 1
 
2013 04 25_bigData_lecture_10
2013 04 25_bigData_lecture_102013 04 25_bigData_lecture_10
2013 04 25_bigData_lecture_10
 
!Predictive analytics part_2
!Predictive analytics part_2!Predictive analytics part_2
!Predictive analytics part_2
 
20091108 algorithmsfornphardproblems kulikov_lecture08
20091108 algorithmsfornphardproblems kulikov_lecture0820091108 algorithmsfornphardproblems kulikov_lecture08
20091108 algorithmsfornphardproblems kulikov_lecture08
 
Classifier evaluation and comparison
Classifier evaluation and comparisonClassifier evaluation and comparison
Classifier evaluation and comparison
 
Нейронные сети и Keras. Часть 1
Нейронные сети и Keras. Часть 1Нейронные сети и Keras. Часть 1
Нейронные сети и Keras. Часть 1
 
Лекция 12. Быстрее, Python, ещё быстрее.
Лекция 12. Быстрее, Python, ещё быстрее.Лекция 12. Быстрее, Python, ещё быстрее.
Лекция 12. Быстрее, Python, ещё быстрее.
 
Data Mining - lecture 4 - 2014
Data Mining - lecture 4 - 2014Data Mining - lecture 4 - 2014
Data Mining - lecture 4 - 2014
 
20071111 efficientalgorithms kulikov_lecture06
20071111 efficientalgorithms kulikov_lecture0620071111 efficientalgorithms kulikov_lecture06
20071111 efficientalgorithms kulikov_lecture06
 
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.
 
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...
 
Логические алгоритмы классификации
Логические алгоритмы классификацииЛогические алгоритмы классификации
Логические алгоритмы классификации
 
Михаил Рыбалкин. Перестановочные многочлены.
Михаил Рыбалкин. Перестановочные многочлены.Михаил Рыбалкин. Перестановочные многочлены.
Михаил Рыбалкин. Перестановочные многочлены.
 
Supervised ML in Practice: Tips & Tricks
Supervised ML in Practice:  Tips & TricksSupervised ML in Practice:  Tips & Tricks
Supervised ML in Practice: Tips & Tricks
 
Karkas интеллектуальный анализ
Karkas интеллектуальный анализKarkas интеллектуальный анализ
Karkas интеллектуальный анализ
 

More from Technosphere1

L13: Заключительная
L13: ЗаключительнаяL13: Заключительная
L13: ЗаключительнаяTechnosphere1
 
Л9: Взаимодействие веб-приложений
Л9: Взаимодействие веб-приложенийЛ9: Взаимодействие веб-приложений
Л9: Взаимодействие веб-приложенийTechnosphere1
 
Л8 Django. Дополнительные темы
Л8 Django. Дополнительные темыЛ8 Django. Дополнительные темы
Л8 Django. Дополнительные темыTechnosphere1
 
Мастер-класс: Особенности создания продукта для мобильного веб
Мастер-класс: Особенности создания продукта для мобильного вебМастер-класс: Особенности создания продукта для мобильного веб
Мастер-класс: Особенности создания продукта для мобильного вебTechnosphere1
 
Мастер-класс: "Интеграция в промышленную разработку"
Мастер-класс: "Интеграция в промышленную разработку"Мастер-класс: "Интеграция в промышленную разработку"
Мастер-класс: "Интеграция в промышленную разработку"Technosphere1
 
Webdev7: Обработка HTTP запросов. Django Views
Webdev7: Обработка HTTP запросов. Django ViewsWebdev7: Обработка HTTP запросов. Django Views
Webdev7: Обработка HTTP запросов. Django ViewsTechnosphere1
 
L8: Л7 Em-алгоритм
L8: Л7 Em-алгоритмL8: Л7 Em-алгоритм
L8: Л7 Em-алгоритмTechnosphere1
 
L4: Решающие деревья
L4: Решающие деревьяL4: Решающие деревья
L4: Решающие деревьяTechnosphere1
 
L1 Вводная лекция. Обзор основных задач Data Science (Лекция №1)
L1 Вводная лекция. Обзор основных задач Data Science (Лекция №1)L1 Вводная лекция. Обзор основных задач Data Science (Лекция №1)
L1 Вводная лекция. Обзор основных задач Data Science (Лекция №1)Technosphere1
 

More from Technosphere1 (11)

L13: Заключительная
L13: ЗаключительнаяL13: Заключительная
L13: Заключительная
 
Л9: Взаимодействие веб-приложений
Л9: Взаимодействие веб-приложенийЛ9: Взаимодействие веб-приложений
Л9: Взаимодействие веб-приложений
 
Л8 Django. Дополнительные темы
Л8 Django. Дополнительные темыЛ8 Django. Дополнительные темы
Л8 Django. Дополнительные темы
 
Webdev7 (2)
Webdev7 (2)Webdev7 (2)
Webdev7 (2)
 
Мастер-класс: Особенности создания продукта для мобильного веб
Мастер-класс: Особенности создания продукта для мобильного вебМастер-класс: Особенности создания продукта для мобильного веб
Мастер-класс: Особенности создания продукта для мобильного веб
 
Web лекция 1
Web   лекция 1Web   лекция 1
Web лекция 1
 
Мастер-класс: "Интеграция в промышленную разработку"
Мастер-класс: "Интеграция в промышленную разработку"Мастер-класс: "Интеграция в промышленную разработку"
Мастер-класс: "Интеграция в промышленную разработку"
 
Webdev7: Обработка HTTP запросов. Django Views
Webdev7: Обработка HTTP запросов. Django ViewsWebdev7: Обработка HTTP запросов. Django Views
Webdev7: Обработка HTTP запросов. Django Views
 
L8: Л7 Em-алгоритм
L8: Л7 Em-алгоритмL8: Л7 Em-алгоритм
L8: Л7 Em-алгоритм
 
L4: Решающие деревья
L4: Решающие деревьяL4: Решающие деревья
L4: Решающие деревья
 
L1 Вводная лекция. Обзор основных задач Data Science (Лекция №1)
L1 Вводная лекция. Обзор основных задач Data Science (Лекция №1)L1 Вводная лекция. Обзор основных задач Data Science (Лекция №1)
L1 Вводная лекция. Обзор основных задач Data Science (Лекция №1)
 

L7:Задача кластеризации. Метрики качества

  • 1. Введение в Data Science Занятие 6. Кластеризация Николай Анохин Михаил Фирулик 9 апреля 2014 г.
  • 2. План занятия Задача кластеризации Функции расстояния Критерии качества кластеризации
  • 5. Интуиция Кластерный анализ Разбиение множества обучающих объектов на непересекающиеся подмножества (кластеры) с использованием некоторой функции расстояния между объектами так, чтобы любые два объекта, лежащие в одном кластере были схожи, а любые два объекта, лежащие в разных кластерах существенно различались.
  • 6. Зачем расширение обучающей выборки ручная разметка объектов конструирование признаков суммаризация данных визуализация данных
  • 7. Формально Дано: Обучающая выборка (x1, . . . , xN ), где xj – объект, принадлежащий некоторому множеству X На X определена функция расстояния (схожести) Найти: Разбиение f : X → C, где C = {1, . . . , K} – множество идентификаторов K кластеров.
  • 8. Функция расстояния Def Функция d(x, y) : X × X → R является функцией расстояния, определенной на пространстве X тогда и только тогда, когда ∀x ∈ X, ∀y ∈ X, ∀z ∈ X выполнено: 1. d(x, y) ≥ 0 2. d(x, y) = 0 ⇔ x = y 3. d(x, y) = d(y, x) 4. d(x, y) ≤ d(x, z) + d(y, z)
  • 9. Расстояния 1 Минковского dr (x, y) =   N j=1 |xj − yj |r   1 r Евклидово r = 2 dE (x, y) = d2(x, y) Манхэттэн r = 1 dM (x, y) = d1(x, y) r = ∞ d∞(x, y) = max j |xj − yj |
  • 10. Проблема Функции расстояния чувствительны к преобразоаниям данных Решение Преобразовать обучающую выборку так, чтобы признаки имели нулевое среднее и единичную дисперсию – инвариантность к растяжению и сдвигу (stanartize) Преобразовать обучающую выборку так, чтобы оси совпадали с главными компонентами матрицы ковариации – инвариантность относительно поворотов (PCA)
  • 11. Расстояния 2 Жаккар dJ (x, y) = 1 − |x ∩ y| |x ∪ y| Косинус dc (x, y) = arccos xy x y Правки de – наименьшее количество удалений и вставок, приводящее x к y. Хэмминг dH – количество различных компонент в x и y.
  • 12. Проклятие размерности Задача Даны два случайных вектора x и y в пространстве размерности D. Как зависит математическое ожидание косинус-расстояния между x и y от размерности D? dc (x, y) = arccos D j=1 xj yj D j=1 x2 j D j=1 y2 j Наблюдения: числитель стремится к нулю знаменатель положительный Вывод: dc (x, y) → π 2 .
  • 13. Выбор разбиения Идея Определить критерий качества кластеризации J и выбрать разбиение выборки на кластеры, которое которое соответствует оптимальному значению этого критерия.
  • 14. Квардатичная ошибка Среднее k-го кластера mk = 1 nk xi ∈Ck xi Критерий JE = K k=1 xi ∈Ck xi − mk 2 → min Предпочтение кластерам близких размеров
  • 15. Обобщение квадратичной ошибки Критерий JE = K k=1 xi ∈Ck xi − mk 2 = = 1 2 K k=1 nk   1 n2 k xi ∈Ck xj ∈Ck xi − xj 2   = = 1 2 K k=1 nk   1 n2 k xi ∈Ck xj ∈Ck s(xi , xj )   = 1 2 K k=1 nk¯sk Примеры ¯si ¯sk = min xi ,xj s(xi , xj ); ¯sk = max xi ,xj s(xi , xj )
  • 16. Матрицы разброса Матрица разброса внутри кластеров Sk = xi ∈Ck (xi − mk )(xi − mk ) ; SW = K k=1 Sk Матрица разброса между кластерами SB = K k=1 nk (mk − m)(mk − m) Матрица разброса ST = xi ∈X (xi − m)(xi − m) ST = SW + SB
  • 17. Критерии След JE = trSW = K k=1 xi ∈CK xi − mk 2 → min Детерминант (инвариант относительно растяжения) Jd = det SW → min Инварианты отностиельно линейных преобразований Jl = trS−1 W SB = d j=1 λj → max, Jf = d j=1 1 1 + λj → min λ1, . . . , λd – собственные числа S−1 W SB
  • 18. Итеративный алгоритм Критерий Jk = xi ∈Ck xi − mk 2 , mk = 1 nk xi ∈Ck xi Переносим ˆx из кластера l в кластер k m∗ k = mk + ˆx − mk nk + 1 , J∗ k = Jk + nk nk + 1 ˆx − mk 2 m∗ l = ml − ˆx − ml nl − 1 , J∗ l = Jl − nl nl − 1 ˆx − ml 2 Перенос имеет смысл, если nl nl − 1 ˆx − ml 2 > nk nk + 1 ˆx − mk 2
  • 19. Итеративный алгоритм cluster(X, K): инициализируем C1, . . . , CK , n1, . . . , nK do: случайно выбираем ˆx ∈ X if nl > 1: k∗ = arg mink J∗ перемещаем ˆx в k∗ until кластеры стабильны или превышено число итераций + Обучение online — Локальная оптимизация — Зависимость от порядка рассмотрения x
  • 20. Качество кластеризации Задача Пусть дана обучающая выборка, для которой правильная кластеризация C известна. С помощью выбранного алгоритма получена кластеризация K. Проверить, насколько K совпадает с C. Rand Index a – кол-во пар объектов, попавших в один кластер и в C, и в K b – кол-во пар объектов, попавших в разные кластеры и в C, и в K RI = a + b CN 2 Mutual Information MI = c∈C k∈K p(c, k) log p(c, k) p(k)p(c)
  • 21. Зоопарк алгоритмов По способу формирования кластеров иерархические (hierarchical, agglomerative) поточечные (point assignment) По типу пространства X X – евклидово X – не евклидово По требованиям к памяти обучающая выборка должна помещаться в основную память поддерживает обработку данных кусками
  • 22. Задача модуля Классифицировать пользователей социальных сетей с использованием реализованных в ДЗ алгоритмов классификации и регрессии Презентация 12.04.2014 1. Описание задачи (1-2 слайда) 1.1 Количество объектов в выборке 1.2 Распределение целевой переменной 1.3 Метод тестирования алгоритмов 2. Каждый участник группы представляет алгоритм (1-2 слайда) 2.1 Использованные признаки: распределения, преобразования 2.2 Алгоритм: реализация и выбор параметров 2.3 Метрики качества: результаты 3. Итоговый выбор (1-2 слайда) 3.1 Какой выбран алгоритм 3.2 Труднсти Итог: 6-12 слайдов на группу, 15 мин на доклад, 30 (20 + 10) баллов
  • 23. ДЗ Использование готового алгорима = половина баллов (если не оговорено обратное) Общие замечания 1. Дедлайны 2. Интерфейс классификаторов: fit/predict/predict_proba Пожелания 1. PEP-8 2. Коменты 3. Адекватный текст коммитов Обсуждение 1. Процедура сабмита ДЗ 2. Размер группы
  • 24. Практика: итеративный алгоритм 1. Скачать ветку clust из репозитория и убедиться, что все работает 2. Проверить, что предложенный алгоритм кластеризации не является глобальным 3. Реализовать n-restart алгоритма для обеспечения глобальности 4. Поэкспериментировать с раздичными линейными преобразованиями пространства 5. (*) Реализовать критерий оптимальности, инвариантный относительно преобразований