8. Другие примеры
Предоставить пользователю соцсети персонифицированный
контент (статьи, статусы, музыка, видео), интересный ему.
Предложить пользователю товары и услуги (или
рекламу), в которых он м.б. заинтересован.
Предотвратить снятие денег с кредитной карты в случае
ее кражи путем анализа поведения держателя карты
Определить зависимость между образом жизни (питание,
двигательная активность, сон) и показателями здоровья
Учесть поведение пользователя в соцсетях при принятии
решения о выдаче кредита
12. Data Mining
• Data mining - методы обнаружения в данных ранее
неизвестных, нетривиальных, практически
полезных и доступных интерпретации знаний,
необходимых для принятия решений в различных
сферах человеческой деятельности [Пятецкий-
Шапиро, 1989]
Математиче
ская
статистика
Линейная
алгебра
Методы
оптимизации
Теория
вероятностей
13. Разновидности Data Mining
Data Mining
Knowledge Discovery Decision Support
Обнаружение в данных
заведомо неизвестных и
полезных знаний
Автоматизированное
построение точной модели
явления по данным с целью
ее последующего
автоматизированного
использования
Machine Learning
Цель: Автоматизация
построения и применения
модели
Цель: Найти новые знания
14. Базовая терминология Data Mining
скорость,
м/сек
max
ускорение,
м/сек2
Max
вертикальная
скорость, м/сек
min высота,
м
710 20 110 2000
1100 100 300 500
820 25 150 2500
720 20 115 2400
740 22 120 2000
Прецедент
Атрибуты
Набор
данных
• Непрерывные: все из примера
• Категориальные: погодные условия
(нормальные, осадки, шторм)
15. скорость,
м/сек
max
ускорение,
м/сек2
Max
вертикальная
скорость, м/сек
min высота,
м
Тип
летательно
го средства
710 20 110 2000 С1
1100 100 300 1100 С2
820 25 180 2500 С2
скорость,
м/сек
max
ускорение,
м/сек2
Max
вертикальная
скорость, м/сек
min высота,
м
Тип
летательно
го средства
710 20 110 2000 С1
1100 100 300 1100 С2
820 25 180 2500 С2
720 20 115 1000
740 22 120 2000
С1 С2
обучающая
выборка
обучение
Модель
y=f(X)
применение
С1
С1
Классификация
19. Классификация и прогнозирование
y = f(X)
Задача X y
Персонификация контента
пользователя соцсети
«Лайки» и контент Рекомендованный
контент
Рекомендация товаров и услуг История покупок
пользователя, «лайки»
Набор
рекомендованных
товаров и услуг
Карточный анти-фрод Последние транзакции Решение: фрод /
норма
Кредитный скоринг с использованием
данных соцсетей
Анкетные данные,
поведение и контент,
связанный с
пользователем в соцсетях
Решение по кредиту
Поиск взаимосвязей между
физической активностью, питанием и
заболеваемостью
Общая информация о
пациенте, данные
диетологических
дневников, показатели
датчиков
Набор вероятных
диагнозов
25. Время чтения 25 TB данных
Sequential read speed : 70-120 MB/sec ~ 0,342 TB/hour
73 ЧАСА!!!
26. Сортировка
N∙logN ∙speed=540 часов !!!
Пусть 25 TB = 25 млн. документов
по ~ 1MB каждый
QuickSort O(N∙logN)
N=25∙106
1MB читается за speed=2,92∙10-6 час.
28. Направления больших данных
Инфраструктура
Параллельные версии
алгоритмов
• прикладная математика,
• графы,
• обработка изображений и т.д.
Моделирование скрытых
зависимостей (data mining) в
условиях
• неструктурированные данные (например, текст)
• пропущенные значения
• зашумленность
• разреженные векторы атрибутов
• наличие связей между прецедентов
• большое число прецедентов
• большое число атрибутов
• обработка в онлайн
• изменчивость данных
Фреймворки
параллельного
исполнения
Хранение: ФС,
БД
30. MapReduce
Things don’t have to change the world to be important.
Details matter, it’s worth waiting to get it right.
You’ve baked a really lovely cake, but then you’ve used
dog shit for frosting.
Sometimes life is going to hit you in the head with a
brick. Don’t lose faith.
Deciding what not to do is as important as deciding
what to do.
If you really look closely, most overnight successes took
a long time.
….
0
2
4
6
8
10
1 2 3 4 5 6 7 8
Число вхождений
в текст
Длина слова
2 узла
31. Шаг Map
Things don’t have to change the world to be
important.
Details matter, it’s worth waiting to get it
right.
You’ve baked a really lovely cake, but then
you’ve used dog shit for frosting.
Sometimes life is going to hit you in the head
with a brick. Don’t lose faith.
Deciding what not to do is as important as
deciding what to do.
If you really look closely, most overnight
successes took a long time.
Things don’t have to change the
world to be important.
Details matter, it’s worth waiting to
get it right.
You’ve baked a really lovely cake,
but then you’ve used dog shit for
frosting.
Sometimes life is going to hit you in
the head with a brick. Don’t lose
faith.
Deciding what not to do is as
important as deciding what to do.
If you really look closely, most
overnight successes took a long
time.
map
map
map
map
map
map
def map(line):
words=line.lower().replace(“.”, “ “) .replace(“,”, “ “).split()
stat=[]
for w in words:
stat.append((len(w), 1))
return stat
Inputsplit [(6, 1), (5, 1), (4, 1), (2, 1), (6, 1), (3,
1), (5, 1), (2, 1), (2, 1), (9, 1)]
[(7, 1), (6, 1), (4, 1), (5, 1), (7, 1), (2,
1), (3, 1), (2, 1), (5, 1)]
[(6, 1), (5, 1), (1, 1), (6, 1), (6, 1), (4,
1), (3, 1), (4, 1), (6, 1), (4, 1), (3, 1),
(4, 1), (3, 1), (8, 1)]
[(9, 1), (4, 1), (2, 1), (5, 1), (2, 1),
(3, 1), (3, 1), (2, 1), (3, 1), (4, 1), (4,
1), (1, 1), (5, 1), (5, 1), (4, 1), (5, 1)]
[(8, 1), (4, 1), (3, 1), (2, 1), (2, 1),
(2, 1), (2, 1), (9, 1), (2, 1), (8, 1), (4,
1), (2, 1), (2, 1)]
[(2, 1), (3, 1), (6, 1), (4, 1), (7, 1),
(4, 1), (9, 1), (9, 1), (4, 1), (1, 1), (4,
1), (4, 1)]
32. Шаг Reduce
Things don’t have to change
the world to be important.
Details matter, it’s worth
waiting to get it right.
You’ve baked a really lovely
cake, but then you’ve used
dog shit for frosting.
Sometimes life is going to hit
you in the head with a brick.
Don’t lose faith.
Deciding what not to do is as
important as deciding what
to do.
If you really look closely, most
overnight successes took a
long time.
map
map
map
[(6, 1), (5, 1), (4, 1), (2, 1), (6, 1), (3,
1), (5, 1), (2, 1), (2, 1), (9, 1)]
[(7, 1), (6, 1), (4, 1), (5, 1), (7, 1), (2,
1), (3, 1), (2, 1), (5, 1)]
[(6, 1), (5, 1), (1, 1), (6, 1), (6, 1), (4,
1), (3, 1), (4, 1), (6, 1), (4, 1), (3, 1),
(4, 1), (3, 1), (8, 1)]
[(9, 1), (4, 1), (2, 1), (5, 1), (2, 1),
(3, 1), (3, 1), (2, 1), (3, 1), (4, 1), (4,
1), (1, 1), (5, 1), (5, 1), (4, 1), (5, 1)]
[(8, 1), (4, 1), (3, 1), (2, 1), (2, 1),
(2, 1), (2, 1), (9, 1), (2, 1), (8, 1), (4,
1), (2, 1), (2, 1)]
[(2, 1), (3, 1), (6, 1), (4, 1), (7, 1),
(4, 1), (9, 1), (9, 1), (4, 1), (1, 1), (4,
1), (4, 1)]
(1, [1, 1, 1])
(2, [1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1])
(3, [1, 1, 1, 1, 1, 1, 1, 1, 1,
1])
(4, [1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1])
(5, [1, 1, 1, 1, 1, 1, 1, 1, 1])
(6, [1, 1, 1, 1, 1, 1, 1, 1])
(7, [1, 1, 1])
(8, [1, 1, 1])
(9, [1, 1, 1, 1, 1])
map
map
map
reduce
reduce
reduce
reduce
reduce
reduce
reduce
reduce
reduce
Shuffle
(1, 3)
(2, 16)
(3, 10)
(4, 17)
(5, 9)
(6, 8)
(7, 3)
(8, 3)
(9, 5)
def reduce(key,values):
s=0
for v in values:
s+=v
return (key,s)
0
5
10
15
20
1 2 3 4 5 6 7 8 9
Число вхождений в
текст
Длина слова
35. Apache Spark
Hadoop
• Hadoop MapReduce: обращение к данным = чтение из HDFS. При этом многие алгоритмы
итеративны (по многу раз обращаются к одним и тем же данным)
• Разработка Hadoop MapReduce программ тяжеловесна (требуется писать Java-классы)
• Hadoop не предполагает использование для обработки запросов в реальном времени
кеш
HDFS
Узел
кеш
HDFS
Узел
кеш
HDFS
Узел
Spark
• Кеширование обрабатываемых коллекций (resilient distributed data set, RDD) данных в ОЗУ узлов
кластера
• Интерактивное программирование логики обработки в функциональном стиле (Scala, Python)
• Возможность обработка запросов, поступающих в реальном времени
37. Параллельная обработка и распределенное
хранение: резюме
• Hadoop=MapReduce+HDFS
– Принцип локальности данных
• Spark
– Кеширование наборов данных в ОЗУ
– Наглядный код
– Spark+HDFS
40. Реляционные СУБД
Id Name Age
1 Иванов 20
2 Петров 25
3 Сидоров 40
Customers
Id CustomerId Date
1 1 2014-06-17
2 1 2014-06-18
3 2 2014-06-18
Orders
Id OrderId GoodId Price Count
1 1 1 500 1
2 1 2 600 1
3 2 1 500 2
4 2 2 600 1
5 3 1 500 3
OrderLines
Id Name
1 Футболка
2 Шорты
Goods
select c.Name, sum(ol.Price*ol.Count) from Customers c left join Orders o on
c.Id=o.CustomeriId left join OrderLines ol on o.Id=ol.OrderId group by c.Name
begin;
delete from OrderLines where OrderId=2;
delete from Orders where Id=2;
commit;
SQL
Транзакции
кортежи
отношение
Реляционная модель данных
Create table Customers
(
Id integer primary key,
Name char(20) not null,
Age integer
);
41. Реляционные СУБД
• Реляционная модель данных
– Фиксированная схема
– Нормализованность данных
– Поддержка транзакций
• Использование SQL
– Возможность произвольного соединения отношений в
запросах
– SQL – стандарт на «общение» приложений с БД. БД как
способ интеграции приложений
• «Проблема несоответствия» реляционной и ОО
моделей
• Плохая горизонтальная масштабируемость
• Коммерческое лицензирование
42. Тенденции развития
информационных систем
• Рост объемов данных
• Горизонтальное масштабирование,
использование кластеров
• Уход от БД как средства интеграции систем
(SOA)
• Бурное развитие Веб-приложений, частая
модификация их логики и структуры
хранения данных
43. NoSQL
• No SQL
• Not Only SQL = NOSQL
Разновидности NoSQL БД
• Ключ-значение
• Документные
• Семейство столбцов
• Графовые
52. NoSQL
• Масштабируемость на кластере
• Отсутствие схемы данных
(неструктурированность данных)
• Концепция агрегатов
• Open-source
• Уход от SQL
• Уход от транзакционности
54. С чего начать?
Готовые виртуальные машины, user-friendly инсталляция и управление
кластером (например, для развертывания на школьном кластере):
Trial-лицензии, доступ для research и обучения big data:
Литература:
Data mining keywords: интеллектуальный анализ данных, ассоциативные правила,
кластеризация K-means, метод Байеса, TF-IDF, text mining
www.basegroup.ru
(статьи)