Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Data Mining #2 / Метрики классификации и регрессии. Метод ближайшего соседа

Data Mining #2 / Метрики классификации и регрессии. Метод ближайшего соседа

More Decks by Технострим Mail.ru Group

Transcript

  1. Напоминание Объект описывается вектором его наблюдаемых характеристик (признаков) и скрытых

    характеристик (целевая переменная). Существует некоторая функция Задача: имея ограниченный набор объектов, построить функцию , приближающую на всем множестве объектов Обучение с учителем — известны 1) Классификация — 2) Регрессия — x ∈ X y ∈ Y f : X → Y a : X → Y f {x1 , …, xN } = Xtrain , {y1 , …, yN } = Ytrain Xtrain , Ytrain Y = {1,…, M} Y = ℝ, Y = ℝ 4
  2. Напоминание Функция потерь — неотрицательная функция, показывающая величину ошибки алгоритма

    на объекте с ответом . Функционал качества Принцип минимизации эмпирического риска: , — семейство алгоритмов. Переобучение — << Формула обучения: Learning = Representation + Evaluation + Optimization Источник: homes.cs.washington.edu/~pedrod/papers/cacm12.pdf L(a, x, y) a x y Q(a, X, Y) = 1 N ∑N i=1 L(a, xi , yi ), xi ∈ X, yi ∈ Y a* = argmin A Q(a, Xtrain , Ytrain ) A Q(a, Xtrain , Ytrain ) Q(a, Xtest , Ytest ) 5
  3. Метрические алгоритмы Пусть обучающая выборка размера . Общая формула для

    классификации: Общая формула для регрессии: Непараметрический, ленивый алгоритм N a(x, Xtrain ) = argmax c N ∑ i=1 w(x, xi )I[yi = c], xi ∈ Xtrain a(x, Xtrain ) = ∑N i=1 w(x, xi )yi ∑N i=1 w(x, xi ) , xi ∈ Xtrain 10
  4. Задаем веса • Если ненулевой вес только у ближайшего объекта,

    то алгоритм называют алгоритмом ближайшего соседа • Если ненулевые веса для ближайших объектов, то алгоритм называют алгоритмом ближайших соседей (k-nearest neighbors, knn). Пусть — -тый ближайший сосед объекта • • • k k xi i x w(x, xi ) = 1/k w(x, xi ) = k + 1 − i k w(x, xi ) = αi, α ∈ (0,1) 11
  5. Задаем веса Проблема: в прошлом варианте никак не учитываем величину

    расстояния. , где — любая монотонно убывающая функция. Примеры: • • • w(x, xi ) = K(ρ(x, xi )) K(x) K(x) = 1 x + β K(x) = exp(−x) K(x) = αx, α ∈ (0,1) 12
  6. Структурные параметры Параметры, которые нельзя настраивать на обучающей выборке, будем

    называть структурными. Обучающую выборку нужно разделить на обучающую и валидационную. На ней настраиваем структурные параметры! 16 Параметры метрических алгоритмов настраивать на обучающей выборке? На тестовой? Почему? Q(a, X, Y) = 1 N ∑N i=1 L(a, xi , yi ), xi ∈ X, yi ∈ Y Переобучение возникает из-за излишней сложности модели
  7. Скользящий контроль 17 Качество зависит от объектов в валидации! Решение

    — скользящий контроль (cross-validation). В пределе, когда только 1 объект в тесте — LOO (leave one out).
  8. Оцениваем качество регрессии Функции потерь: 1. Квадратичная( — MSE) 2.

    Абсолютная( — MAE) 3. Логарифмическая ( — MSLE) 4. Абсолютная-процентная ( —MAPE) Q(a, X, Y) = 1 N ∑N i=1 L(a, xi , yi ), xi ∈ X, yi ∈ Y Q L(a, x, y) = (a(x) − y)2 Q L(a, x, y) = |a(x) − y| Q L(a, x, y) = (log(a(x) + 1) − log(y + 1))2 Q L(a, x, y) = |a(x) − y| y 18
  9. Оцениваем качество классификации • Accuracy (точность) — процент правильно классифицированных

    объектов • Precision (аккуратность) —процент правильно классифицированных объектов класса 1 среди всех объектов, которым алгоритм присвоил метку 1. • Recall (полнота) — процент правильно классифицированных объектов класса 1 среди всех объектов класса 1 • F1-score — среднее гармоническое Precision и Recall Тестовая выборка содержит 10 объектов класса 1 и 990 объектов класса 0. Какая точность у константного алгоритма? Почему именно среднее гармоническое? L(a, x, y) = [a(x) = y] F1 = 2 1 Precision + 1 Recall = 2 ⋅ Precision ⋅ Recall Precision + Recall 19
  10. Не всегда нужно разбивать случайно Нельзя никогда забывать, какую задачу

    мы решаем! Если выборка маленькая, то нужно сохранять баланс классов — stratified валидация. Как сделать валидацию в случае: • Спам-фильтра • Предсказания объема продаж на следующую неделю • Предсказания стоимости квартир для всего дома целиком 20
  11. Метрики Аксиомы: 1. , т.и.т.д 2. 3. Пусть — число

    признаков. Метрика Минковского (при не метрика): • — Евклидово расстояние • — Манхэттенское расстояние • — Растояние Чебышева (максимальное расстояние между двумя признакми) ρ(x, y) = 0 x = y ρ(x, y) = ρ(y, x) ρ(x, z) ≤ ρ(x, y) + ρ(y, z) D p ∈ (0,1) ρ(x, y) = ( D ∑ j=1 |xj − yj |p )1 p p = 2 p = 1 p = ∞ 22
  12. Нормировка признаков Нельзя так считать расстояния с признаками разных масштабов!

    Два виды нормировки: 1. Стандартизация — 2. Нормализация — В каком диапазоне будет лежать признак теперь? xj = xj − mean(xj) std(xj) xj = xj − min(xj) max(xj) − min(xj) 24 ρ(x, y) = ( D ∑ j=1 |xj − yj |p )1 p
  13. Расстояния на категориальных признаках 25 1. Расстояние Хэмминга — число

    категориальных признаков, которые имеют разные значения. 2. Счетчики — среднее значение признака/целевой переменной с такой категорией. При кодировании признака с помощью целевой переменной нельзя использовать целевую переменную данного объекта!
  14. Косинусное расстояние По определению скалярного произведения считаем угол между векторами:

    На практике обычно считают так: Косинусное расстояние часто используют для текстов. Почему? ρ(x, y) = α = arccos x ⋅ y |x||y| sim(x, y) = x ⋅ y |x||y| rho(x, y) = 1 − sim(x, y) 26
  15. Расстояние Джаккарда Как померить расстояние между множествами? Например, предложение —

    мешок (множество) слов. Приведите пример задачи, где удобно использовать расстояние над множествами ρ(X, Y) = 1 − X ∩ Y X ∪ Y 27
  16. Расстояние Левенштейна Минимальное количество операций вставки одного символа, удаления одного

    символа и замены одного символа на другой, необходимых для превращения одной строки в другую. В каких задачах часто применяется расстояние Левенштейна? ρ(kitten, sitting) = 3 28
  17. Metric learning Посчитали расстояние по вещественным признакам, по категориальным, строковое,

    для множеств... Как теперь все объединить? Как найти коэффициенты? ρ(x, y) = c1 ρ1 (x, y) + c2 ρ2 (x, y) + … 29
  18. Отбираем признаки Задача: найти и удалить вредные признаки. Какие признаки

    для нас вредные? • Перебрать все варианты и посмотреть качество (лучший, если признаков мало) • Посчитать корреляцию с целевой функцией и удалить шумные • Посчитать корреляцию всех пар признаков и удалить скоррелированные • Последовательно удалять худшие • Последовательно добавлять лучшие 32
  19. Резюме Алгоритм: • Наглядный, понятный • Идеально работает, если правильно

    выбрана метрика • Ленивый алгоритм, совсем не учится • Позволяет делать беспризнаковое распознавание • На признаковом распознавании, как правило, работает хуже других алгоритмов Какие можете придумать примеры беспризнакового распознавания? Какая сложность обучения алгоритма ближайшего соседа? Предсказания одного объекта? 33
  20. Сложность алгоритма Сложность обучения — (запоминаем выборку) Сложность предсказания —

    (считаем все расстояния) В таком виде это в real time системах это работать не будет! А для ближайших соседей? Зачем мы тогда все это учим? O(ND) O(ND) k 34
  21. Ускоряем базовый алгоритм 35 Источник: en.wikipedia.org/wiki/K-d_tree Структурируем признаковое пространство, чтобы

    по нему быстрее искать. • KD-tree • Ball tree Если признаков мало (несколько десятков), то сложность по числу объектов логарифмическая. Если много — линейная (проклятие размерности), внедрять нельзя!
  22. Приближенный поиск ближайших соседей В среднем имеют логарифмическую сложность даже

    для больших признаковых пространств. Примеры методов: • ANNOY — делим пространство случайными плоскостями, строим дерево • Navigable Small World — гуляем по графу тесного мира • FAISS — кластеризуем пространство и ищем расстояния до центров кластеров • LSH (Locality-sensitive hashing) — делаем хэш функцию, которая близким объектам присваивает близкие значения хэша На семинаре разбираем ANNOY! 36
  23. Применяют ли метрические алгоритмы? Применяют! Все большие поисковые/рекомендательные системы состоят

    из двух компонент: • Грубый отбор кандидатов • Использование финальной модели Быстрый приближенный поиск ближайших соседей идеально подходит под задачу выборов кандидатов. Величину можно подавать в финальную модель! ρ(x, y) 37