Обзор Knime Analytics Platform — Системы С Открытым Исходным Кодом Для Анализа Данных



О КНИМЕ Представляем вашему вниманию обзор Knime Analytics Platform — фреймворка с открытым исходным кодом для анализа данных.

Этот фреймворк позволяет реализовать полный цикл анализа данных, включая чтение данных из различных источников, преобразование и фильтрацию, сам анализ, визуализацию и экспорт. Вы можете скачать KNIME (настольное приложение на основе eclipse) здесь: www.knime.org Кому может быть интересна эта платформа:

  • Для тех, кто хочет анализировать данные
  • Для тех, кто хочет анализировать данные и не имеет навыков программирования
  • Для тех, кто хочет покопаться в хорошей библиотеке реализованных алгоритмов и возможно узнать что-то новое


Рабочие процессы

В Knime процесс программирования логики осуществляется посредством создания рабочего процесса.

Рабочий процесс состоит из узлов, выполняющих ту или иную функцию (например, чтение данных из базы данных, преобразование, визуализацию).

Узлы, соответственно, соединены друг с другом стрелками, показывающими направление движения данных.



Обзор Knime Analytics Platform — системы с открытым исходным кодом для анализа данных

(картинка с официального сайта) После того как рабочий процесс создан, его можно запустить на выполнение.

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

Если при выполнении конкретного узла возникает ошибка, то выполнение всей следующей за ним ветки прекращается.

Возможен перезапуск рабочего процесса не с первого, а с произвольного узла.

Светофор на каждом узле отражает его текущее состояние — красный — ошибка, желтый — готов к выполнению, зеленый — завершено.



Узлы

Рабочий процесс состоит из узлов (или «узлов»).

Почти каждый узел имеет диалог конфигурации, в котором можно настроить свойства.

Все узлы разделены на категории:

Обзор Knime Analytics Platform — системы с открытым исходным кодом для анализа данных

Поддерживаются следующие типы узлов: IO — ввод/вывод данных (например, чтение CSV), Manipulation — преобразование данных (включая фильтрацию строк, столбцов, сортировку), Views — визуализация данных (построение различных графиков, включая гистограмму, круговую диаграмму, Scatter Plot и т. д.), База данных — возможность подключения к базе данных, чтение/запись, Управление рабочим процессом — создание циклов, перебор групп во время выполнения рабочего процесса и т. д. Из узлов, реализующих анализ данных, доступны различные статистические методы (в том числе линейная корреляция, проверка гипотез), а также методы интеллектуального анализа данных (например, нейронные сети, построение деревьев решений, представление кластеров).

На официальном сайте есть хорошая схема, показывающая, как можно объединить узлы разных типов в единый поток:

Обзор Knime Analytics Platform — системы с открытым исходным кодом для анализа данных



Пример рабочего процесса №1: построение простой диаграммы рассеяния

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



Обзор Knime Analytics Platform — системы с открытым исходным кодом для анализа данных

В этом рабочем процессе мы создаем два подключения к базе данных через соединитель таблицы базы данных.

Внутри соединителей таблиц базы данных есть SQL-запросы, которые извлекают необходимые данные.

Используя программу чтения таблиц подключений к базе данных, данные загружаются напрямую.

После того, как данные прочитаны Ридерами, они поступают в узел Joiner, в котором и выполняется операция, соответственно, JOIN. В узле String to Number строковые значения преобразуются в числовые, затем лишние столбцы фильтруются и, наконец, данные поступают в узел визуализации Scatter Plot. Далее, после успешного выполнения Flow, вы можете нажать View Scatter Plot в контекстном меню и увидеть результат визуализации:

Обзор Knime Analytics Platform — системы с открытым исходным кодом для анализа данных

Построенный график откроется в новом окне.



Обзор Knime Analytics Platform — системы с открытым исходным кодом для анализа данных

Таким образом, за короткое время, не написав ни единой строчки кода, вы сможете выбрать нужные данные из источника, применить различную фильтрацию, сортировку и визуализировать результат.

Пример рабочего процесса № 2: Корреляционный анализ

Давайте посмотрим на другой пример.

Я хотел бы сделать относительно большую выборку данных из базы данных, сгруппировать выборку по значениям определенного поля и внутри каждой группы найти корреляцию между значениями из этой группы и целевым вектором.



Обзор Knime Analytics Platform — системы с открытым исходным кодом для анализа данных

В этом примере открываются два подключения к базе данных.

Через одно соединение (узел 2) SQL-запрос получает вектор из нескольких значений.

Это будет целевой вектор, с которым мы будем искать корреляцию.

Через другое соединение (тоже SQL-запрос) вытягивается относительно большая выборка данных.

Далее данные поступают в оператор Group Loop Start — Workflow Control, который делает GROUP BY, внутри этого цикла целевой вектор ПРИСОЕДИНЯЕТСЯ к данным, строковые значения преобразуются в числовые и вычисляется линейная корреляция.

Результаты расчета накапливаются в узле «Конец цикла».

На выходе этого узла применяется фильтрация по строкам и столбцам, нормализация значений и построение Box Plot. После завершения всего рабочего процесса и нажатия кнопки «Просмотр: Box Plot» откроется окно с рассчитанными значениями для Box Plot.

Обзор Knime Analytics Platform — системы с открытым исходным кодом для анализа данных

Альтернативой является использование операции Pivot и JOIN для добавления целевого вектора, а затем перебор столбцов и вычисление корреляции.

Рабочий процесс предоставляет шаблон альтернативного варианта (в виде узла Pivot), но сам подход не реализован.



Дополнительные возможности

Среди интересных особенностей, которые я заметил, можно выделить следующие:
  • Выполнение рабочего процесса на сервере и предоставление доступа к результатам работы через REST API. Данная функциональность доступна при покупке KNIME-Сервера.

  • Полный дистрибутив KNIME со всеми плагинами весит почти 2 гигабайта.

    В данный дистрибутив входит большое количество сторонних библиотек (например JFreeChart), которые становятся доступными в виде узлов.

  • Реализована возможность выполнения операции Pivot непосредственно над базой данных или над данными, загруженными в локальный кэш.

  • Доступна большая библиотека примеров
  • Работа с Hadoop и другими источниками больших данных.



Проблемы и выводы

Данная система обеспечивает достаточно гибкий подход к построению алгоритмов анализа, преобразования и визуализации данных, но все же в сложных рабочих процессах, на мой взгляд, можно столкнуться со следующими проблемами:
  • Поведение нод недостаточно гибкое — они работают так, как хотят и подправить некоторые нюансы работы может быть довольно сложно (если не вникать в код)
  • Программирование сложных потоков может привести к созданию длинной и сложной диаграммы с циклами и условиями, что приведет к трудностям при чтении и отладке.

    В этом случае написание кода на R или Python может быть лучшим выбором.

Этот фреймворк хорошо подходит для людей, не очень знакомых с программированием; с его помощью можно быстро создавать простые и среднесложные рабочие процессы и предоставлять к ним доступ через REST. Это может быть востребовано в некоторых организациях.

Специалисты по данным, вероятно, тоже найдут для себя много интересного и могут рассматривать эту систему как дополнение к R или Python. Этот фреймворк также хорош для работы со студентами, так как можно наглядно видеть все, что происходит с данными, по каким веткам они перемещаются и как трансформируются.

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

Теги: #Большие данные #Интеллектуальный анализ данных #KNIME #анализ данных #наука о данных #Интеллектуальный анализ данных #Большие данные #Визуализация данных

Вместе с данным постом часто просматривают: