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

             Dmytro Karamshuk
Эра Больших Данных (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-ом
Пример
Данные
    всего - 2.5B чекинов, 10М мест, 25М юзеров
    доступные через Twitter - 70М чекинов, 7M мест, 5М юзеров
Задачи
●   Рекомендация друзей
●   Рекомендация мест
●   Кластеризация людей на группы
●   Определение влиятельных пользователей
●   Определение границ районов города
●   Прогнозирование событий
Что необходимо
●   Инструменты и инфраструктура
        –   хранение больших данных
        –   паралельная обработка
        –   иттеративная обработка

                 ●   Методы и алгоритмы
                        – самообучение
                        – эффективность при больших данных
                        – возможность паралельная и иттеративной
                            обработки
Инструменты
Концепция MapReduce
Задача: посчитать частоту появления слов во
           входных документах
Что требуется от программиста?
Еще пример – Page Rank
              Формула



Алгоритм
Считаем Page Rank с MapReduce
Считаем Page Rank с MapReduce




 Шаг повторяется пока алгоритм не сойдется:
  разница между итерациями будет меньше
           указаной погрешности
Считаем Page Rank с MapReduce




                           Материал взят из
  http://www.cs.toronto.edu/~jasper/PageRankForMapReduceSmall.pdf
Практическое использование


Hadoop - cамая популярная имплементация MapReduce
●   написан на Java
●   Apache project
●   множество доп. инстр.

Elastic Map Reduce – одна из самых популярных инфраструктур
●   реализовано на Hadoop
●   минимальные затраты на конфигурацию, удобная система логов
●   гибкая система оплаты, относительно не дорого
Как устроен Elastic Map Reduce

                  EC2
На что обратить внимание
●   тестим hadoop в standalone
●   не все алгоритмы подходят для MapReduce
●   требует подготовки данных
●   традиционные (реляционные) базы данных не
    подходят
Методы и Алгоритмы
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
Supervised Learning
         Decision Tree




        Linear Regression
Unsupervised Learning




Clustering      Community Detection
Зачем нужен Machine Learning?
●   Задача: рекомендация друзей




●   Метод: основанные на близости в графа; основанные на
    сходстве профайлов (включаю историю); комбинация обоих
Зачем нужен Machine Learning?
●   Задача: кластеризация сошиал графа, определение влиятельных
    пользователей
                                            IMT




               CNR




                                           Cambridge


    Методы: методы на графах, спектральные методы, методы
    основанные на похожести (similarity)
Зачем нужен Machine Learning?
●   Задача: определение районов связанных мест в городе
    основываясь на сошиал медиа




●   Методы: любые методы кластеризации, важно определить
    связи между местами
Пример – Retail Location Problem
●   Задача: среди X предложенных районов в городе определить
    наиболее привлекательные с точки зрения будущей
    популярности
Популярность ресторанов
●   мы определяем популярность как количество чекинов в месте
●   активность пользователей варируется между разными местами
    – но примерно одинаковая среди одной сети ресторанов
●   популярность разных ресторанов
    варируется в зависимости от
    района
●   популярность ресторана является
    функцией характеристик района
    P = f(x)
Метод анализа
●   определяем район – как круг радиусом R вокруг ресторана
●   определяем различные характеристики района x :
    географические - плотность, конкуренция, разнообразие окружающих мест,
    привлекательность окружающих объектов и т.д.
    мобильность – общий трафик, входящий трафик, количество потенциальных
    клиентов и т.д.
●   обучаем функцию P = f(x)
●   вычисляем Pi для всех районов i
●   сортируем районы по Pi
Интересные метрики
    Наиболее привлекательные категории             Jensen's coefficients

    объектов для каждой сети


●   определенные на основе анализа частоты
    совместного расположение объектов двух
    категорий - Jensen's coefficients
                                                  Transition probabilities

●   определенные на основе анализа
    переходов между объектами
    разных категорий - Transition probabilities
Обучение и валидация
    Обучение функции 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
Что почерпнуть из сказанного
●   делать Data Science и работать с Большими Данными просто!
●   но, нужно освоить некоторые инструменты и методы
●   самые популярные инструменты: MapReduce, Hadoop, Amazon
    EMR
●   методы зависят от приложения, хороший метод – который
    решают проблему и делает ее быстро и эффективно
●   WEKA – хороший инструмент для практического machine
    learning'а
Спасибо за внимание
                 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

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

  • 1.
    BigData и DataScience: методы и инструменты 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.
    Что необходимо ● Инструменты и инфраструктура – хранение больших данных – паралельная обработка – иттеративная обработка ● Методы и алгоритмы – самообучение – эффективность при больших данных – возможность паралельная и иттеративной обработки
  • 5.
  • 6.
    Концепция MapReduce Задача: посчитатьчастоту появления слов во входных документах
  • 7.
    Что требуется отпрограммиста?
  • 8.
    Еще пример –Page Rank Формула Алгоритм
  • 9.
  • 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 ● минимальные затраты на конфигурацию, удобная система логов ● гибкая система оплаты, относительно не дорого
  • 13.
  • 14.
    На что обратитьвнимание ● тестим hadoop в standalone ● не все алгоритмы подходят для MapReduce ● требует подготовки данных ● традиционные (реляционные) базы данных не подходят
  • 15.
  • 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.
    Supervised Learning Decision Tree Linear Regression
  • 18.
  • 19.
    Зачем нужен MachineLearning? ● Задача: рекомендация друзей ● Метод: основанные на близости в графа; основанные на сходстве профайлов (включаю историю); комбинация обоих
  • 20.
    Зачем нужен MachineLearning? ● Задача: кластеризация сошиал графа, определение влиятельных пользователей IMT CNR Cambridge Методы: методы на графах, спектральные методы, методы основанные на похожести (similarity)
  • 21.
    Зачем нужен MachineLearning? ● Задача: определение районов связанных мест в городе основываясь на сошиал медиа ● Методы: любые методы кластеризации, важно определить связи между местами
  • 22.
    Пример – RetailLocation 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