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

Data Mining #3 / Линейные модели регрессии

Data Mining #3 / Линейные модели регрессии

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

Transcript

  1. Содержание 1. Знакомимся с параметрическими алгоритмами и линейной регрессией 2.

    Улучшаем алгоритм 3. Разбираем задачу рекомендаций (семинар) 2
  2. Напоминание Решаем задачу обучения с учителем Функционал качества Принцип минимизации

    эмпирического риска: , — семейство алгоритмов. Формула обучения: Learning = Representation + Evaluation + Optimization Источник: homes.cs.washington.edu/~pedrod/papers/ cacm12.pdf 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 4
  3. Параметризация Функций которые идеально описывают обучающую выборку бесконечно много. Нужно

    сузить функциональное пространство перебора. Параметризуем искомую функцию модель описывается вектором весов . Тогда задача превращается в поиск весов: Примеры: a(x) a(x, w) w w* = argmin w Q(w, Xtrain , ytrain ) a(x, w) = x1 w1 + x2 w2 a(x, w) = x1 x2 x3 w1 a(x, w) = 1[x1 < w1 ] 5
  4. Пусть объект описывается признаками . Тогда модель: называется линейной моделью,

    где — -мерный вектор признаков Далее будем считать, что в векторе признаков есть тождественно равный единице признак , тогда формула упростится до: Representation: Параметры модели интерпретируемы. — значение, на которое изменится предсказание, если признак увеличить на единицу. Какая гипотеза лежит в основе линейной модели? D f1 , f2 , …fD a(x, w) = w0 + ∑D j=1 fj wj w D w1 , w2 , …wD f0 a(x, w) = ∑D j=0 fj wj = x ⋅ w wi fi 6 Representation
  5. Evaluation Если целевая переменная вещественное число, то такую модель называют

    линейной регрессией. Функции потерь: 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 7
  6. Optimization Как найти минимум? w* = argmin w 1 N

    N ∑ i=1 L(a(xi , w), yi ) = argmin w 1 N N ∑ i=1 L(xi ⋅ w, yi ), xi ∈ X, yi ∈ Y 8
  7. — матрица , — вектор весов , — вектор ответов

    — вектор предсказаний Источник: jakevdp.github.io/PythonDataScienceHandbook Q(X, w) = 1 N N ∑ i=1 (xi ⋅ w − yi )2 = 1 N ||X ⋅ w − y||2 X (N, D) w (D,1) y (N,1) X ⋅ w (N,1) 9 Optimization
  8. — градиент, вектор частных производных. Необходимое условие минимума — градиент

    равен нулю. Два правила векторного дифференцирования: Дома покажите, что это действительно минимум! ∇w Q(w) Q(w) = 1 N ||X ⋅ w − y||2 = 1 N (X ⋅ w − y)T(X ⋅ w − y) ∇w wTc = ∇w cTw = c; 2)∇w (wTCw) = (C + CT)w ∇w Q(w) = ∇w (wT XT Xw − wT XTy − yT Xw + yT y) = (XT X + XT X)w − 2XTy = 0 w = (XT X)−1XTy 10 Точное решение
  9. Точное решение Недостатки точного решения: • Можно написать только для

    очень редких функций потерь • Обращение матрицы — кубическая сложность • Матрица может быть плохо обусловенной, если есть ЛЗ признаки XT X rank(X) = rank(XT X) 11
  10. Итеративные методы оптимизации • Нулевого порядка: жадные алгоритмы, динамическое программирование,

    золотое сечение, метод парабол, имитация отжига, генетические алгоритмы и т.д. • Первого порядка: градиентный спуск, метод сопряженных градиентов, квазиньютоновские методы и т.д. • Второго порядка: ньютоновские методы. В курсе разбираем градиентный спуск. w* = argmin w 1 N N ∑ i=1 L(a(xi , w), yi ) 12
  11. Градиентный спуск Антиградиент функции показывает направления наискорейшего убывания функции. Ищем

    минимум 1. Выбрать начальную длину шага , начальное приближение 2. 3. 4. Повторять (2), (3) до сходимости или Можно качество на валидации использовать как критерий останова Q(w) α0 w0 wnew = wold − α∇w Q(wold ) α = f(k), k = k + 1 Q(w) w f(k) = α0 , f(k) = α0 k , f(k) = α0 kp , . . . 13
  12. Стохастическая оптимизация 1. Выбрать начальный шаг , начальное приближение ,

    размер батча 2. Выбрать случайно 3. Оценить градиент 4. 5. 6. Повторять (2 - 5) до сходимости Обычно перемешивают всю выборку случайно. Когда прошли все выборку, то говорят, что прошла одна эпоха • — градиентный спуск (Gradient Descent, GD) • — стохастический градиентный спуск (Stochastic Gradient Descent, SGD) • — мини-батч градиентный спуск (Mini-Batch Gradient Descent, MBGD) α0 w0 n {j1 , i2 , . . . jn } ∇w Q*(wold ) = 1 n ∑n j=1 ∇w L(wold , xj , yj ) wnew = wold − α∇w Q*(wold ) α = f(k), k = k + 1 n = N n = 1 n > 1,n < N 15
  13. Сходимость Градиентный спуск имеет линейную скорость сходимости. Стохастический градиентный спуск

    — сублинейную. Источник: niaohe.ise.illinois.edu/IE598_2016/pdf/IE598-lecture8- gradient%20descent.pdf 16
  14. Пример Делаем SGD: , где случайно от 1 до Сложность

    предсказания Сложность обучения одного шага Делаем GD: Сложность предсказания Сложность обучения одного шага Q(X, w) = 1 2N N ∑ i=1 (xi ⋅ w − yi )2 L(w, xi , yi ) = 1 2 (xi ⋅ w − yi )2 ∇w L(w, xi , yi ) = (xi ⋅ w − yi )xi wnew = wold − α(xi ⋅ wold − yi )xi i N O(D) O(D) wnew = wold − α∑N i=1 (xi ⋅ wold − yi )xi O(D) O(ND) 17
  15. Стохастическая оптимизация Почему это вообще работает? Для SGD равновероятно принимает

    N значений Матожидание величины по определению мат. ожидания То есть в среднем мы как раз идем в сторону антиградиента! j ∼ U(1,N), ∇w Q*(wold ) = ∇w L(wold , xj , yj ) ∇w L(wold , xj , yj ) ∇w L(wold , xj , yj ) 1 N N ∑ j=1 ∇w L(wold , xj , yj ) 18
  16. Резюме Линейная регрессия невероятно популярный алгоритм машинного обучения. Плюсы алгоритма:

    • Быстро учится • Быстро предсказывает • Легко интерпретируется • Легко хранить в памяти • Легко применять с дифференцируемой функцией потерь Весомый минус - не способен учитывать нелинейные зависимости в данных. 19
  17. Правильные признаки Параметры модели интерпретируемы. — значение, на которое изменится

    предсказание, если признак увеличить на единицу. Категориальные признаки кодируем: • One-hot кодирование - категориальный признак с значениями превращаем в бинарных признаков! • Кодирование через целевую переменную (нельзя включать переменную самого объекта) • Кодирование через вещественные признаки a(x, w) = ∑D j=0 fj wj = x ⋅ w wi fi k k 21
  18. Правильные признаки Для вещественных признаков применяем нелинейные функции - возводим

    в степень, берем синус и т.д Учитываем взаимодействия: • Пару вещественных перемножаем, делим и т.д. • Для пары бинарных используем логические операции Невозможно сделать правильное признаковое пространство без понимания самой задачи! a(x, w) = ∑D j=0 fj wj = x ⋅ w 22
  19. Нормализация данных Масштаб признаков важен для скорости сходимости Стартуем из

    c шагом = = А если так: • Стандартизация • Min-max нормализация f(x, y, z) = (x − 1)2 + (y − 1)2 + (z − 1)2 (0,0,0) 0.5 (x, y, z) (0,0,0)−0.5(−2, − 2, − 2) (1,1,1) f(x, y, z) = 1000(x − 1)2 + 200(y − 1)2 + (z − 1)2 fj = fj − mean( fj ) std( fj ) fj = fj − min( fj ) max( fj ) − min( fj ) 23
  20. Регуляризация Хотим еще сузить функциональное пространство , чтобы улучшить обобщающую

    способность. Наложим доп. штраф, если решение удаляется от нашего представления о правильном решении. - регуляризатор, - параметр регуляризации. Как подобрать параметр ? a(x) Qr (w) = Q(w) + αR(w) R(w) α α 24
  21. Регуляризация Большие веса — признак переобучения Базовые регуляризаторы, штрафующие большие

    значения весов: • регуляризация (Lasso регрессия). ; С ней не будет гладким! • регуляризация (Ridge регрессия). Дома вывести формулу точного для регуляризации L1 R(w) = ∑D j=1 |wj | Qr L2 R(w) = ∑D j=1 w2 j . L2 w = (XT X + λ ⋅ I)−1XTy 25
  22. Lasso Можно показать, что приводит к занулению весов, то есть

    автоматически отбирает важные признаки! Источник: Bishop L1 26
  23. Big data и линейная регрессия Стохастическая оптимизация позволяет не хранить

    данные в оперативной памяти! Взяли батч, обновили веса и сразу же его забыли. Позволяет легко обучаться на терабайтах данных. Рекомендую ознакомиться с библиотекой Vowpal Wabbit Online learning — обучение, когда прецеденты поступают потоком. 27
  24. Разреженные данные Чему равен градиент по компоненте в точках ?

    Разреженный формат данных - для каждого объекта храним словарь вида {номер ненулевого признака : значение} Приведите пример задачи с разреженными данными Q(X, w) = 1 2N N ∑ i=1 (xi ⋅ w − yi )2 L(w, xi , yi ) = 1 2 (xi ⋅ w − yi )2 ∇w L(w, xi , yi ) = (xi ⋅ w − yi )xi j xi,j = 0 28
  25. Разреженные данные Самый частый пример разреженных данных — тексты. Объект

    — текст, признак — наличие слова в тексте. Делаем one hot кодирование, получаем пространство размера словарь слов. Вместо бинарных признаков часто делают TF-IDF преобразование TF(t) = (сколько раз t встречался в тексте) / (длина текста). IDF(t) =log_e(число текстов/ число текстов с t). 29