1. BigData и Data Science: методы и инструменты
Dmytro Karamshuk
2. Эра Больших Данных (BigData)
Что понимают под Большими Данными (Big Data)?
● “Big data is data that exceeds the processing capacity of conventional database
systems. The data is too big, moves too fast, or doesn’t fit the structure of your
database architectures.”, O'Reilly Strata Conference
● “Every day, we create 2.5 quintillion bytes of data — so much that 90% of the
data in the world today has been created in the last two years alone. This data
comes from everywhere: sensors used to gather climate information, posts to
social media sites, digital pictures and videos, purchase transaction records,
and cell phone GPS signals to name a few. This data is big data.”, IBM
Шум вокруг BigData очень напоминает Web 2.0 в 2004-ом
3. Пример
Данные
всего - 2.5B чекинов, 10М мест, 25М юзеров
доступные через Twitter - 70М чекинов, 7M мест, 5М юзеров
Задачи
● Рекомендация друзей
● Рекомендация мест
● Кластеризация людей на группы
● Определение влиятельных пользователей
● Определение границ районов города
● Прогнозирование событий
4. Что необходимо
● Инструменты и инфраструктура
– хранение больших данных
– паралельная обработка
– иттеративная обработка
● Методы и алгоритмы
– самообучение
– эффективность при больших данных
– возможность паралельная и иттеративной
обработки
10. Считаем Page Rank с MapReduce
Шаг повторяется пока алгоритм не сойдется:
разница между итерациями будет меньше
указаной погрешности
11. Считаем Page Rank с MapReduce
Материал взят из
http://www.cs.toronto.edu/~jasper/PageRankForMapReduceSmall.pdf
12. Практическое использование
Hadoop - cамая популярная имплементация MapReduce
● написан на Java
● Apache project
● множество доп. инстр.
Elastic Map Reduce – одна из самых популярных инфраструктур
● реализовано на Hadoop
● минимальные затраты на конфигурацию, удобная система логов
● гибкая система оплаты, относительно не дорого
14. На что обратить внимание
● тестим hadoop в standalone
● не все алгоритмы подходят для MapReduce
● требует подготовки данных
● традиционные (реляционные) базы данных не
подходят
16. Machine Learning
ДАННЫЕ ЗАДАЧА
Объект 1: [x11, x12, x13, x14, ..., x1n], y1 предпологая что yi = f(xij) необходимо
определить f
Объект 2: [x21, x22, x23, x24, ..., x2n], yn
............................................................. при этом предусматривается что f
пренадлежит определенному классу
Объект M: [xm1, xm2, xm3, xm4, ..., xmn], ym функций
xij – feature оптимальная функция подбирается
yi – class (или label)
путем минимизации определенной
Features и label могут быть разных типов ошибки
(бинарный, числовой, перечесляемый)
Пример:
- линейная функция yi = Ʃaj*xij +
b
- decision tree
19. Зачем нужен Machine Learning?
● Задача: рекомендация друзей
● Метод: основанные на близости в графа; основанные на
сходстве профайлов (включаю историю); комбинация обоих
20. Зачем нужен Machine Learning?
● Задача: кластеризация сошиал графа, определение влиятельных
пользователей
IMT
CNR
Cambridge
Методы: методы на графах, спектральные методы, методы
основанные на похожести (similarity)
21. Зачем нужен Machine Learning?
● Задача: определение районов связанных мест в городе
основываясь на сошиал медиа
● Методы: любые методы кластеризации, важно определить
связи между местами
22. Пример – Retail Location Problem
● Задача: среди X предложенных районов в городе определить
наиболее привлекательные с точки зрения будущей
популярности
23. Популярность ресторанов
● мы определяем популярность как количество чекинов в месте
● активность пользователей варируется между разными местами
– но примерно одинаковая среди одной сети ресторанов
● популярность разных ресторанов
варируется в зависимости от
района
● популярность ресторана является
функцией характеристик района
P = f(x)
24. Метод анализа
● определяем район – как круг радиусом R вокруг ресторана
● определяем различные характеристики района x :
географические - плотность, конкуренция, разнообразие окружающих мест,
привлекательность окружающих объектов и т.д.
мобильность – общий трафик, входящий трафик, количество потенциальных
клиентов и т.д.
● обучаем функцию P = f(x)
● вычисляем Pi для всех районов i
● сортируем районы по Pi
25. Интересные метрики
Наиболее привлекательные категории Jensen's coefficients
объектов для каждой сети
● определенные на основе анализа частоты
совместного расположение объектов двух
категорий - Jensen's coefficients
Transition probabilities
● определенные на основе анализа
переходов между объектами
разных категорий - Transition probabilities
26. Обучение и валидация
Обучение функции P = f(x) выполняется на существующих ресторанах с помощью
supervised learning алгоритмов.
● алгоритмы: linear regression, support vector
machine, model trees
● для обучение выбираем случайным образом
66% ресторанов (training set), валидацию
проводим на оставшихся 33% (testing set);
эксперимент повторяем N=1000 раз
● для валидации проверяем вероятность
попадания наиболее популярное место из
testing set в top-X% предсказанного рейтинга,
результат обобщаем среди всех
экспериментов Mean Accuracy@X%
● используются реализации алгоритмов из
WEKA machine learning framework
27. Что почерпнуть из сказанного
● делать Data Science и работать с Большими Данными просто!
● но, нужно освоить некоторые инструменты и методы
● самые популярные инструменты: MapReduce, Hadoop, Amazon
EMR
● методы зависят от приложения, хороший метод – который
решают проблему и делает ее быстро и эффективно
● WEKA – хороший инструмент для практического machine
learning'а
28. Спасибо за внимание
Dmytro Karamshuk
PhD student @ IMT Lucca
Research Associate @ IIT CNR di Pisa
Visiting Researcher @ Computer Lab, University of Cambridge
email: karamshuk@gmail.com
follow me on Twitter: @karamshuk