Карл…

реклама
Predictive maintenance - использование машинного обучения
для снижения расходов на мониторинг и эксплуатацию.
Алгоритмы и технологии
Александр Сербул
Руководитель направления
Карл…
Карл, я открыл
страшную тайну
Bigdata и машинного
обучения
Это очень
интересно, пап!
Карл…
Карл, я специалист по
BigData….
Это очень
Никтокруто,
не понимает, как оно
пап! работает! НИКТО!!!
О ЧЕМ ПОГОВОРИМ
• Cначала вводная
• Потом вводная второго порядка
• Потом возможные кейсы применения
Слайд 4
О ЧЕМ ПОГОВОРИМ
• Для менеджеров, без математики!
• Понятные алгоритмы и техники
• Полезные для электронной торговли
• В рамках Bigdata
Слайд 5
Что происходит вокруг
• Шумиха вокруг «больших данных»
• Магия машинного обучения
• Продукты и сервисы для извлечения прибыли из
Bigdata
• Очень высокий уровень вхождения
• Непонимание разных областей
Слайд 6
Учиться – просто некогда
Линейная
алгебра
Теория
вероятностей
Высшая
математика
Computer
Science
Машинное
обучение
Программная
инженерия
Параллельные
алгоритмы
Обработка
«больших
данных»
Математическая
статистика
Слайд 7
Информация - «только для избранных»
• Wikipedia
• Google…
• http://www.machinelearning.ru
Уровень вхождения
Межрассовое скрещивание
Быстро всё забыли! 
Боевое карате
• Окинава, XIX век
• Доступность
• Массовость
• Сила – не нужна
• Разумный уровень вхождения
• Эффективность против самураев!
Слайд 12
Исходные данные
• Целое: -4, 23
• Число с плавающей точкой: 1.34, 67.91
• Одно из значений (полиномиальное): «красный», «синий»,
«зеленый»
• Биномиальный: да/нет, M/F
• Даты
• Графы
Выбросы
Слайд 13
Элементарная статистика
• Среднее, дисперсия
• Линейная корреляция
• Mutual Information,
Maximal information coefficient (MIC)
Слайд 14
Профиль, вектор
• Все, что есть!
• Пол
• Возраст
• Статус
• URLы, пути
• Обращения в саппорт
• Счетчики
• Средние за квартал, месяц, день
Слайд 15
Сбор данных для анализа
• Хиты на сайте (логи)
• События, привязанные к cookie (через «счетчик»)
• Логи работы
• Мультиканальность
Слайд 16
Что собираем мы
• Кука Пользователя
• Хэш лицензии
Просмотр
товара
Добавление
в корзину
• Домен
Событие
• ID товара
• Название Товара
• Категории Товара
• ID рекомендации
Оплата
Заказа
Заказ
• ряд других
Слайд 17
Что можно собирать
• Загрузка процессора user/system (top)
• Скорость позиционирования диска, % утилизации (iostat –
xm 5)
• Расход ОЗУ, кэш, своп
• Время загрузки тестовой страницы API
• Входящий, исходящий трафик
• LA, число переключений контекстов … (vmstat)
Слайд 18
А какие метрики нужно точно собирать?
• Этого не знает никто!!
• Kaggle.com
• Нейронки, DeepLearning и
гадания на кофейной гуще
Слайд 19
Deep learning, рекуррентные нейронные
сети
Слайд 20
Сбор данных для анализа – риски, оценки
• Нагрузка на «счетчик» - нужен nginx/lua, NoSQLрешение, …
• Много данных – нужен кластер для обработки:
hadoop+spark/amazon/…
• Реализация: дни
Слайд 21
Полезные (готовые) инструменты
• Rapidminer
• SAS
• SPSS
•…
Готовые блоки, серверные редакции (hadoop), графики
Слайд 22
Полезные библиотеки (бесплатные)
• Spark MLlib
(scala/java/python) – много
данных
• scikit-learn.org (python) –
мало данных
•R
Слайд 23
Чтобы не зарыться в программирование
• Создание модели в коде – 5 строк = 10 минут
• Обучение модели – минуты, десятки минут, очень
редко и неправильно – часы, дни
• Оценка качества модели – десятки минут:
- AUC (area under curve)
- Recall/Precision
- Cross-validation
Слайд 24
Rapidminer
• Rapidminer 5 – opensource free
• Модель собирается из кубиков
• Несколько экспериментов
• Автоподстройка параметров
• Графики
Трудозатраты: 1-2 часа
R? Python – если быстро умеют
Слайд 25
Рабочее место
аналитика
Аналитик
• Организовать сбор данных
• Минимум программирования
• Работа в инструментах (Rapidminer, R, Python, SAS,
SPSS)
• Bigdata – как SQL
Слайд 27
Война систем хранения
• SQL на MapReduce: Hive, Pig, Spark SQL
• SQL на MPP (massive parallel processing):
Impala, Presto, Amazon RedShift, Vertica
• NoSQL: Cassandra, Hbase, Amazon DynamoDB
• Классика: MySQL, MS SQL, Oracle, …
Слайд 28
Визуализация
Визуализация!
Слайд 30
Визуализация!
• Munin, Cacti
• InfluxDB
• Cжимаем размерности (PCA, SVD)
• У эксплуатации часто есть много графиков: вкусных
и разных
Слайд 31
Визуализация!
• Гистограмма:
• - Время загрузки страницы
• - Вызов метода API
• - Время жизни ключей в redis
Слайд 32
Кластерный анализ
Кластерный анализ
• Когда измерений много
• Если «повезет»
• Четкая/нечеткая
• Иерархическая
• Графы
• Данных много/мало
• Интерпретация
Слайд 34
Кластерный анализ
• Иерархическая
• K-means
• C-means
• Spectral
• Density-based (DBSCAN)
• Вероятностные
• Для «больших данных»
Слайд 35
Кластерный анализ – кейсы
• Основные типы нагрузки на сервер
• Типы клиентов API
• Виды нагрузки на БД из веб-приложения
• Виды DDOS
• Нагрузка, создаваемая страницами веб-приложения
Слайд 36
Кластерный анализ – оценки на
программирование
• Данные должны быть уже собраны
• Анализ в Rapidminer (0.1-2 часа)
• Анализ в Spark Mllib (1-2 дня, много данных)
• Анализ в scikit-learn – аналогично (мало данных)
• На выходе: список кластерных групп, иногда
визуализация.
• Метрики качества кластеризации.
Слайд 37
Кластерный анализ – риски
• Много данных – медленно!
• Как интерпретировать?
• Рецепты:
• Spark MLlib, векторизация текста, LSH (locality sensetive
hashing), word2vec
Слайд 38
Классификация
Классификация – это не кластеризация!
• Не путать!
• Кластеризция – автоматическая и если повезет
• Классификация – учим компьютер сами и «везет»
чаще
• Пример: фильтрация спама, которую доучиваем;
DDOS, сервер упадет…
Слайд 40
Классификация
Разбиваем по группам,
обучение
• Бинарная
• Мультиклассовая
Слайд 41
Классификация
Слайд 42
Карл…
Это очень
интересно, а
почему?
Карл, SVMклассификатор на
нестандартных ядрах
работает гораздо
лучше
Карл…
Карл, я специалист по
BigData….
Это оченьЭтого
круто,
не знают даже
пап!
математики, сынок!!!
Классификация
Слайд 45
Классификация – кейсы
• Удержание: найти клиентов, которые скоро уйдут
(churn-rate)
• Найти клиентов, готовых стать платными
• Найти клиентов, которые готовы купить новую
услугу
• Найти готовых уволиться
• Определить у клиента – пол!
Слайд 46
Классификация – кейсы
• Начнут появляться 50х ответы клиенту
• Страницы сыпят ошибками соединения с БД
• Увеличится время ответа API: да/нет
• Сервер будет перегружен: да/нет
• БД начнет «тормозить»: да/нет
• Apache забьется запросами: да/нет
• Начинается DDOS: да/нет
• Кэширование не везде включено: да/нет
• Сжатие не включено: да/нет
Слайд 47
Классификация – реализация, риски
• Определение, нормализация атрибутов
• Feature engineering
• Выбор алгоритма, kernel
• Spark MLlib, scikit-learn – 2-3 дня
• Rapidminer – полчаса
Слайд 48
Классификация – секреты
• Не усложняйте!
• Начните с Naïve Bayes, работает хорошо в 80%
случаев
• Попробуйте SVM (support vector machine), как
правило точнее, но дольше
• Пускайтесь по все тяжкие с нейронными сетями 
Слайд 49
Классификация – качество
• Confusion matrix
• Recall/precision
• Kappa
• AUC > 0.5
Слайд 50
Регрессия
Регрессия
• Предсказать «циферку»
• Стоимость квартиры, автомобиля на рынке
• Ценность клиента для магазина
• Зарплата на данную вакансию
• Расходы на железо
• Объем трафика
• Число запросов к API
• и т.д.
Слайд 52
Регрессия – customer lifetime value (CLV)
• Пришел клиент, а он потенциально прибыльный!
• Система лояльности, удержания
• Подарки, скидки, …
Слайд 53
Регрессия – реализация, риски
• Выявление атрибутов
• Выбор алгоритма
• Spark MLlib – не работает, scikit-learn – 1-2 дня
Слайд 54
Дерево решений
А что влияет на появление 50х ошибок…?
• Собираем данные (хиты, логи, анкетирование)
• Строим дерево решений
• В Rapidminer – полчаса
• В Spark MLlib – чуть больше.
Слайд 56
Стратегии
Стратегии
Слайд 58
Стратегии
Слайд 59
Стратегии
• Используем компьютер против него самого
• Все считаем! Не полагаемся на интуицию.
• Собираем метрики
• Обучаем несколько типовых простых моделей
• Замеряем качество моделей, лучше – в бой
• Действуем превентивно
• Сокращаем расходы на устранение аварий
• Опережаем конкурентов по качеству эксплуатации!
Слайд 60
Спасибо, вопросы?
Александр Сербул
@AlexSerbul
serbul@1c-bitrix.ru
Слайд 61
Скачать