Weka — набор программных инструментов для машинного обучения и анализа данных, реализованный на языке Java. Инициированная в академической среде, эта система предоставляет графические интерфейсы и прикладные библиотеки для выполнения типичных задач подготовки данных, построения моделей, их оценки и визуализации. Weka ориентирована на исследовательское и образовательное использование, а также служит платформой для быстрого прототипирования методов анализа данных и сравнения алгоритмов на стандартных наборах данных.
Программный пакет включает реализации множества классических алгоритмов классификации, регрессии, кластеризации и отбора признаков, а также инструменты для предобработки, трансформации и оценки качества моделей. Архитектура Weka модульная: пользователи могут комбинировать фильтры предобработки с различными методами обучения и оценивания, автоматизировать эксперименты и воспроизводить результаты. Благодаря использованию Java Weka переносима между платформами и может быть расширена через плагины и подключаемые модули.
- Предобработка данных: импорт и экспорт табличных форматов, нормализация, дискретизация, заполнение пропусков, кодирование категориальных признаков.
 - Классификация: реализации деревьев решений, наивного байесовского классификатора, метод ближайших соседей (k-NN), методов опорных векторов и ансамблевых методов.
 - Регрессия: линейные и нелинейные регрессоры, регрессия на деревьях, методы на основе ядер и ансамблевые подходы для прогнозирования числовых значений.
 - Кластеризация: алгоритмы k-средних, иерархической кластеризации, алгоритмы на основе плотности и другие методы для выявления групп в данных.
 - Отбор и оценка признаков: статистические критерии, методы на основе значимости, пошаговый отбор, меры взаимной информации и встроенные средства для оценки важности признаков.
 - Оценка моделей: сквозная поддержка кросс-валидации, разделения на обучающую и тестовую выборки, метрик качества (точность, F-мера, ROC-кривые и др.) и сравнительных экспериментов.
 - Визуализация: простые графические средства для отображения распределений признаков, матриц ошибок, распределений кластеров и результатов классификации.
 - Интеграция и расширяемость: API на Java для встраивания методов в другие приложения, поддержка скриптов и возможность добавления новых алгоритмов через расширения.
 - Инструменты для обучения и экспериментов: сценарии автоматизации оценки, сравнения методов, сохранения моделей и воспроизведения экспериментальных результатов.