Интеллектуальный анализ данных с WEKA с примерами на Java и R.

Это статья для тех, кто уже освоил некоторые теоретические основы машинного обучения и хочет попробовать, посмотреть на то, как же все это выглядит на практике.

WEKA – это свободно распространяемый программный комплекс, разработанный в одном из университетов Новой Зеландии – Уайкато. WEKA- не просто Java – библиотека. Это целая среда для работы с данными. Если вы не умеете работать с кодом, то можете взаимодействовать со средой в визуальном режиме.

weka

Для начала работы необходимо загрузить библиотеку. Это можно сделать по ссылке.

После выполните обычную установку. Мы сначала поработаем в визуальном режиме.

Опробуем библиотеку на самой известной задаче классификации – задаче Фишера о классификации цветков ириса. Если вы вдруг, каким-то образом, слышите о ней в первый раз, то с задачей можно ознакомиться здесь.

Для начала нам необходимо получить исходный набор данных (data set). Чтобы не подготавливать данные вручную, загрузим их из репозитория UCI. Ссылка на нужный нам dataset.

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

Формат очень прост.

arff_1

 

Сначала следует название объекта, а следом указываются атрибуты. Последним атрибутом является наименования класса, к которому принадлежит объект.

Далее необходимо описать сами данные. Это делается следующим образом. Перед непосредственно нашим набором данных добавляем @Data:

data

Теперь запускаем WEKA. Заходим в Explorer.

Нам необходимо загрузить наши данные. Жмем Open File и выбираем наш файл.

После этого на экране должно получиться следующее:

screen_iris

Остановимся на этом поподробнее. В левой части расположились наши признаки и там же указано количество объектов в выборке. У нас их 150 (Instances = 150).

relations

При щелчке по каждому из признаков в окне справа можно увидеть дополнительные сведения о признаках: минимальное, максимальное и среднее значение.

Ну и конечно же мы не можем пройти мимо графика. Нажмите кнопку Visualize All, чтобы увидеть соотношения количества объектов и значений признаков по каждому классу.

visualize_all

Для выполнения классификации переходим на вкладку Classify.

Там мы увидим окно Test Options.

test_options

Выбираем Use Training Set, чтобы использовать модель, которую WEKA создаст на основе наших данных из *.arff – файла. Далее необходимо выбрать метод классификации.

Жмем Choose -> Вкладка lazy — > IBk.

Это метод классификации kNN, то есть k ближайших соседей.

Подробное описание класса здесь.

Теперь жмем Start. Ждать придется недолго, и мы получим результат.

weka_result

Таким же образом вы можете поработать с каким-то своим примером. Выбрав то, что хотите анализировать, определитесь с признаками и их характеристиками. Подбор хороших признаков – это конечно искусство. Но всегда есть, к чему стремиться 😉

 

Теперь проделаем тоже самое средствами языка R.

Предположим, что вы уже установили среду RGui и готовы приступить к работе.

Для R существует надстройка RWeka, которая дает доступ ко всему пакету WEKA. Для установки наберите следующий код:

Теперь необходимо прочитать подготовленный ARFF-файл. Для этого воспользуемся функцией read:

Теперь передадим наш набор данных классификатору:

Вот и все!

 

Публикации, посвященные WEKA, должны ссылаться на документ http://www.kdd.org/explorations/issues/11-1-2009-07/p2V11n1.pdf?cm_mc_uid=33626507721114522502964&cm_mc_sid_50200000=1454610427 .

 

Прочитать про метод к-ближайших соседей можно здесь.

 

http://www.machinelearning.ru/wiki/index.php?title=KNN

 

Подробнее о формате ARFF можно ознакомиться по ссылке http://weka.wikispaces.com/ARFF+%28book+version%29?cm_mc_uid=33626507721114522502964&cm_mc_sid_50200000=1454610427

Не забываем про репозиторий UCI – это сборник реальных задач по машинному обучению вместе с наборами данных.

http://archive.ics.uci.edu/ml/

Спасибо за внимание! До встречи в следующих публикациях!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *