В сегодняшнем материале мы представим сравнительный обзор пяти самых популярных инструментов для анализа данных – Python, R, Weka, Knime, RapidMiner.
Краткие описания
Python
Python – в русскоязычной среде попросту «питон» – согласно общему определению представляет собой высокоуровневый язык программирования общего назначения, который ориентирован на повышение производительности и читаемости кода. За годы существования «питон» обзавелся множеством специализированных библиотек. Нас интересуют шесть из них:
- Pandas – отвечает за обработку данных;
- Numphy – работает с матрицами;
- Statsmodels – содержит основные статистические функции и модели;
- Sklearnи Pybrain – специализируются на алгоритмах машинного обучения;
- Наконец, Matplotlibотвечает за визуализацию.
Кроме хорошо документированных библиотек, «питон» отличается гибкостью и понятным синтаксисом – благодаря последнему, он приятен в работе. Немаловажно и то, что у Python — огромное сообщество преданных «фанатов», настоящих специалистов своего дела. Так что язык не перестает развиваться.
R
Про R мы подробно говорили в одном из материалов, посвященных инструментам Data Mining. Если вкратце, то появившийся в 1993 году язык R на сегодняшний день является стандартом в области анализа данных.
R «заточен» под статистическую обработку данных, работу с графикой и алгоритмами машинного обучения. Еще одна «вкусная плюшка» R – прекрасная визуализация с помощью пакета ggplot2.
Weka
По сути, Weka – это целая коллекция инструментов и алгоритмов для анализа данных и прогнозирования. Среди плюсов инструмента:
- удобный интерфейс (к примеру, текстовая строка для ввода команд);
- преобразование данных (в том числе предварительная обработка сырых данных);
- поддержка множества алгоритмов машинного обучения и возможность их быстрого применения;
- удобный вывод результатов работы алгоритма (легко сравнивать точность различных моделей);
- выбор признаков;
- визуализация данных;
- возможность проведения экспериментов (причем можно запускать сразу несколько алгоритмов на разных задачах и получить общий отчет);
- возможность представления всего процесса решения задачи в форме графа.
RapidMiner, Knime
Широко известные инструменты Knime и RapidMiner похожи и по форме, и по содержанию (хотя первый, в отличие от второго, существует на полностью бесплатной основе) – поэтому мы решили объединить их в одну подкатегорию. Оба инструмента поддерживают множество стандартных задач – касающихся преобразования данных, статистики, машинного обучения и визуализации. Весь процесс анализа данных представляется в виде интерактивного графа – последовательности операторов, при этом пользователю доступны операторы Weka и R.
Сравнительные характеристики
Представляем шесть таблиц, в которых представлены результаты оценки пяти инструментов (Knime и RapidMiner по вышеуказанным причинам мы объединили в одну категорию). По итогам мы подсчитали суммарную оценку каждого инструмента по отношению к конкретной характеристике, а результаты объединили в итоговую таблицу.
-
Обработка данных
Оброботка данных | Python | R | Weka | Knime / RapidMiner |
Практические навыки | **** | ** | * | * |
Возможно ли делать сложные преобразования | *** | *** | * | * |
Простые преобразование (нормализация, и т.д.) | **** | **** | **** | **** |
Сумма | 11 | 9 | 6 | 6 |
-
Визуализация
Визулизация | Python | R | Weka | Knime / RapidMiner |
Гибкость | **** | **** | ** | ** |
Эстетика | ** | **** | ** | ** |
Сумма | 6 | 8 | 4 | 4 |
-
Машинное обучение
Машинное обучение | Python | R | Weka | Knime / RapidMiner |
Количество методов | **** | **** | **** | *** |
Настройка параметров | **** | **** | ** | ** |
Сумма | 8 | 8 | 6 | 5 |
-
Представление результатов работы
Представление результатов работы | Python | R | Weka | Knime / RapidMiner |
Гибкость | **** | **** | * | ** |
2 * Трата времени на настройку хорошего вывода (больше * — меньше времени) | * | ** | **** | *** |
Сумма | 6 | 8 | 9 | 8 |
-
Скорость получения предварительных результатов
Скорость получения предварительных результатов | Python | R | Weka | Knime / RapidMiner |
Затрата времени на написание кода | * | * | **** | **** |
Быстрый вывод результатов | ** | *** | **** | **** |
Сумма | 3 | 4 | 8 | 8 |
-
Наглядность процесса анализа данных
Наглядность процесса анализа данных | Python | R | Weka | Knime / RapidMiner |
Наглядность | * | * | ** | **** |
Cумма | 1 | 1 | 2 | 4 |
Итоги
В заключительной таблице – итоги анализа. В каждой из шести «номинаций» мы выбрали условного «лидера» или «лидеров» — то есть те программные продукты, которые эффективнее всего решают конкретные задачи.
Обработка данных | Python |
Визуализация | R, Python |
Машинное обучение | все, но Python и R предоставляют больше свободы |
Представление результатов работы | Weka |
Быстрое получение предварительных результатов | Weka, Knime, RM |
Реализация собственных алгоритмов | Python, R |
Наглядность процесса анализа данных | Knime, RM |
По результатам анализа очевидно, что Python (1), R (2), Weka (3) «объективно» лучше, чем Knime, Rapid Miner (4, 5):
- (1), (2) обладают несравненно большей гибкостью на всех этапах АД;
- с помощью (3) можно быстрее осуществлять АД;
- (3) предоставляет результаты работы намного детальнее и удобнее;
- (4, 5) как, впрочем, и (3) не предоставляют достаточной свободы действий;
- кроме низкого порога вхождения и красивой картинки представление процесса АД в виде графа в (4, 5) объективных преимуществ не имеет.
Сравнивая двух «проигравших», можно сделать вывод, что Knime (4) лучше, чем Rapid Miner (5):
- (4), в отличие от (5), предоставляется на полностью бесплатной основе;
- при этом возможности (4) и (5) представляются одинаковыми.
Впрочем, ситуация насчет работы с БД и большими данными остается неясной: возможно, в этих случаях Knime и Rapid Miner использовать предпочтительнее.
Резюме
Мы убедились, что не зря Python и R так популярны: сравнительный анализ наглядно показал, что эти инструменты можно считать обязательными. А вот с Weka и Knime все оказалось не так просто: истинные преимущества и недостатки, а также возможности работы можно до конца понять только после продолжительной работы с каждым инструментом.
В статье произведен обзор возможностей программной среды RapidMiner для интеллектуального анализа данных. А также сравнительный анализ инструментов для аналитической обработки данных .