MVR Composer
Материал из MachineLearning.
MVR Composer (Multivariate Regression Composer) — программа, работающая в системе Matlab. Создает математические регрессионные модели, используя измеряемые данные и экспертные предположения о структуре моделей.
Содержание |
Введение
Цель MVR — построить регрессионную модель, которая наилучшим образом приближает измеряемые данные — регрессионную выборку. Предполагается, что полученная модель будет использована для моделирования процессов и закономерностей в биологии, медицине, экологии и других естественных науках.
Предлагаемая программа сочетает подходы как математического, так и информационного моделирования. Первый подход предполагает использование экспертных знаний о моделируемом явлении. Результат этого подхода — создание «качественной модели», которая описывает явление. Элементы модели могут быть объяснены экспертом в рамках решаемой задачи. Но, как правило, такая модель не очень точно приближает выборку и имеет низкую обобщающую способность. Второй подход предполагает создание «количественной модели». Такая модель хорошо приближает выборку, но, как правило, сложна: то есть, состоит из большого числа элементов и плохо объяснима в контексте решаемой задачи.
Последовательность работы программы следующая.
- Задается выборка, несколько свободных переменных и одна зависимая переменная.
- Задается набор регрессионных моделей начального приближения.
- Задается множество порождающих функций, из суперпозиции которых будет построена модель.
Затем итеративно выполняется следующая последовательность шагов.
- Оптимизируются параметры моделей, критерий качества (по умолчанию) среднеквадратическая ошибка.
- Оптимизируются гиперпараметры (параметры информативности элементов) моделей.
- На основе информации об информативности элементов порождаются новые модели.
- Из объединенного множества начальных и порожденных моделей выбираются лучшие.
- Последовательность повторяется до тех пор, пока не будет получена модель с ошибкой, не превосходящей заданную
или пока не будет выполнено заданное число итераций.
Результатом работы алгоритма является регрессионная модель оптимальной структуры. В частности, пользователь получает:
- формулу математической модели — символьное описание, пригодное для использования ее в дальнейших исследованиях и для публикации ее в тексте научной статьи,
- значения параметров модели, позволяющее делать прогноз с помощью этой модели,
- график модели в форматах .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.
Документация к программе внутри исходных текстов.
- См. также версию для пользователей [1].
Смотри также
Внешние ссылки
Ниже приведен список программ для построения регрессионных моделей.
- GPLAB, Genetic Programming Lab by Sara Silva
- GPTIPS, Genetic Programming Tips by Dominic Searson
- Сайт компании GraphPad Software, Inc.
- GeneXproTools, commercial software
- Online Regression Tools
- SUrrogate MOdeling (SUMO) Toolbox
- MODELbuilder is designed to find any multivariate model for any dataset
- Regression mAKEr, GMDH-like software
- Python Equations, Collection of Python equations that can fit data sets.
- FPlot, .NET library to plot and fit mathematical functions and data
- GMM-GMR, Gaussian Mixture Model and Regression
- GLM, Implementation of Generalized Linear Model by Christopher M. Bishop