Translate

среда, 31 декабря 2014 г.

Реализация векторной машины на основе библиотеки libVMR

На данный момент реализована библиотека libVMR на Java для решения стандартной задачи машинного обучения в области бинарной классификации:

  • Имеется выборка с примерами и ответами на них.
  • Необходимо по выборке получить адекватную модель бинарной классификации.
Структура векторной машины выглядит так:


  1. Первоначально информация, из которой необходимо будет построить модель для бинарного классификатора, храниться в файле в формате CSV.
  2. C помощью Парсера можно выбрать файл и преобразовать его в двумерный числовой массив, где строки массива - это примеры, а ячейки каждой строки - объясняющие переменные (начальные ячейки) и одна независимая переменная (последняя ячейка)
  3. Двумерный массив с числовыми данными подается на вход векторной машины VMR
    1. Сначала массив поступает в Сепаратор, задачей которого разбить строки на две части: обучающую и контрольную.
    2. Обучающая часть выборки передаётся в Нормировщик, целью которого преобразовать все числа к диапазону от -1 до 1 включительно.
    3. Нормированные данные поступают в Ядерную машину, где из различных комбинаций объясняющих переменных  происходит формирование членов для полинома математической модели.
    4. В конечном итоге, члены полинома передаются Векторной машине, задачей которой является подбор коэффициентов для них. В результате чего, на выходе векторной машины получается математическая модель бинарного классификатора в виде готового полинома
  4. Однако полученная в векторной машине модель не вовсе не обязательно будет пригодной для прикладного применения. Чтобы проверить её на пригодность, необходимо выяснить обобщающую способность модели, Для этой цели предусмотрен Тестер. Тестер берёт модель и проверяет её результативность на контрольной части выборки, ранее полученной путем разделения общих данных в Сепараторе.
Одно дело создать библиотеку для каких нибудь методов машинного обучения, другое дело ей воспользоваться. Чтобы было проще пользоваться библиотекой libVMR, не прибегая к программированию, необходимо создать какой нибудь юзабельный интерфейс, способный решать задачи с помощью библиотеки.

Собственно решение задачи бинарной классификации делится на несколько этапов:

1. Выбор предметной области, в рамках которой будут проводиться исследования.
2. Сбор информации — генеральная выборка
3. Анализ информации — машинное обучение с целью построения модели на одной части выборки (обучающая часть) с последующей проверкой на второй части выборки (контрольная часть).
4. Принятие решения о том, подходит ли построенная модель для прикладного решения задачи или необходимо продолжить исследования в данной области.

Для того, чтобы решать задачу по п. 3 и п. 4, необходим инструмент. Его реализация указана ниже.

Имея собранные согласно п. 2, информационные данные для решаемой задачи размещаются в электронной таблице в формате CSV.

После того, как приложение с графическим интерфейсом запущено, можно загрузить информацию в приложение, воспользовавшись пунктом меню File > Open. После загрузки данных, сразу же запускается процесс предобработки и машинного обучения — построения модели на одной части выборки. После завершения построения модели, она проверяется на второй части выборки и выдаются характеристики обобщающей способности (The quality of modeling): чувствительность(Sensitivity of generalization ability), специфичность (Specificity of generalization ability)  и обобщающая способность (Generalization ability) в процентах.


Если характеристики обобщающей способности модели являются подходящими для решения задачи, то готовую модель можно записать в текстовый файл, воспользовавшись пунктом меню File > Save model. Сама модель будет записана в файл в виде формул: нормирования входных данных и формулы принятия решения, где зависимая переменная обозначена, как y. Если значение в формуле принятия решения больше нулевого, то распознаваемый объект принадлежит к классу в выборке со значением зависимой переменной помеченной единицей. Если значение в формуле принятия решения меньше нулевого, то объект принадлежит к классу со значением в выборке значением зависимой переменной помеченной нулём.

 Скачать свежую версию скомпилированного JAR архива для запуска графического приложения, а также исходные коды библиотеки и приложения можно на сайте: http://libvmr.sourceforge.net/

Юрий Решетов

Комментариев нет:

Отправить комментарий