BigData и Data Science: методы и инструменты

1,126 views

Published on

Published in: Technology

BigData и Data Science: методы и инструменты

  1. 1. BigData и Data Science: методы и инструменты Dmytro Karamshuk
  2. 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.”, OReilly 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. 3. ПримерДанные всего - 2.5B чекинов, 10М мест, 25М юзеров доступные через Twitter - 70М чекинов, 7M мест, 5М юзеровЗадачи● Рекомендация друзей● Рекомендация мест● Кластеризация людей на группы● Определение влиятельных пользователей● Определение границ районов города● Прогнозирование событий
  4. 4. Что необходимо● Инструменты и инфраструктура – хранение больших данных – паралельная обработка – иттеративная обработка ● Методы и алгоритмы – самообучение – эффективность при больших данных – возможность паралельная и иттеративной обработки
  5. 5. Инструменты
  6. 6. Концепция MapReduceЗадача: посчитать частоту появления слов во входных документах
  7. 7. Что требуется от программиста?
  8. 8. Еще пример – Page Rank ФормулаАлгоритм
  9. 9. Считаем Page Rank с MapReduce
  10. 10. Считаем Page Rank с MapReduce Шаг повторяется пока алгоритм не сойдется: разница между итерациями будет меньше указаной погрешности
  11. 11. Считаем Page Rank с MapReduce Материал взят из http://www.cs.toronto.edu/~jasper/PageRankForMapReduceSmall.pdf
  12. 12. Практическое использованиеHadoop - cамая популярная имплементация MapReduce● написан на Java● Apache project● множество доп. инстр.Elastic Map Reduce – одна из самых популярных инфраструктур● реализовано на Hadoop● минимальные затраты на конфигурацию, удобная система логов● гибкая система оплаты, относительно не дорого
  13. 13. Как устроен Elastic Map Reduce EC2
  14. 14. На что обратить внимание● тестим hadoop в standalone● не все алгоритмы подходят для MapReduce● требует подготовки данных● традиционные (реляционные) базы данных не подходят
  15. 15. Методы и Алгоритмы
  16. 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
  17. 17. Supervised Learning Decision Tree Linear Regression
  18. 18. Unsupervised LearningClustering Community Detection
  19. 19. Зачем нужен Machine Learning?● Задача: рекомендация друзей● Метод: основанные на близости в графа; основанные на сходстве профайлов (включаю историю); комбинация обоих
  20. 20. Зачем нужен Machine Learning?● Задача: кластеризация сошиал графа, определение влиятельных пользователей IMT CNR Cambridge Методы: методы на графах, спектральные методы, методы основанные на похожести (similarity)
  21. 21. Зачем нужен Machine Learning?● Задача: определение районов связанных мест в городе основываясь на сошиал медиа● Методы: любые методы кластеризации, важно определить связи между местами
  22. 22. Пример – Retail Location Problem● Задача: среди X предложенных районов в городе определить наиболее привлекательные с точки зрения будущей популярности
  23. 23. Популярность ресторанов● мы определяем популярность как количество чекинов в месте● активность пользователей варируется между разными местами – но примерно одинаковая среди одной сети ресторанов● популярность разных ресторанов варируется в зависимости от района● популярность ресторана является функцией характеристик района P = f(x)
  24. 24. Метод анализа● определяем район – как круг радиусом R вокруг ресторана● определяем различные характеристики района x : географические - плотность, конкуренция, разнообразие окружающих мест, привлекательность окружающих объектов и т.д. мобильность – общий трафик, входящий трафик, количество потенциальных клиентов и т.д.● обучаем функцию P = f(x)● вычисляем Pi для всех районов i● сортируем районы по Pi
  25. 25. Интересные метрики Наиболее привлекательные категории Jensens coefficients объектов для каждой сети● определенные на основе анализа частоты совместного расположение объектов двух категорий - Jensens coefficients Transition probabilities● определенные на основе анализа переходов между объектами разных категорий - Transition probabilities
  26. 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. 27. Что почерпнуть из сказанного● делать Data Science и работать с Большими Данными просто!● но, нужно освоить некоторые инструменты и методы● самые популярные инструменты: MapReduce, Hadoop, Amazon EMR● методы зависят от приложения, хороший метод – который решают проблему и делает ее быстро и эффективно● WEKA – хороший инструмент для практического machine learningа
  28. 28. Спасибо за внимание Dmytro Karamshuk PhD student @ IMT Lucca Research Associate @ IIT CNR di PisaVisiting Researcher @ Computer Lab, University of Cambridge email: karamshuk@gmail.com follow me on Twitter: @karamshuk

×