Полигон алгоритмов/Формат данных задачи
Материал из MachineLearning.
Задачи в формате системы «Полигон» представляют собой набор .csv-файлов. Разделителем служит точка с запятой (;). Пропуск или пусто поле --- двумя подряд идущими разделителями. Например, если в строке есть значения 3, пропуск и 4, то строка в .csv-файле будет выглядеть так: «3;;4». В качестве разделителя дробной и целой части числа используется запятая («,»).
Не все данные для задачи являются необходимыми. Обязательные файлы --- это матрица объекты-признаки и вектор значений целевого признака. Все остальные данные --- необязательные. Необязательные файлы отмечены (*).
Содержание |
Общая информация/Index.csv(*)
Информация о задаче. Файл может лежать в архиве, передаваемом системе. В первой строке записан размер данных задачи <Число_объектов>;<Число_признаков>. В следующих строках указано расположение прочей информации о задаче. В первой ячейке строки идет имя информации, во второй и последующих --- сама информация.
Имя | Ожидаемые значения во второй ячейке строки |
---|---|
Objects | Имя файла, в котором лежит матрица объекты-признаки задачи. По умолчанию это файл Objects.csv |
Target | Имя файла, в котором лежат данные целевого признака. По умолчанию это файл Target.csv |
PropertyDesciption | Имя файла, в котором лежит информация о признаках. По умолчанию это файл PropertyDescription.csv |
Loss | Имя файла, в котором лежит информация о ценах ошибок. По умолчанию это файл Loss.csv |
Weights | Имя файла, в котором лежит информация о весах объектов. По умолчанию это файл Weights.csv |
MajorClass | Метка выделенного (важного) класса. Относительно этого класса рассчитываются некоторые показатели в системе. |
Данные/Objects.csv
Матрица объекты-признаки. Так как это матрица, то число ячеек в каждой строке должно быть постоянным и равно числу признаков. Число строк должно совпадать с числом объектов. Не нужно оставлять в этом файле имена колонок-признаков, их нужно вынести в PropertyDescription. В ячейках могут находиться пропуски, дробные числа (для числовых признаков, десятичный разделитель — запятая), целые числа (числовые и номинальные признаки) или строки (только для номинальных признаков). Размер матрицы N на M.
Целевой вектор/Target.csv
Столбец размером N. Может содержать целые числа или строки. Не может содержать пропусков.
Описание признаков/PropertyDesciption.csv(*)
M+1 строка с ячейками. Первые M строк - описание признаков из матрицы Objects, последняя, M+1-ая, строка -- описание целевого признака. Формат строк следующий:
<Имя признака>; <Тип признака>[; <Подробное описание признака>[; <Список значений для номинального признака>]]
Имя признака
Тестовое поле, рекомендуемая длина не более 20 символов. Это обязательное поле
Тип признака
Может быть одним из следующих 4-х значений: «NUM», «ORD», «NOM», «BIN». Это обязательное для заполнения поле.
Тип признака | Описание |
---|---|
NUM | Числовой признак, например: доход, возраст, рост, вес. |
ORD | Номинальный, упорядоченный признак. Число значений данного признака конечно, все значения целые. На значениях признака определен естественный для чисел порядок. |
NOM | Номинальный признак, имеет конечное число значений. Значения признака не сравнимы друг с другом. Пример номинального признака: пол. |
BIN | Бинарный признак. Да/нет, true/false. В матрице должен быть 1/0 соответственно. |
Подробное описание признака
Текстовое поле. Здесь можно подробно описать суть признака, способ его измерения.
Список значений для номинальных признаков
Формат ячеек в строке такой: <число>:<строка>, где число — одно из чисел стоящее в соответствующей данному признаку колонке в Objects, строка — пользовательское представление данного значения.
Данное описание может отсутствовать для некоторых номинальных признаков, если в матрице Objects вместо чисел стоят строки с пользовательскими представлениями в колонке соответствующей данному признаку.
Матрица цен ошибок/Loss.csv(*)
Матрица размером <Число классов> на <Число классов>. В ячейке с индексами (i, j) стоит штраф, который назначается алгоритму если он выдал решение j, на i-ом классе.
Вектор весов/Weights.csv(*)
Вектор длинны N. Отражает важность объектов при решении задачи. Состоит из чисел, не должен иметь пропусков.
Пример
TODO: загрузить архив с примером оформления файлов задачи.