- PVSM.RU - https://www.pvsm.ru -
Вашему вниманию представляется обзор Knime Analytics Platform – open source фреймворка для анализа данных. Данный фреймворк позволяет реализовывать полный цикл анализа данных включающий чтение данных из различных источников, преобразование и фильтрацию, собственно анализ, визуализацию и экспорт.
Скачать KNIME (eclipse-based десктоп приложение) можно отсюда: www.knime.org [1]
Кому может быть интересна эта платформа:
В Knime процесс программирования логики осуществляется через создание Workflow. Workflow состоит из узлов которые выполняют ту или иную функцию (например чтение данных из БД, трансформация, визуализация). Узлы, соответственно, соединяются между собой стрелочками которые показывают направление движение данных.
(картинка с официального сайта)
После того как workflow создан – его можно запустить на исполнение. После того как workflow запущен на исполнение, в базовом сценарии узлы workflow начинают отрабатывать один за одним, начиная с самого первого. Если в ходе выполнения того или иного узла произошла ошибка, то исполнение всей ветки следующей за ним прекращается. Существует возможность перезапуска workflow не с первого, а с произвольного узла.
Светофор у каждого узла отражает его текущее состояние – красный – ошибка, желтый – готов к исполнению, зеленый – выполнен.
Workflow состоит из узлов (или «нод»). Практически у каждого узла есть конфигурационный диалог в котором можно настраивать свойства.
Все узлы разбиты на категории:
Поддерживается следующие типы узлов: IO — ввод/вывод данных (например чтение CSV), Manipulation – преобразование данных (включая фильтрацию строк, столбцов, сортировку), Views – визуализация данных (построение различных графиков включая Histogram, Pie Chart, Scatter Plot, etc), Database – возможность подключения к базе данных, чтения/записи, Workflow Control – создание циклов, итерирование групп в ходе выполнения workflow и прочее.
Из узлов реализующих анализ данных доступны различные статистические методы (включая линейную корреляцию, проверку гипотез) а также Data Mining методы (например нейронные сети, построение decision trees, cluster view).
На официальном сайте есть хорошая диаграмма показывающая как можно компоновать узлы разных типов в единый flow:
Рассмотрим пример простого workflow который вытягивает данные, производит JOIN значений по некоему полю ID, фильтрацию и визуализацию результата на Scatter Plot.
В данном workflow мы создаем два соединения к БД через Database Table Connector. Внутри Database Table Connector-ов находятся SQL-запросы вытягивающие требуемые данные. При помощи Database Connection Table Reader данные непосредственно выгружаются. После того как данные прочитаны Reader-ами, они приходят в узел Joiner, в котором выполняется операция, соответственно, JOIN. В узле String to Number происходит преобразование строковых значений в численные, далее фильтруются лишние столбцы и наконец данные приходят в визуализационный узел Scatter Plot.
Далее, после успешного исполнения Flow, можно нажать на View Scatter Plot в контекстном меню и посмотреть результат визуализации:
Построенный график открывается в новом окне.
Таким образом, за небольшое время, не написав ни строчки кода, можно сделать выборку требуемых данных из источника, применить различные фильтрации, сортировки и визуализировать результат.
Рассмотрим еще один пример. Хочется сделать относительно большую выборку данных из БД, сгруппировать выборку по значениям некоего поля, и внутри каждой группы найти коррелляцию значений из этой группы и целевого вектора.
В данном примере открывается два соединения к БД. Через одно соединение (Node 2) SQL-запросом вытягивается вектор из нескольких значений. Это будет целевой вектор к которому будем искать корреляцию.
Через другое соединение (также SQL-запросом) вытягивается относительно большая выборка данных. Далее данные попадают в Group Loop Start – Workflow Control оператор который делает GROUP BY, внутри этого loop-а к данным JOIN-ится целевой вектор, делается преобразование строковых значений в численные и считается линейная корреляция. Результаты вычислений аккумулируются в узле Loop End. На выходе из этого узла применяется фильтрация по строкам и столбцам, нормализация значений и построение Box Plot.
После исполнения всего workflow и нажатия на View: Box Plot открывается окно с подсчитанными значениями для Box Plot.
Альтернативный вариант – применить операцию Pivot и при помощи JOIN добавить целевой вектор, а затем итерироваться по столбцам и считать корреляцию. На workflow предоставлена заготовка для альтернативного варианта (в виде узла Pivot), но сам подход не реализован.
Из интересных особенностей, на которые я обратил внимание, можно выделить следующие:
Данная система предоставляет довольно гибкий подход к построению алгоритмов анализа, преобразования и визуализации данных, но все же на сложных workflow, на мой взгляд, можно столкнуться со следующими проблемами:
Данный фреймоврк хорошо подойдет для людей не сильно знакомых с программированием, с его помощью можно быстро создавать простые и средней сложности workflow и предоставлять к ним доступ через REST. Это может быть востребовано в каких-либо организациях.
Data scientists, возможно, тоже найдут для себя много интересного и могут рассмотреть эту систему как дополнение к R или Python.
Этот фреймворк хорош также для работы со студентами, поскольку наглядно видно все что происходит с данными, по каким веткам они перемещаются и как преобразуются. Студенты могут изучать реализацию существующих узлов, дописывать свои компоненты (узлы) и пополнять ими библиотеку.
Автор: yvaldm
Источник [2]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/data-mining/237432
Ссылки в тексте:
[1] www.knime.org: http://www.knime.org
[2] Источник: https://habrahabr.ru/post/320500/?utm_source=habrahabr&utm_medium=rss&utm_campaign=sandbox
Нажмите здесь для печати.