Полигон алгоритмов

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

Назначение

Одна из основных целей проекта «Полигон» — упрощение обмена результатами исследований. Например, в научной статье можно указать ссылку на результаты тестирования алгоритма в системе «Полигон», предоставив читателям возможность самостоятельно провести анализ достоинств и недостатков алгоритма.

Достоинства

В отличие от существующих систем такого типа, «Полигон» является интернет-ресурсом, имеет централизованное хранилище задач и результатов тестирования, распределённую наращиваемую пользователями сеть вычислительных серверов и расширенную визуальную методику тестирования.

Особенности

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

Поддержка базы задач

База задач хранится централизованно на главном сервере «Полигона». Начальный набор задач формируется из репозитория UCI, который используется исследователями для тестирования алгоритмов классификации.

Поддержка базы алгоритмов

Алгоритм реализуется в виде вычислительного модуля (плагина), в соответствии с внутренними стандартами системы «Полигон» и размещается на собственном компьютере пользователя. Взаимодействие системы «Полигон» с пользовательскими алгоритмами осуществляется при помощи веб-сервисов.

Разграничение прав доступа

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

Формирование отчётов

Пользователь может сформировать запрос на получение отчёта по конкретной задаче или алгоритму , задавая управляющие параметры алгоритма , параметры методики тестирования и т.д. Можно получить подробные отчёты в виде таблицы «алгоритмы × показатели» , «задачи × показатели» , а так же соответствующие графики ( основной показатель качества , значения средней вариации и смещения и т.д. ).

Методика тестирования

Методика тестирования основана на процедуре N-кратного скользящего контроля (N-fold cross-validation). Выборка N раз разбивается на блоки примерно одинаковой длины, случайным образом, но со стратификацией классов.

Результаты всех классификаций используются для вычисления набора показателей, некоторые из которых представляются в виде графиков:

  • Основной показатель качества — средняя частота ошибок на контроле, с доверительным интервалом.
  • Средняя переобученность (разность частоты ошибок на контроле и обучении).
  • Графики эмпирических распределений частоты ошибок на контроле и переобученности. Эмпирические распределения позволяют оценивать риски, связанные с переобучением.
  • ROC-кривые на обучающих и контрольных данных.
  • Разложение средней ошибки на вариацию и смещение (bias-variance decomposition).
  • График распределения объектов выборки по значениям вариации и смещения.

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

Преимущества

  • Гарантия воспроизводимости и верифицируемости результатов тестирования.
  • Возможность представления коммерческих алгоритмов.
  • В отличие от RapidMiner и WEKA, нет ограничений на язык программирования, используемый для реализации алгоритмов. Это упрощает перенос в систему готовых алгоритмов, написанных на разных языках.

Регистрация алгоритма на сайте

Перейдя в раздел «Алгоритмы» и нажав на кнопку «Подключить алгоритм» мы увидим следующее окно:

  • Название: Название алгоритма. Можно вводить как на русском, так и на английском языке. Одновременно название вводится транслитом в поле Синоним.
  • Синоним: Уникальное имя алгоритма на английском языке. Используется в качестве идентификационного поля алгоритма при запросе заданий на обсчет. После ввода Названия можно изменить синоним.
  • Рубрики: Различные классы алгоритмов, различающиеся по принципу обработки задач или по сложности. Можно выбрать несколько наиболее подходящих рубрик, к которым относится алгоритм. При неправильном выборе лишнюю рубрику всегда можно удалить.
  • Описание: По возможности краткое описание алгоритма. Можно вводить как на русском, так и на английском языках

Описание свойств(полей) параметра

В разделе указано, как используются поля каждого параметра алгоритма.

  • Название: имя параметра, каким оно будет отображаться на сайте и передаваться алгоритму.
  • Тип: один из доступных типов, различающихся по множеству допустимых значений.

Доступные типы параметров:

  • Числовой (целый) параметр
  • Числовой (вещественный) параметр
  • Номинальный параметр

Принимает дискретное множество значений. Причем к каждому значению можно задать описание.

  • Параметр-флаг (без значений)

Не имеет значений. Либо используется (флаг поднят), либо нет (флаг опущен). Использование по умолчанию: включен данный параметр в набор параметров по умолчанию или нет. Значение по умолчанию: то значение параметра, которое берется, если не задано другое. Указывается в любом случае, даже если флаг использования по умолчанию не стоит.

Структура таблицы параметров:

  • В колонках «Название» и «Комментарий» отображены текстовые поля. Редактирование теста в них изменяет соответствующие поля параметра.
  • В колонке «Тип» указано текстовое описание типа параметра. Значение данного поля можно задать только при добавлении параметра, в таблице изменить нельзя.
  • Записи колонки «Возможные значения» соответствуют типу параметра. Редакция возможных значений возможна только для номинального параметра.
  • Поле «Использование по умолчанию» отображается флагом. Если флаг поднят, это означает, что данный параметр используется в наборе по умолчанию.
  • Колонка «Значение по умолчанию»:
    • если тип параметра числовой, то отображается текстовое поле, куда можно ввести новое значение.
    • если тип параметра номинальный, то значение по умолчанию выбирается из выпадающего списка всех возможных значений номинального параметра.
    • если это параметр-флаг, то колонка остается пустой.
  • Последняя колонка служит для изменения общей структуры параметров: возможности удаления и перемещения параметров.

Для добавления нового параметра используется область в нижней части страницы 3-го шага. Если до этого параметров не было, страница выглядит следующим образом:

Заполнение полей при добавлении нового параметра

Единственным существенным полем при добавлении нового параметра, является его тип, поскольку все остальные поля можно редактировать уже после добавления. Определите тип с помощью выпадающего списка: Все оставшиеся поля, кроме использования по умолчанию, можно либо задать в данной области, либо при редактировании в таблице. Поле Использование по умолчанию задается флагом только в таблице. Важно! Если Вы решили изменить оставшиеся поля редактированием в таблице, добавьте параметр с имеющимися данными в список. Поля, которые одинаковы для всех типов параметров: В поле слева, где написано «Новый параметр», нужно ввести название параметра. При добавлении параметра в список, его названием является то, что записано в данном поле. В поле справа, где написано «Комментарий», введите комментарий к параметру. Если в данном поле остался текст «Комментарий», считается, что это пустая строка. В зависимости от выбранного типа соответствующим образом изменятся возможность изменения других полей добавляемого параметра:

  • Если выбран Числовой (целый) параметр или Числовой (вещественный) параметр, то следует в поле, где написано Значение по умолчанию, ввести число в соответствующем формате, которое будет задавать значение по умолчанию для данного параметра, если он используется. Если значение не введено, то при добавлении параметра считается равным 0.
  • Если выбран Параметр-флаг (без значений), никаких полей больше заполнять не надо:

  • Если выбран Номинальный параметр:

Здесь можно добавлять новые значения, которые будет принимать данный параметр. У каждого такого значения может быть свое описание. Уже добавленные значения можно удалить (для этого надо выбрать значение в выпадающем списке и нажать на кнопку удалить). Редактировать конкретное значение и его описание можно только после добавления параметра. Также множество допустимых значений можно задать или изменить позже, нажав на кнопку Изменить в колонке Возможные значения у конкретного параметра (см. Редактирование параметров).

Добавление параметра в список

Для добавления нового параметра к списку уже имеющихся, нажмите на кнопку Добавить. Тогда новый параметр заданного типа с соответствующими данными появится последним в таблице выше, а область Добавление нового параметра возвратится в первоначальное состояние (изменится только порядковый номер в названии параметра):

Редактирование списка параметров в таблице

Изменение названия параметра У всех параметров можно изменять название. Для этого надо ввести новое название в текстовое поле в колонке Название. Названия параметров не должны повторяться. Изменение поля использования по умолчанию У всех параметров есть поле «Использование по умолчанию». Для того чтобы данный параметр использовался в наборе по умолчанию надо поднять флаг в колонке Использовать по умолчанию. Изменение возможных значений номинального параметра Для того чтобы изменить возможные значения номинального параметра, надо нажать на ссылку Изменить в колонке Возможные значения. В данной колонке появится дополнительная область:

  • Чтобы добавить новое допустимое значение, надо ввести его в поле с надписью «Значение», ввести описание к нему(если надо) в поле с надписью «Описание», а затем нажать на ссылку Сохранить.
  • Чтобы изменить текст или описание у конкретного значения, выберете его из списка:

После этого поле с надписью «Значение» заполнится текстом этого значения, а поле с надписью «Описание» - описанием к нему. Измените текст и описание в этих полях и нажмите на ссылку Сохранить. Чтобы удалить некоторое значение из списка возможных, выберете его из списка (аналогично предыдущему) и нажмите ссылку Удалить. Чтобы отменить редактирование возможных значений, нажмите на ссылку Отмена

Изменение значения по умолчанию

Изменение значения по умолчанию осуществляется в колонке с соответствующим названием. В зависимости от типа параметра происходит по-разному:

  • Целочисленный параметр: введите новое целое число в отображаемое текстовое поле.
  • Вещественный параметр: введите новое вещественное число вида 4,5 или -1.4E-12 в отображаемое текстовое поле.
  • Номинальный параметр: выберете значение из выпадающего списка. Список состоит из всех допустимых значений данного параметра. Множество допустимых значений можно изменить.
  • Параметр-флаг: значения по умолчанию нет, ничего не отображается.

Изменение комментария к параметру

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

Изменение порядка следования параметров

Параметры можно поменять местами. Для этого нажимайте на синие стрелочки в последней колонке. Например, если нажать на синюю стрелку вверх данный параметр поменяется местами со стоящим выше параметром: Если нажать на синюю стрелку вниз данный параметр поменяется местами со стоящим ниже параметром.

Удаление параметра

Чтобы удалить параметр из списка, нажмите на красный крест в последней колонке в соответствующей параметру строке: После нажатие «сохранить» ваш алгоритм будет успешно добавлен.

Реализация собственного алгоритма

Чтобы не терять времени, наиболее простым путем будет взять болванку, которую вы можете скачать по следующий ссылке [болванка алгоритма] и добавить в файле Algorithm.cs свой алгоритм.

Формирование отчётов

Пользователь формирует запрос на получение отчёта, задавая:

  • список задач из репозитория системы;
  • список алгоритмов, из числа доступных в системе;
  • внешние (управляющие) параметры каждого алгоритма, если таковые имеются;
  • параметры методики тестирования.

В ответ на запрос строится основной отчёт в виде таблицы «задачи × алгоритмы», в ячейках которых по умолчанию записан основной показатель качества. Показатель можно заменить на другой, например, вывести значения средней вариации и смещения. Доступны также детальные отчёты:

  • по данной задаче и данному алгоритму все показатели и графики, рассчитанные согласно методике;
  • по данной задаче таблица «алгоритмы × показатели»;
  • по данному алгоритму таблица «задачи × показатели»;

Формы представления отчётов будут расширяться. Один раз вычисленные результаты тестирования сохраняются в центральной базе данных «Полигона» и при повторном запросе выдаются без обращения к алгоритмам. Когда алгоритм обновляется, его сохранённые результаты стираются. Во многих случаях это позволяет получать отчёты очень быстро. Если Ваш алгоритм сравнивается со стандартными на стандартном наборе задач, то системе остаётся запустить только Ваш алгоритм.

Т.к. наш алгоритм проходит модерацию, как пример, рассмотрим уже существующий отчет. Из отчета можно получить такие данные как:

  • Roc-кривая(кривая ошибок) - графичекая характеристика качества бинарного классификатора, зависимость доли верных положительных классификаций от доли

  • Кривая обучаемости — графическое представление изменения скорости обучения.

  • Карта ошибок.По оси Х – частота ошибок на обучении, по оси У частота ошибок на контрольной выборке, каждая точка на карте соответствует одному разбиению

  • Распределение отступов. По оси Х – объекты, по оси У – средний отступ объекта от граница класса

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

Ссылки

Печать/экспорт