MVR Composer

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

(Различия между версиями)
Перейти к: навигация, поиск

Strijov (Обсуждение | вклад)
(Новая: '''MVR Composer''' (Multivariate Regression Composer) -- программа, работающая в системе Matlab. Создает математические регрессио...)
К следующему изменению →

Версия 17:22, 30 апреля 2008

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

Содержание

Введение

Цель 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: она бесплатна, ее исходный текст можно изменять. Программа предоставляется на условиях "как есть". Авторы не предоставляют никаких гарантий и не несут ответственности за работу данной программы.

Репозиторий

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

Смотри также

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

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

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