WEKA. Руководство по использованию

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Начав изучать библиотеку Weka я обнаружила, что в Интернете очень мало информации о ней на русском языке – как с ней работать и как ее использовать. Эта статья будет вводной для знакомства с библиотекой.

Что такое WEKA?

Начнем с того, что WEKA – это библиотека для анализа данных и машинного обучения, написанная на Java. Название расшифровывается как Waikato Environment for Knowledge Analysis. Это проект Университета Waikato в Новой Зеландии. Weka представляет собой набор современных алгоритмов машинного обучения и инструментов предварительной обработки данных. Скачать ее можно на сайте.

Weka
Weka

Работать в WEKA можно, как через графический интерфейс, так и используя библиотеку в коде. В этой статье мы разберем использование библиотеки с помощью графического интерфейса. Так как изучать что-то новое интереснее и быстрее на практике, то будем учиться пользоваться библиотекой на примере данных, взятых с портала Kaggle.

Загрузка данных в WEKA

Интерфейс WEKA

Открываем Weka. Weka содержит несколько приложений для работы с данными: Explorer, Experimenter, KnowledgeFlow, Workbrench, Simple CLI. Нас интересует Explorer. Это основной  графический интерфейс Weka. Explorer содержит 7 различных панелей.

Интерфейс WEKA
Интерфейс WEKA

Загрузка данных

Для начала загрузим данные. Делается это в панели Preprocess. Нажимаем Open file… и выбираем нужный файл. Для хранения данных Weka использует формат ARFF. ARFF – это аббревиатура от Attribute-Relation File Format. Файл типа ARFF выглядит следующим образом:

Данные в формате ARFF
Данные в формате ARFF

Файл ARFF состоит из двух частей: в первой части находится информация о данных – список атрибутов и их типы, а во второй части, после @data – сами данные. Первая строка файла – это название самого файла.

Weka также позволяет открывать файлы других типов. Для этого используется конвертер.

Предварительная обработка данных

Предварительная обработка данных проводится в панели Preprocess.

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

Для начала изучим данные. Наш набор данных состоит из 3276 примеров и 10 атрибутов.

Открытие данных в WEKA
Открытие данных в WEKA

Пропуски

Проверим данные на пропуски. Выбрав атрибут мы видим информацию о нем – значения какого типа он содержит, сколько пропущенных значений и т.д. Проверив все атрибуты мы видим, что пропущенные значения содержат следующие атрибуты: ph, sulfate, trihalomethanes.

Для того, чтобы заполнить пропуски в WEKA существует 2 фильтра: ReplaceMissingValues, который заполняет пропуски модой и средним значением и ReplaceMissingWithUserConstant, который заполняет пропуски заданным пользователем значением. Воспользуемся фильтром ReplaceMissingValues. Найти этот фильтр можно нажав Choose… и выбрав weka→filters→unsupervised→attribute→ReplaceMissingValues. Применим данный фильтр, нажав Apply.

Преобразование типа данных

Для того, чтобы мы могли работать с разными алгоритмами преобразуем тип атрибута potability в номинальный тип. Для этого воспользуемся фильтром NumericToNominal (находится он там же, где и предыдущий) и в настройках фильтра в строке attributeIndices укажем значение last (последний атрибут). Затем нажмем Apply.

Обучение

В панели Classify мы можем выбрать алгоритм машинного обучения и обучить наши данные.

Результаты обучения в WEKA зависят от типа класса, который мы предсказываем. Например, если мы хотим предсказать тип nominal, то мы получаем точность классификации и матрицу ошибок. А если мы хотим предсказать числовой (numeric) тип, то точность классификации и матрицу ошибок мы не получаем. В этом случае мы оцениваем качество модели по коэффициенту корреляции и другим характеристикам.

Выберем алгоритм RandomForest. Находится он в папке trees.

Для обучения модели будем использовать кросс-валидацию.

Кросс-валидация (перекрестная проверка) – это статистический метод оценки модели. В кросс-валидации данные разбиваются на k подмножеств, которые по очереди используются в обучающей и тестовой выборках. Одно подмножество используется для тестирования, а остальные (k-1) – для обучения. Процедура повторяется k раз и в результате мы получаем усредненные результаты. Задать количество подмножеств в WEKA можно в окошке Folds (по умолчанию там 10).

Оставляем значение по умолчанию и нажимаем Start. В результате мы получаем точность обучения, которая равна 66,88%, матрицу ошибок и другие оценки качества модели.

Результаты обучения модели
Результаты обучения модели

Заключение

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

В установочной папке Weka есть папка data, где находятся наборы данных, которые можно использовать для практики.

Если вам понравилась WEKA и вы хотите изучить ее лучше, то на сайте futurelearn.com есть 3 курса от создателей WEKA – Data Mining with Weka, More Data Mining with Weka, Advanced Data Mining with Weka. К курсам можно присоединиться бесплатно, но тогда доступ к курсам будет ограниченный. Также видеоуроки этих курсов доступны в YouTube.

Источник: https://habr.com/ru/post/590565/


Интересные статьи

Интересные статьи

Об одной из важнейшей функциональности Angular «Внедрение зависимостей», на просторах рунета написано преступно мало, в основном затрагивается, только «Внедрение сервисов». В этом материале я расскажу...
Часть 1. Вступление … Часть 5. Функции Часть 6. Специфика Google … Эта статья является переводом части руководства Google по стилю в C++ на русский язык. Исходная статья (fork на github), об...
Ознакомившись с этим руководством, вы научитесь легко задавать целевые уровни обслуживания (SLO, от англ. Service Level Objectives) для работоспособности сервисов в Kubernetes с помощью&n...
Доброго времени суток, друзья! Представляю вашему вниманию перевод второй части Руководства по Express — веб-феймворку для Node.js автора Flavio Copes. Предполагается, что в...
Автор статьи, перевод которой мы сегодня публикуем, говорит, что в компании commercetools приняли на вооружение хуки React в начале 2019 года — в момент их появления в React 16.8.0. С тех пор про...