Привет, Хабр! Мы продолжаем рассказывать о новых трендах в BI, и сегодня речь пойдет о расширении возможностей аналитических систем и кастомизации дашбордов под конкретные (и порой уникальные) задачи клиентов. Для этого необходимо работать на стыке DS (Data Science) и BI, а значит — в BI должен быть базовый набор ML- инструментов (Machine Learning), доступных не только суровым математикам, но и бизнес-аналитикам. В этой статье мы рассмотрим возможные варианты пересечения сфер BI и DS для проведения более глубокой аналитики, с плюсами и минусами, и рассматриваем основные подходы к внедрению ML в BI на уровне стандартного функционала.
Если вы работаете с BI, то прекрасно знаете, что для некоторых аналитических кейсов недостаточно просто OLAP-отчетности. С помощью стандартных шаблонов и алгоритмов невозможно решить все актуальные бизнес-задачи.
В большинстве BI-систем реализован доступ к движку для быстрых аналитических запросов табличных данных. Это позволяет строить различные визуализации, применять фильтры и разрезы, а также выводить результаты этой работы на дашборды или делать интерактивные отчеты. Но на практике встречается все больше задач, которые требуют более гибкого доступа к данным.
Например, в прошлом нам пришлось разрабатывать решение для задачи анализа и прогнозирования рисков. Разработка велась для крупного холдинга: надо было учесть множество финансовых потоков с разными параметрами. Большое количество задолженностей в разных валютах, кредиты, взятые на разных условиях, с различными процентными ставками, сроками и условиями рефинансирования и так далее. В рамках проекта нужно было собрать всю информацию и показать расчеты Value At Risk и производные этого параметра.
Чтобы решить такую задачу, требовалось как минимум провести моделирование методом Монте-Карло. Однако, очевидно, реализовать подобную аналитику стандартными инструментами OLAP было просто невозможно. Эта задача переносит нас на стык BI и DS. Это совершенно разные домены, в которых работают люди с разными компетенциями и опытом. К тому же, там еще нет экосистемы устоявшихся и общепринятых решений, но зато есть большая потребность в интеграции.
Как сделать BI более глубоким?
В числе востребованных сегодня методов углубленного анализа:
Предиктивная аналитика (например, предсказание временных рядов)
Дескриптивная аналитика (например, факторный анализ)
Поиск инсайтов (помогает аналитику быстрее доставать интересную информацию)
Разговорная аналитика (работа с естественным языком)
Предписывающая аналитика (помогает улучшить качество принятия решений на основе рекомендаций)
Пользователи хотят, чтобы система выдавала им красивые графики и использовала самый широкий спектр информации для ответа на любой запрос. Поэтому сегодня мы, как и другие разработчики систем BI, активно ломаем голову над тем, как сделать аналитику доступной пользователям BI-систем.
Новые функции платформы
Первый и, казалось бы, очевидный подход - расширять аналитические возможности внутри платформы. Можно сделать встроенные кнопки, автоматические функции, например, для подсчета временных рядов и факторного анализа. В этом случае пользователи получают проверенные функции, уже протестированные специалистами. Алгоритмы будут отработаны и оптимизированы для конкретного движка.
Плюсом тут является низкий порог вхождения для аналитика, которому вообще не нужно кодить. Однако у этого подхода есть существенный минус -- пользователям доступны только внедренные разработчиками функции, а значит, нужных возможностей придется ждать...и, возможно, очень долго. К тому же появляется зацепка Vendor Lock-in, ведь мы не можем взять и перенести экспертизу из одной системы в другую.
Специализированные ML-решения
Как вариант, можно интегрировать BI-систему с одним или несколькими специализированными ML-решениями, такими как Azure ML, DataRobot, Dataiku, H2O и так далее. В этом случае порог вхождения оказывается ниже, но зато далеко не все смогут воспользоваться новыми возможностями -- только те, кто вложился в Enterprise ML-решение.
Интеграция с языками программирования общего пользования
На этом фоне наиболее эффективным выглядит метод поддержки стандартных языков программирования. Такой подход обеспечивает более высокую гибкость в создании аналитических моделей. Современные языки программирования позволяют воспользоваться готовыми библиотеками для решения различных задач, в том числе в области ML. С этой точки зрения вложения со стороны заказчика оказываются намного ниже, чем при внедрении специализированного ML-решения.
Какой язык при этом выбрать, у нас не возникало вопроса: однозначно Python! У этого решения есть сразу несколько плюсов. В частности, на Python не так просто выстрелить себе в ногу, как на С++, язык достаточно популярен и хорошо документирован. В сети можно найти платные и бесплатные курсы и по минимуму освоить Python для задач настройки глубокой аналитики. К тому же на Python, который сегодня принято считать языком машинного обучения, уже реализовано множество Data Science кейсов.
Некоторые говорят, что Python медленный… ну да, интерпретируемый язык редко бывает быстрым. Но для большинства задач в Python используются уже готовые “быстрые” библиотеки. Так что с выполнением аналитических задач проблем не возникает и относительная медлительность самого Python не влияет на работу BI. По крайней мере, мы не заметили никаких “ощутимых тормозов”.
Кстати, в таких BI-системах, как Power BI и Qlik, уже реализована поддержка Python для более сложной аналитики. Поэтому мы решили для себя, что будем развивать именно данное направление для кастомизации глубокого анализа. О том, как мы это делаем, и чем отличаются подходы разных разработчиков систем BI, вы сможете прочитать в следующем посте (не забудьте подписаться для этого на наш блог), а сейчас мы просим вас принять участие в опросе о продвинутой аналитике, а также поделиться в комментариях своим мнением/опытом в вопросах интеграции BI с языками программирования и ML-фреймворками.