MVR Composer

Материал из MachineLearning.

Перейти к: навигация, поиск

Содержание

MVR Composer (Multivariate Regression Composer) — программа, работающая в системе Matlab. Создает математические регрессионные модели, используя измеряемые данные и экспертные предположения о структуре моделей.

Введение

MVR Composer
MVR Composer

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

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

Последовательность работы программы следующая.

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

Затем итеративно выполняется следующая последовательность шагов.

  1. Оптимизируются параметры моделей, критерий качества (по умолчанию) среднеквадратическая ошибка.
  2. Оптимизируются гиперпараметры (параметры информативности элементов) моделей.
  3. На основе информации об информативности элементов порождаются новые модели.
  4. Из объединенного множества начальных и порожденных моделей выбираются лучшие.
  5. Последовательность повторяется до тех пор, пока не будет получена модель с ошибкой, не превосходящей заданную

или пока не будет выполнено заданное число итераций.

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

  1. формулу математической модели — символьное описание, пригодное для использования ее в дальнейших исследованиях и для публикации ее в тексте научной статьи,
  2. значения параметров модели, позволяющее делать прогноз с помощью этой модели,
  3. график модели в форматах .png и .eps для использования в TeX.

Также пользователь получает набор лучших порожденных моделей для сравнения.

Использование программы

Программа написана на языке Matlab. У пользователя должна быть установлена система Matlab версии не ниже R12. Программа может быть установлена в виде исполняемого модуля, но так как ее целевая аудитория — исследователи, то предполагается, что пользователь работает с исходными текстами и может переписывать части программы самостоятельно.

Проект

Программа управляется файлом-проектом. В этом файле находятся имена файлов с данными и настройки. Файл выполняется в системе Matlab и должен соответствовать синтаксису этого языка.

Пример, файл demo.prj.txt:

DataFile     = 'sinc.dat.txt';  % the data file name.
ModelsFile   = 'sinc.mdl.txt';  % the name of the file with the list of the initial models
RegistryFile = 'sinc.reg.txt';  % the file name for the registry, the list of the primitive functions
                                %
DATASEPARATOR     = ',';        % the column separator in the DataFile
THRESHOLDQUALITY = 0.01;        % the required quality, absolute value

Регрессионная выборка

Файл с исходными данными — текстовый файл с разделителями, .csv. Первый столбец — значения зависимой переменной, все последующие столбцы — соответствующие значения свободной переменной. Пропуски в данных не допускаются.

Пример, файл sinc.dat.txt:

0.020274,   -4.899
0.039335,   -4.798
0.055203,   -4.697
-0.027995,  -3.8889
-0.051946,  -3.7879
-0.071881,  -3.6869
...

Модели начального приближения

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

Пример, файл sinc.mdl.txt:

% Syntax: model; default parameter vector (can be omitted)
% these two fields must be separated with the sign ';'.
2times(2plus(linear(x1),sin(x1)),sin(x1)); [0.9355 0.9169 0.4103 0.8936 0.0579 0.3529 0.8132 0.0099 0.1389 0.2028]
2plus(2plus(sin(x1),linear(x1)),plus(x1));
2plus(sin(x1),gaussian(x1));

Список порождающих функций

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

Пример, файл sinc.reg.txt:

% function name, file name, arguments, parameters, default parameter values
% If there are no default parameter values for the function or they are unknown
% please put the brackets [] in the table.
2divide,        f_2divide,      2, 0, []
2minus,         f_2minus,       2, 0, []
2plus,          f_2plus,        2, 0, []
2times,         f_2times,       2, 0, []
% 3mlpout,      f_3mlpout,      3, 4, []
cubic,          f_cubic,        1, 4, [0 1 1 1]
gaussian,       f_gaussian,     1, 4, [1 1 1 1]
linear,         f_linear,       1, 2, [0 1]
logsig,         f_logsig,       1, 4, [1 1 1 1]
mult,           f_mult,         1, 1, [1]
parabolic,      f_parabolic,    1, 3, [0 1 1]
plus,           f_plus,         1, 1, [0]
% quadratic,    f_quadratic,    1, 4, [0 1 1 1]
sin,            f_sin,          1, 4, []
% tanh,         f_tanh,         1, 0, []
tansig,         f_tansig,       1, 4, [1 1 1 1]

Библиотека порождающих функций

Все порождающие функции хранятся в библиотеке и имеют следующий формат y = foo(b, x,dummy), где b — вектор-строка параметров, x — вектор-столбец свободных переменных, dummy — возможные дополнительные параметры данный функции.

Пример, библиотечная функция linear:

function  y = f_linear(b,x,dummy)
% b [1xP] parameters
% x [Nx1] independent variables
% y [Nx1] dependent variables
%
y1 = b(1)*x(i,:) + b(2);
return

Получить программу

Лицензирование

Программа MVR Composer распространяется по лицензии GNU GPL: она бесплатна, ее исходный текст можно изменять. Программа предоставляется на условиях «как есть». Авторы не предоставляют никаких гарантий и не несут ответственности за работу данной программы.

Репозиторий

Документация к программе внутри исходных текстов.

  • См. также версию для пользователей [1].

Смотри также

Презентации

Внешние ссылки

Ниже приведен список программ для построения регрессионных моделей.

Cсылки на внутренние работы по этой теме

Порождение структурно-простых моделей

Порождение моделей глубокого обучения

Links to external projects on the topic (duplicate)

Generating structurally simple models

Generating deep learning models

Structure learning

Model simplification

Выбор моделей и признаков

  • Работы Катруцы по мультиколлинеарности в Хемометрикс

Оценка гиперпараметров моделей

  • Зайцев А.А., Стрижов В.В., Токмакова А.А. Оценка гиперпараметров регрессионных моделей методом максимального правдоподобия // Информационные технологии, 2013. № 2. C.11-15. [pdf]
  • Токмакова А.А., Стрижов В.В. Оценивание гиперпараметров линейных и регрессионных моделей при отборе шумовых и коррелирующих признаков // Информатика и её применения, 2012. Vol. 6, № 4. C. 66-75. [pdf]
  • Набор функций Matlab для оценки параметров и линейных моделей путем аппроксимации функции правдоподобия методом Лапласа.

Последовательная трансформация моделей

Личные инструменты