l7:Задача кластеризации. Метрики качества
DESCRIPTION
L7:Задача кластеризации. Метрики качестваTRANSCRIPT
Введение в Data ScienceЗанятие 6. Кластеризация
Николай Анохин Михаил Фирулик
9 апреля 2014 г.
План занятия
Задача кластеризации
Функции расстояния
Критерии качества кластеризации
Python-программисты (by Gilad Lotan)
Слова и топики
Интуиция
Кластерный анализРазбиение множества обучающих объектов на непересекающиесяподмножества (кластеры) с использованием некоторой функциирасстояния между объектами так, чтобы любые два объекта,лежащие в одном кластере были схожи, а любые два объекта,лежащие в разных кластерах существенно различались.
Зачем
I расширение обучающей выборкиI ручная разметка объектовI конструирование признаков
I суммаризация данныхI визуализация данных
Формально
Дано:I Обучающая выборка (x1, . . . , xN), где xj – объект,
принадлежащий некоторому множеству X
I На 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
I Минковского
dr (x, y) =
N∑j=1
|xj − yj |r 1
r
I Евклидово r = 2
dE (x, y) = d2(x, y)
I Манхэттэн r = 1
dM(x, y) = d1(x, y)
I r =∞
d∞(x, y) = maxj|xj − yj |
Проблема
Функции расстояния чувствительны к преобразоаниям данных
РешениеI Преобразовать обучающую выборку так, чтобы признаки имели
нулевое среднее и единичную дисперсию – инвариантность крастяжению и сдвигу (stanartize)
I Преобразовать обучающую выборку так, чтобы оси совпадали сглавными компонентами матрицы ковариации – инвариантностьотносительно поворотов (PCA)
Расстояния 2
I Жаккар
dJ(x, y) = 1− |x ∩ y||x ∪ y|
I Косинус
dc(x, y) = arccosxy
‖x‖‖y‖
I Правкиde – наименьшее количествоудалений и вставок, приводящее x кy.
I ХэммингdH – количество различныхкомпонент в x и y.
Проклятие размерности
ЗадачаДаны два случайных вектора x и y в пространстве размерности D.Как зависит математическое ожидание косинус-расстояния между xи y от размерности D?
dc(x, y) = arccos
∑Dj=1 xjyj∑D
j=1 x2j
∑Dj=1 y
2j
Наблюдения:I числитель стремится к нулюI знаменатель положительный
Вывод: 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
n2k
∑xi∈Ck
∑xj∈Ck
‖xi − xj‖2 =
=1
2
K∑k=1
nk
1
n2k
∑xi∈Ck
∑xj∈Ck
s(xi , xj)
=1
2
K∑k=1
nk s̄k
Примеры s̄is̄k = min
xi ,xjs(xi , xj); s̄k = max
xi ,xjs(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
Критерии
I След
JE = trSW =K∑
k=1
∑xi∈CK
‖xi −mk‖2 → min
I Детерминант (инвариант относительно растяжения)
Jd = detSW → min
I Инварианты отностиельно линейных преобразований
Jl = trS−1W SB =d∑
j=1
λj → max, Jf =d∑
j=1
1
1 + λj→ min
λ1, . . . , λd – собственные числа S−1W 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 +
nknk + 1
‖x̂−mk‖2
m∗l = ml −x̂−ml
nl − 1, J∗l = Jl −
nlnl − 1
‖x̂−ml‖2
Перенос имеет смысл, если
nlnl − 1
‖x̂−ml‖2 >nk
nk + 1‖x̂−mk‖2
Итеративный алгоритм
cluster(X, K):инициализируем C1, . . . ,CK, n1, . . . , nKdo:
случайно выбираем x̂ ∈ Xif nl > 1:
k∗ = arg mink J∗
перемещаем x̂ в k∗
until кластеры стабильны или превышено число итераций
+ Обучение online— Локальная оптимизация— Зависимость от порядка рассмотрения x
Качество кластеризации
ЗадачаПусть дана обучающая выборка, для которой правильнаякластеризация C известна. С помощью выбранного алгоритмаполучена кластеризация K . Проверить, насколько K совпадает с C .
I Rand Indexa – кол-во пар объектов, попавших в один кластер и в C , и в Kb – кол-во пар объектов, попавших в разные кластеры и в C , и в K
RI =a+ b
CN2
I Mutual Information
MI =∑c∈C
∑k∈K
p(c, k) logp(c, k)
p(k)p(c)
Зоопарк алгоритмов
По способу формирования кластеровI иерархические (hierarchical, agglomerative)I поточечные (point assignment)
По типу пространства X
I X – евклидовоI X – не евклидово
По требованиям к памятиI обучающая выборка должна помещаться в основную памятьI поддерживает обработку данных кусками
Задача модуля
Классифицировать пользователей социальных сетей сиспользованием реализованных в ДЗ алгоритмов классификации ирегрессии
Презентация 12.04.20141. Описание задачи (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-82. Коменты3. Адекватный текст коммитов
Обсуждение1. Процедура сабмита ДЗ2. Размер группы
Практика: итеративный алгоритм
1. Скачать ветку clust из репозитория и убедиться, что всеработает
2. Проверить, что предложенный алгоритм кластеризации неявляется глобальным
3. Реализовать n-restart алгоритма для обеспечения глобальности4. Поэкспериментировать с раздичными линейными
преобразованиями пространства5. (*) Реализовать критерий оптимальности, инвариантный
относительно преобразований