О КНИМЕ Представляем вашему вниманию обзор Knime Analytics Platform — фреймворка с открытым исходным кодом для анализа данных.
Этот фреймворк позволяет реализовать полный цикл анализа данных, включая чтение данных из различных источников, преобразование и фильтрацию, сам анализ, визуализацию и экспорт. Вы можете скачать KNIME (настольное приложение на основе eclipse) здесь: www.knime.org Кому может быть интересна эта платформа:
- Для тех, кто хочет анализировать данные
- Для тех, кто хочет анализировать данные и не имеет навыков программирования
- Для тех, кто хочет покопаться в хорошей библиотеке реализованных алгоритмов и возможно узнать что-то новое
Рабочие процессы
В Knime процесс программирования логики осуществляется посредством создания рабочего процесса.Рабочий процесс состоит из узлов, выполняющих ту или иную функцию (например, чтение данных из базы данных, преобразование, визуализацию).
Узлы, соответственно, соединены друг с другом стрелками, показывающими направление движения данных.
(картинка с официального сайта)
После того как рабочий процесс создан, его можно запустить на выполнение.
После запуска рабочего процесса на исполнение, в базовом сценарии узлы рабочего процесса начинают обрабатываться один за другим, начиная с самого первого.
Если при выполнении конкретного узла возникает ошибка, то выполнение всей следующей за ним ветки прекращается.
Возможен перезапуск рабочего процесса не с первого, а с произвольного узла.
Светофор на каждом узле отражает его текущее состояние — красный — ошибка, желтый — готов к выполнению, зеленый — завершено.
Узлы
Рабочий процесс состоит из узлов (или «узлов»).Почти каждый узел имеет диалог конфигурации, в котором можно настроить свойства.
Все узлы разделены на категории:
Поддерживаются следующие типы узлов: IO — ввод/вывод данных (например, чтение CSV), Manipulation — преобразование данных (включая фильтрацию строк, столбцов, сортировку), Views — визуализация данных (построение различных графиков, включая гистограмму, круговую диаграмму, Scatter Plot и т. д.), База данных — возможность подключения к базе данных, чтение/запись, Управление рабочим процессом — создание циклов, перебор групп во время выполнения рабочего процесса и т. д.
Из узлов, реализующих анализ данных, доступны различные статистические методы (в том числе линейная корреляция, проверка гипотез), а также методы интеллектуального анализа данных (например, нейронные сети, построение деревьев решений, представление кластеров).
На официальном сайте есть хорошая схема, показывающая, как можно объединить узлы разных типов в единый поток:
Пример рабочего процесса №1: построение простой диаграммы рассеяния
Давайте рассмотрим пример простого рабочего процесса, который извлекает данные, объединяет значения с использованием определенного поля идентификатора, фильтрует и визуализирует результат на точечной диаграмме.
В этом рабочем процессе мы создаем два подключения к базе данных через соединитель таблицы базы данных.
Внутри соединителей таблиц базы данных есть SQL-запросы, которые извлекают необходимые данные.
Используя программу чтения таблиц подключений к базе данных, данные загружаются напрямую.
После того, как данные прочитаны Ридерами, они поступают в узел Joiner, в котором и выполняется операция, соответственно, JOIN. В узле String to Number строковые значения преобразуются в числовые, затем лишние столбцы фильтруются и, наконец, данные поступают в узел визуализации Scatter Plot.
Далее, после успешного выполнения Flow, вы можете нажать View Scatter Plot в контекстном меню и увидеть результат визуализации:
Построенный график откроется в новом окне.
Таким образом, за короткое время, не написав ни единой строчки кода, вы сможете выбрать нужные данные из источника, применить различную фильтрацию, сортировку и визуализировать результат.
Пример рабочего процесса № 2: Корреляционный анализ
Давайте посмотрим на другой пример.Я хотел бы сделать относительно большую выборку данных из базы данных, сгруппировать выборку по значениям определенного поля и внутри каждой группы найти корреляцию между значениями из этой группы и целевым вектором.
В этом примере открываются два подключения к базе данных.
Через одно соединение (узел 2) SQL-запрос получает вектор из нескольких значений.
Это будет целевой вектор, с которым мы будем искать корреляцию.
Через другое соединение (тоже SQL-запрос) вытягивается относительно большая выборка данных.
Далее данные поступают в оператор Group Loop Start — Workflow Control, который делает GROUP BY, внутри этого цикла целевой вектор ПРИСОЕДИНЯЕТСЯ к данным, строковые значения преобразуются в числовые и вычисляется линейная корреляция.
Результаты расчета накапливаются в узле «Конец цикла».
На выходе этого узла применяется фильтрация по строкам и столбцам, нормализация значений и построение Box Plot.
После завершения всего рабочего процесса и нажатия кнопки «Просмотр: Box Plot» откроется окно с рассчитанными значениями для Box Plot.
Альтернативой является использование операции Pivot и JOIN для добавления целевого вектора, а затем перебор столбцов и вычисление корреляции.
Рабочий процесс предоставляет шаблон альтернативного варианта (в виде узла Pivot), но сам подход не реализован.
Дополнительные возможности
Среди интересных особенностей, которые я заметил, можно выделить следующие:- Выполнение рабочего процесса на сервере и предоставление доступа к результатам работы через REST API. Данная функциональность доступна при покупке KNIME-Сервера.
- Полный дистрибутив KNIME со всеми плагинами весит почти 2 гигабайта.
В данный дистрибутив входит большое количество сторонних библиотек (например JFreeChart), которые становятся доступными в виде узлов.
- Реализована возможность выполнения операции Pivot непосредственно над базой данных или над данными, загруженными в локальный кэш.
- Доступна большая библиотека примеров
- Работа с Hadoop и другими источниками больших данных.
Проблемы и выводы
Данная система обеспечивает достаточно гибкий подход к построению алгоритмов анализа, преобразования и визуализации данных, но все же в сложных рабочих процессах, на мой взгляд, можно столкнуться со следующими проблемами:- Поведение нод недостаточно гибкое — они работают так, как хотят и подправить некоторые нюансы работы может быть довольно сложно (если не вникать в код)
- Программирование сложных потоков может привести к созданию длинной и сложной диаграммы с циклами и условиями, что приведет к трудностям при чтении и отладке.
В этом случае написание кода на R или Python может быть лучшим выбором.
Специалисты по данным, вероятно, тоже найдут для себя много интересного и могут рассматривать эту систему как дополнение к R или Python. Этот фреймворк также хорош для работы со студентами, так как можно наглядно видеть все, что происходит с данными, по каким веткам они перемещаются и как трансформируются.
Студенты могут изучать реализацию существующих узлов, добавлять свои компоненты (узлы) и добавлять их в библиотеку.
Теги: #Большие данные #Интеллектуальный анализ данных #KNIME #анализ данных #наука о данных #Интеллектуальный анализ данных #Большие данные #Визуализация данных
-
Таинственный Umts-900
19 Oct, 24 -
Я Люблю Тебя Больше, Чем Ссылки Google
19 Oct, 24 -
Pptp Против L2Tp Против Openvpn Против Sstp
19 Oct, 24 -
Пользователи Flickr Любят Камеры Canon
19 Oct, 24 -
Aol Покупает Third Screen Media
19 Oct, 24