Category: it

Может ли машинное обучение заменить BI?

В течение последних 20 лет компании искали закономерности в данных вручную с помощью срезов данных. Найденные шаблоны применялись для принятия бизнес-решений. Однако в последние 2 года наметилась новая тенденция: внедрение машинного обучения для поиска закономерностей в данных и использование его для интеллектуальной аналитики.

Business Intelligence (Бизнес-аналитика)

Это – пример типичной информационной панели BI для продаж (источник). На панели мониторинга представлены данные о продажах. Сверху – это продажи и прибыль с течением времени и по продукту. А внизу – продажи по продавцам и прибыль по клиентскому сегменту и товарной группе.
На основании этих данных компания может принимать такие бизнес-решения, как:

  1. Увеличить или уменьшить маржинальную прибыль для определенной группы продуктов.

  2. Сосредоточить маркетинговые усилия на конкретном потребительском сегменте, чтобы увеличить продажи.

  3. Реструктурировать отделы продаж, чтобы повысить эффективность продаж.

Таким образом, BI помогает руководству лучше управлять бизнесом, позволяя лучше понимать текущие и прошлые бизнес-ситуации.
Машинное обучение (ML – machine learning)
Примером типичного машинного обучения является выявление мошенничества в банковской сфере. Тысячи транзакций в день (например, кредитные карты или платежи и банковские переводы) анализируются с помощью алгоритма ML, а некоторые, подозрительные, автоматически удерживаются и проверяются вручную. Дата, время, сумма, профиль клиента, получатель и тип транзакции/платежа являются «характеристиками» алгоритма нейронной сети, который оценивает каждую транзакцию. Поэтому транзакции, которые превышают некоторые определенные параметры, удерживаются.

Создание отчета в Pentaho Report Designer

Данный пост о создании печатных форм в Pentaho Report Designer – Open Source дизайнере отчетов. Для примера взята форма отчета «Отчет о кредитах, выданных нерезидентам (форма 17-ПБ)», который банки Казахстана сдают в Национальный банк, в рамках регуляторной отчетности.

В целом все очень похоже на любой другой конструктор отчетов.

Создаем новый отчет, в свойствах отчета указываем название:



Как и в других конструкторах, структура отчета состоит из полос (band): Заголовок Отчета, Заголовок Страницы, Детали, Подвал Страницы, Подвал Отчета. При необходимости можно добавить группировку строк по какому-то признаку, соответственно тогда возникнут полосы Заголовок Группы и Подвал Группы. Для отображения групповых полос необходимо будет снять галку «Скрыть элемент» с этой группы в панели Структуры документа.



Далее размещаем все компоненты (поля) отчета на соответствующих полосах. Для текстовых полей соответственно текстовые компоненты, для числовых – числовые, и так далее. Задаем границы элементов. Для того, чтобы одним махом изменять свойства нескольких элементов – в Структуре документа выделяем их всех через Shift. На картинке у всех выделенных элементов изменено свойство Левая граница, на «Одинарная». Для того, чтобы сбросить свойство, кликаем галку Унаследовано.



Так как в текстовых полях длина текста может быть различной, и текст может переходить на вторую или третью строку, то высоту всех элементов на полосе Детали задаем как 100% от допустимой. В этом случае тот элемент, в котором длинный текст увеличил высоту, растянет полосу по высоте, и все остальные элементы на полосе так же растянутся. Для указания высоты в 100% нужно просто вбить текст «100%», с единицами измерения разработчики не стали заморачиваться.



Далее, на вкладке Данные добавляем датасет, из которого выводятся данные в отчет.



С большинством распространенных баз данных система соединяется прямо «из коробки», но для некоторых баз данных нужно доложить коннектор в папку C:\...\report-designer\lib.

Для удобства можно внести несколько датасетов, например, тестовый и рабочий. Активный датасет указываем, кликнув на нем правой кнопкой, и выбрав пункт Выбрать запрос. После выбора активного датасета, если все в порядке с коннектом, и с запросом, под датасетом появится список полей из запроса.



Если список полей из запроса не появился, то нужно проверить SQL запрос, указанный в датасете. Могут мешать комментарии в тексте запроса, до или после.

В JDBC коннекторе к MySQL, до недавних пор, наблюдался глюк, список полей под датасетом не появлялся, пока в тело SQL-запроса датасета не добавить команду LIMIT. Количество строк в LIMIT не имело значения, например, 1 000 000 000, но сама команда LIMIT должна была присутствовать. Данный баг исправили недавно, например, в текущем коннекторе mysql-connector-java-5.1.44-bin.jar такого бага уже нет.

Отчет строится за какой-то период, соответственно в отчет нужно передать Дата_От и Дата_По. Под датасетом есть раздел Параметры, добавляем параметр dl_from, и аналогично dl_to.



Параметры вставляем в текст SQL запроса в фигурных скобках:
SELECT … FROM … WHERE … = ${dt_from} … = ${dt_to}

При вызове отчета пользователь получит приглашение ввести даты.



Далее заполняем все поля с данными. Двойной клик на компоненте вызывает список с полями, выбираем нужное поле.



В свойствах компонента устанавливаем формат отображения значения поля, например «dd.MM.yyyy» для даты, или «#,##0» для чисел.

В первой колонке отчета номер строки. Поэтому это компонент Ярлык (Label), а не поле для данных. В атрибутах этого Ярлыка, в свойстве Значение, указываем формулу =( ROWCOUNT() + 1 )



Если формула введена правильно, то над формулой будет или рассчитанное значение, или сообщение «Недостаточно данных для расчета». Если в формуле ошибка, то появится сообщение об ошибке. Даже пустая строка то же считается ошибкой.



В отчете есть поле с рассчитываемым значением. Под датасетом, в разделе Функции, добавляем функцию типа Open Formula.



В свойствах добавленной формулы, переименовываем ее имя в удобоваримое RowCount_..., и в атрибуте формула добавляем нужные расчеты.



В подвале отчета необходимо вывести сумму итого под некоторыми колонками. Это то же рассчитываемое поле, только с типом Сумма (Sum).



В отличии от формулы с типом Open Formula, в атрибутах формулы Сумма нужно просто указать столбец (поле), по которому рассчитывается сумма итого.
Все добавленные формулы появятся в выпадающем списке полей при клике на компоненте, соответственно указываем их в соответствующих компонентах.



Для лучшей читаемости отчета, нужно чередовать фоновый цвет строк таблицы. Для этого в свойствах полосы, в атрибуте Фоновый цвет (bg-color) добавляем формулу: =IF( ISODD( ROWCOUNT() ); "#FFFFFF"; "#DDDDDD" ). Действие формулы понятно без комментария.



Последний штрих – в Заголовке отчета, в соответствующем Ярлыке добавляем формулу: = "за период с " & MESSAGE("{0,date,dd.MM.yyyy}"; [dt_from]) & " г. по " & MESSAGE("{0,date,dd.MM.yyyy}"; [dt_to]) & " г.". Действие формулы понятно без комментария.

Отчет готов.



Пример регуляторного отчета 17-ПБ «Отчет о кредитах, выданных нерезидентам» в PDF.

Пример регуляторного отчета 17-ПБ «Отчет о кредитах, выданных нерезидентам» в Excel.

В отчете в Excel есть скрытые столбцы, то есть некоторые поля в отчете не очень плотно подогнаны друг к другу. Можно подогнать, а можно поменять раскладку полосы с Холста на Строку. В раскладке Холст вы сами размещаете компоненты на полосе. В раскладке Строка полоса сама будет выстраивать все компоненты друг за другом, примерно как float:left в свойствах div в HTML. Вам останется только изменять ширину компонентов, и менять их порядок в строке (перемещать влево – вправо по полосе) с помощью кнопок под ярлычком Структура документа.



PS: Осталось только добавить, что для написания поста, по техническим причинам, пришлось набросать тестовый SQL-запрос для наполнения отчета случайными данными.

SELECT
client_name AS NAMECLIENT,
tax_bin AS IIN,
CAST( ( FLOOR( RAND() * 400 ) + 100 ) AS CHAR ) AS NUM_DOG,
CAST( ( FLOOR( RAND() * 100000 ) + 100 ) AS SIGNED ) AS SUM_DOG,

CAST( ( FLOOR( RAND() * 100000 ) + 100 ) AS SIGNED ) AS SALDO_BEG_OD,
CAST( ( FLOOR( RAND() * 10000 ) + 100 ) AS SIGNED ) AS OBOROT_KT_OD,
CAST( -( FLOOR( RAND() * 50000 ) + 100 ) AS SIGNED ) AS OBOROT_DT_OD,
CAST( ( FLOOR( RAND() * 10000 ) + 100 ) AS SIGNED ) AS SALDO_END_OD,

CAST( ( FLOOR( RAND() * 100000 ) + 100 ) AS SIGNED ) AS SALDO_BEG_PRC,
CAST( ( FLOOR( RAND() * 10000 ) + 100 ) AS SIGNED ) AS OBOROT_KT_PRC,
CAST( -( FLOOR( RAND() * 50000 ) + 100 ) AS SIGNED ) AS OBOROT_DT_PRC,
CAST( ( FLOOR( RAND() * 10000 ) + 100 ) AS SIGNED ) AS SALDO_END_PRC,

CAST( ( FLOOR( RAND() * 900000000 ) + 10000000 ) AS CHAR ) AS BALANS_NUM_OD,
CAST( ( FLOOR( RAND() * 900000000 ) + 10000000 ) AS CHAR ) AS BALANS_NUM_PRC,

CASE ( FLOOR( RAND() * 2 ) + 1 )
WHEN 1 THEN 'USD'
WHEN 2 THEN 'EURO'
END AS CURRENCY,

CASE ( FLOOR( RAND() * 3 ) + 1 )
WHEN 1 THEN '16'
WHEN 2 THEN '17'
WHEN 3 THEN '18'
END AS INTEREST,

CASE ( FLOOR( RAND() * 6 ) + 1 )
WHEN 1 THEN CAST('2015-01-01' AS DATE)
WHEN 2 THEN CAST('2015-02-02' AS DATE)
WHEN 3 THEN CAST('2015-03-03' AS DATE)
WHEN 4 THEN CAST('2015-04-04' AS DATE)
WHEN 5 THEN CAST('2015-05-05' AS DATE)
WHEN 6 THEN CAST('2015-06-06' AS DATE)
END AS DATE_BEGIN,

CASE ( FLOOR( RAND() * 6 ) + 1 )
WHEN 1 THEN CAST('2015-07-01' AS DATE)
WHEN 2 THEN CAST('2015-08-02' AS DATE)
WHEN 3 THEN CAST('2015-09-03' AS DATE)
WHEN 4 THEN CAST('2015-10-04' AS DATE)
WHEN 5 THEN CAST('2015-11-05' AS DATE)
WHEN 6 THEN CAST('2015-12-06' AS DATE)
END AS DATE_GIVE,

CASE ( FLOOR( RAND() * 6 ) + 1 )
WHEN 1 THEN CAST('2016-07-01' AS DATE)
WHEN 2 THEN CAST('2016-08-02' AS DATE)
WHEN 3 THEN CAST('2016-09-03' AS DATE)
WHEN 4 THEN CAST('2016-10-04' AS DATE)
WHEN 5 THEN CAST('2016-11-05' AS DATE)
WHEN 6 THEN CAST('2016-12-06' AS DATE)
END AS DATE_END,

CASE ( FLOOR( RAND() * 5 ) + 1 )
WHEN 1 THEN 'Германия'
WHEN 2 THEN 'Объединенные Арабские Эмираты'
WHEN 3 THEN 'Великобритания'
WHEN 4 THEN 'Испания'
WHEN 5 THEN 'Франция'
END AS COUNTRY

FROM
tbl_client

ORDER BY RAND()

LIMIT 10

http://sanatel.kz/paper_pentaho_report_designer.htm

28 фактов о bpm'online


1. Bpm’online CRM — SaaS-решение, разработанное компанией Terrasoft.

2. Объединяет возможности системы управления взаимоотношениями с клиентами (CRM) и системы управления бизнес-процессами (BPM).

3. Это первое прикладное решение, разработанное на платформе bpm’online.

4. Платформа BPMonline разработана с использованием трехуровневой архитектуры на базе .NET Framework.

5. Для создания пользовательских интерфейсов используются технологии HTML, AJAX и Microsoft Silverlight.

6. Создание приложений происходит не посредством написания нового программного кода, а посредством связывания сервисов.

7. В основе платформы BPMonline лежат бизнес-процессы.

8. Для обеспечения безопасности и разграничения прав доступа в BPMonline обеспечивается возможность настройки прав доступа по ролям, поддержка криптографического протокола SSL, ограничение доступа к объектам, полям объектов, записям.

9. По словам судей конкурса CRM Idol 2011, победу в котором по региону EMEA одержала система BPMonline CRM, у продукта превосходный графический дизайн процессов, что упрощает конфигурирование системы обычным пользователям.

10. У системы открытый код конфигурации (Open Source), а также готовые инструменты для быстрой и легкой адаптации, позволяющие гибко настраивать приложение аналитикам, не прибегая к помощи программистов.

11. Продукт является веб-приложением и не нуждается в установке на локальный компьютер.

12. Стоимость зависит от двух факторов: варианта развертывания и программного продукта.

13. Работа над платформой велась 35 программистами в течение 3 лет.

14. Инвестиции в разработку составили 3 млн долларов.

15. Платформа BPMonline была представлена в феврале 2011 года на конференции «BPMonline — вход в эру процессов».

16. Одно из основных обновлений BPMonline CRM 5.2— интеграция с социальными сетями: Facebook, Twitter, LinkedIn. Реализована интеграция с Google Maps для отображения компаний на карте и с почтовыми серверами, поддерживающими IMAP (например, Gmail).

17. Новшеством версии BPMonline CRM 5.3 стала возможность приобретения лицензий не для каждого пользователя, а только для пользователей, работающих в системе одновременно. Также появилась интеграция с Google Contacts и Google Calendar для синхронизации задач и контактов и встроенные обучающие видеоролики.

18. В BPMonline CRM 5.4 появилась мультиязычность, возможность настраивать поля в карточках силами пользователя.

19. В ноябре 2011 года система BPMonline CRM получила первое место в регионе EMEA на конкурсе CRM Idol 2011, организованном Полом Гринбергом.

20. Два года подряд (2012, 2013) BPMonline попадал в список победителей ‘CRM Watchlist’, составляемый Полом Гринбергом.

21. В 2013 году BPMonline CRM стала одним из победителей всеевропейской награды European IT & Software Excellence Awards 2013.

22. Журнал CUSTOMER отметил BPMonline CRM наградой 2013 CRM Excellence Award.

23. В мае 2013 года аналитическое агентство ISM включило BPMonline CRM в список TOP 15 CRMв сегменте SMB.

24. BPM'online имеет несколько глобальных модулей: bpm’online marketing, bpm’online service, bpm’online sales.

25. В 2014 году издание CRM Magazine признало bpm’online мировым лидером на рынке программного обеспечения для управления продажами.

26. В 2015 году bpm’online включена в рейтинг лучших CRM-систем для управления клиентским сервисом — Магический Квадрант Gartner.
27. Более 6000 предприятий используют продукты компании для автоматизации своих бизнес-процессов.

28. Структура системы bpm’online sales представлена в 3 вариантах:


  • Team – пакет для небольших компаний с минимальной ценой и ограниченными возможностями.

  • Commerce – пакет для работы с короткими продажами, хорошо подходит для работы с конечным потребителем и для электронной коммерции.

  • Enterprise – максимальный пакет, включающий в себя, в том числе, управление корпоративными продажами, проектами.