Weka
Weka (Waikato Environment for Knowledge Analysis, в переводе «окружение для анализа знаний Университета Вайкато») — это программная платформа для машинного обучения и интеллектуального анализа данных, написанная на Java и разработанная в Университете Вайкато. Weka распространяется как свободное программное обеспечение под лицензией GNU GPL.
Общие сведения
| Weka | |
|---|---|
| Тип | машинное обучение |
| Разработчики | Университет Вайкато (Новая Зеландия) |
| Написана на | Java |
| Операционная система | мультиплатформенный |
| Аппаратная платформа | Java Virtual Machine |
| Последняя версия | 3.6.15 (книга), 3.8.3 (стабильная), 3.9 (разработка) (31 октября 2011) |
| Тестовая версия |
|
| Репозиторий | git.cms.waikato.ac.nz/we… |
| Лицензия | GPL |
| Сайт | cs.waikato.ac.nz/~ml/wek… |
Краткая история
- В 1993 году Университет Вайкато (Новая Зеландия) начал разработку оригинальной версии Weka на Tcl/Tk и C.
- В 1997 году было принято решение переписать код на Java, включив реализации моделирующих алгоритмов[2].
- В 2005 году Weka получила награду «Data Mining and Knowledge Discovery Service» от SIGKDD (Special Interest Group on Knowledge Discovery and Data Mining)[3].[4]
- В 2006 году компания Pentaho приобрела эксклюзивную лицензию на использование Weka для бизнес-аналитики, в результате чего был создан компонент data mining и прогнозной аналитики пакета ПО Pentaho Business Intelligence.
Описание
Пакет Weka[5] содержит набор инструментов визуализации и алгоритмов для анализа данных и прогнозного моделирования с графическим пользовательским интерфейсом для облегчения доступа к функциям. Оригинальная версия Weka была frontend-программой на Tcl/Tk для моделирования алгоритмов, реализованных на других языках программирования, плюс утилиты для предварительной обработки данных, разработанные на C для проведения экспериментов по машинному обучению. Исходно предназначалась для анализа данных из сельскохозяйственной области[6],[7] однако современная Java-версия (WEKA 3), созданная с 1997 года, применяется в самых разных областях, особенно в образовании и научных исследованиях.
Основные особенности Weka:
- Свободно распространяется под лицензией GNU GPL.
- Является кросс-платформенным решением, полностью реализованным на Java, что позволяет запускать её практически на любой платформе.
- Включает широкий спектр методов предварительной обработки данных и моделирования.
- Оснащена графическим пользовательским интерфейсом, что делает Weka удобной для начинающих пользователей.
Weka поддерживает множество стандартных задач интеллектуального анализа данных, таких как предварительная обработка данных, кластеризация, классификация, регрессия, визуализация и отбор признаков. Все методы Weka предполагают, что данные представлены в виде плоского файла (flat file) или отношения, где каждая запись описывается фиксированным набором атрибутов (обычно числовых или номинальных, однако поддерживаются также и другие типы). Weka также предоставляет доступ к базам данных через соединение JDBC (Java Database Connectivity) и способна обрабатывать результаты SQL-запросов. Прямое выполнение многореляционного анализа данных (multi-relational data mining) не поддерживается, однако существуют утилиты для преобразования набора связанных таблиц в одну таблицу, подходящую для анализа в Weka[8].
Алгоритмы, входящие в Weka, не охватывают задачи по моделированию последовательностей.
Пользовательский интерфейс
При запуске приложения появляется диалог выбора интерфейса Weka, предлагающий четыре варианта интерфейса для доступа к функциям программы: Simple CLI, Explorer, Experimenter и Knowledge Flow.
Simple CLI — простая командная строка. Это консоль, позволяющая работать со всеми возможностями Weka через командную строку.
Интерфейс Explorer содержит несколько панелей, предоставляющих доступ к основным компонентам платформы:
- Панель Preprocess предназначена для импорта данных из базы данных, CSV-файла и их предварительной обработки с помощью фильтров. Фильтры позволяют преобразовывать данные (например, переводить числовые значения в дискретные), а также удалять записи или атрибуты по заданным критериям.
- Панель Classify предоставляет средства для применения алгоритмов классификации и регрессии к подготовленным множествам данных. Здесь также можно оценить точность итоговой прогнозной модели, в том числе с использованием ROC-кривых, а также визуализировать модель (например, дерево решений).
- Панель Associate позволяет работать с ассоциативными правилами, выявляющими взаимосвязи между атрибутами данных.
- Панель Cluster обеспечивает доступ к функциям кластеризации, включая алгоритмы k-средних и реализацию алгоритма ожидания-максимизации для работы с нормальными распределениями.
- Панель Selected attributes служит для выбора наиболее значимых признаков (атрибутов) в датасете.
- Панель Visualize отображает матрицу точечных диаграмм, где каждую точку можно выделить и проанализировать с помощью разных инструментов.
Интерфейс Experimenter позволяет систематически сравнивать работу прогнозных алгоритмов Weka на различных наборах данных.
Knowledge Flow реализует те же функции, что и Explorer, но дополнительно поддерживает принцип «drag and drop» («перетащи и отпусти») и обучение на потоке.
Связанные приложения
- KNIME — платформа интеллектуального анализа данных, также реализованная на Java.
- Neural Designer — инструмент для прогностической аналитики, использующий методы глубокого обучения.
- RapidMiner — среда для data mining, написанная на Java и взаимодействующая с Weka.
Примечания
Ссылки
- Официальная страница Weka (Университет Вайкато, Новая Зеландия)
- Страница проекта Weka на SourceForge (приобретение компанией Pentaho в сентябре 2006)
- WekaDoc — Wiki с документацией Weka
- Страница о Weka от Сесара Ферри (Политехнический университет Валенсии, Испания)
- Введение в Weka (на испанском)
- Сравнение алгоритмов интеллектуального анализа данных — через TodoBI
