Приближение данных, регрессия в ToolBox Optimization

Автор работы: Пользователь скрыл имя, 05 Ноября 2013 в 17:50, контрольная работа

Описание работы

Перед началом процесса приближения возможно произвести ряд предварительных действий.
Во-первых можно указать:
различные веса для данных (см. раздел Опция для задания весов) и использовать таким образом взвешенный метод наименьших квадратов для подбора параметров;
часть исключаемых данных при подборе параметров (см. раздел Опция для исключения части данных);
нужно или нет масштабировать и центрировать исходные данные перед процессом подбора параметров модели для обеспечения более устойчивых результатов (см. раздел Опция для масштабирования и центрирования данных).

Файлы: 1 файл

ИС.doc

— 179.50 Кб (Скачать файл)

          Федеральное Государственное образовательное учреждение высшего профессионального образования

Пермская государственная  сельскохозяйственная академия имени  академика Д.Н.Прянишникова

 

 

 

 

Кафедра Информационных систем

Контрольная работа

 

по дисциплине: «Информационные системы»

на тему:

«Приближение данных, регрессия в ToolBox Optimization».

 

 

 

 

 

 

 

Выполнил:

студент 5 курса заочного отделения

По спец-ти: 080801 «прикладная информатика  в экономике»

шифр Пп-2006-14

Максимов Юрий Георгиевич

Проверил:

Ст.преп. Шимановская М.В.

 

Пермь-2009

 

Приближение данных, регрессия в ToolBox Optimization

   Перед началом процесса приближения возможно произвести ряд предварительных действий.

Во-первых можно указать:

  • различные веса для данных (см. раздел Опция для задания весов) и использовать таким образом взвешенный метод наименьших квадратов для подбора параметров;
  • часть исключаемых данных при подборе параметров (см. раздел Опция для исключения части данных);
  • нужно или нет масштабировать и центрировать исходные данные перед процессом подбора параметров модели для обеспечения более устойчивых результатов (см. раздел Опция для масштабирования и центрирования данных).

Во-вторых, при  наличии ограничений сверху и  снизу на искомые параметры линейной или нелинейной параметрической модели их также следует задать (см. раздел Опции для линейных параметрических моделей).

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

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

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

Способы задания опций вычислительного  алгоритма

Для задания  опций вычислительного алгоритма, реализующего подбор параметров модели, должен быть создан объект при помощи функции fitoptions, входящей в Curve Fitting Toolbox:

opts = fitoptions('method', 'НазваниеМетода', 'ИмяОпции1', значение1, ...)

Далее этот объект opts с опциями указывается:

  • либо при подборе параметров параметрической модели в списке входных аргументов функции fit:
  • fresult = fit(xdata, ydata, 'libname', opts)
  • либо при создании параметрической модели в списке входных аргументов функции fittype:
  • ftype = fittype('expr', 'options', opts)

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

fresult = fit(xdata, ydata, 'libname', 'ИмяОпции1', значение1, ...)

При необходимости использования большого количества моделей для приближения различных наборов данных предпочтительно выделить три этапа при проведении процесса приближения:

  1. создание объектов с параметрическими или непараметрическими моделями при помощи функции fittype (см. разд. Параметрические и непараметрические модели и примеры в нем);
  2. создание объектов с опциями вычислительного алгоритма так, как описано в этом разделе;
  3. подбор модели и параметров модели при помощи функции fit с указанием ей одного из объектов с моделью и одного из объектов с опциями вычислительного алгоритма так, как сделано в примерах этого раздела.

Зависимость набора опций от модели и способа  приближения

Количество  и вид опций вычислительного алгоритма определяется типом выбранной для приближения линейной или нелинейной параметрической или непараметрической модели и способом приближения. При приближении данных линейной параметрической моделью можно выбрать только:

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

Для нелинейных параметрических моделей этот набор расширяется. В нелинейном случе допускается выбор:

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

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

  • веса;
  • часть исключаемых данных при подборе параметров;
  • нужно или нет масштабировать и центрировать исходные данные перед процессом подбора параметров.

Опция для задания весов

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

в которой (xk,yk)k=1,2,...,n являются исходными данными, а (wk)k=1,2,...,n есть заданные веса.

Предположим, что  требуется выполнить полиномиальную регрессию следующих данных (в данные с 5-го по последний внесена ошибка):

>> xdata=(-1:0.2:1)';

>> ydata=0.2*xdata.^4+4.6*xdata.^3-xdata-2;

>> n=length(xdata);

>> ydata(5:n)=ydata(5:n)+2*(rand(n-4,1)-0.5);

приблизив их полиномом  четвертой степени. Рассмотрим два способа приближения этих данных:

  1. с одинаковыми весами (как это делается по умолчанию в функции fit, когда веса не заданы);
  2. зададим веса равные 1 для данных с 1-го по 4-ое и веса равные 0.01 для оставшихся данных.

Для задания весов воспользуемся функцией fitoptions. Соответствующая опция называется Weights, ее значением должен быть вектор wts, содержащий веса. Размер этого вектора должен совпадать по размеру с векторами исходных данных:

>> wts=0.01*ones(size(xdata));

>> wts(1:4)=1;

>> opts=fitoptions('Weights',wts)

Примечание

Здесь для создания вектора  с весами wts была использована функция ones. Она создает матрицу заданного  размера, состоящую из единиц, т.е., например ones(5,1) или ones([5 1]) создает вектор-столбец  из пяти единиц. Поскольку функция size возвращает размеры массива в векторе, то ее можно указывать во входном аргументе функции ones, что позволяет строить массивы из единиц, по размеру совпадающие с заданными.

Далее при помощи функции fittype создадим объект ftype, содержащий параметрическую модель - полином четвертой степени. Имя этой стандартной параметрической модели poly4 (стандартные параметрические и непараметрические модели, входящие в библиотеку моделей Curve Fitting Toolbox описаны в разд. Параметрические и непараметрические модели):

>> ftype = fittype('poly4')

Для приближения  используем функцию fit, которую вызовем  два раза:

  1. без сформированного объекта opts с управляющими опциями, результат запишем в fresult;
  2. с сформированным объектом opts с управляющими опциями, результат запишем в wfresult.

>> fresult = fit(xdata,ydata,ftype)

>> wfresult = fit(xdata,ydata,ftype,opts)

Далее для сравнения  отобразим в одном графическом  окне на разных осях, создаваемых при помощи функции subplot, графики двух моделей вместе с исходными данными. Графики построим при помощи переопределенной в Curve Fitting Toolbox функции plot.

Примечание.

Функция subplot создает в  графическом окне заданное число  осей (по горизонтали и вертикали). Например, при вызове subplot(3,4,5) предполагается, что графическое окно будет разбито на три пары осей по вертикали и четыре по горизонтали, а 5 значит, что будут созданы пятая по счету пара осей (нумерация осей в окне слева направо сверху вниз). Если эти оси уже есть, то они делаются текущими так, что весь следующий графический вывод будет происходить на них.

figure

subplot(1,2,1)

plot(fresult,xdata,ydata)

subplot(1,2,2)

plot(wfresult,xdata,ydata)

Ниже приведены  результаты полученные результаты

 
Приближение без весов (слева) и с  весами (справа)

Опция для исключения части данных

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

Приведем пример формирования объекта opts для указания исключаемого множества данных и  подбора параметров. Рассмотрим данные с очевидными выбросами

>> xdata=(0:0.05:2)';

>> ydata=1.2*exp(-2*xdata)+0.05*randn(size(xdata));

>> ydata(10)=1.8;

>> ydata(15)=1.6;

>> ydata(20)=1.5;

>> ydata(25)=2.2;

>> ydata(30)=-0.9;

>> ydata(40)=-0.8;

>> plot(xdata,ydata,'.')

 
Данные с выбросами

Создадим логический массив для исключаемого множества, записав  нули для тех данных, значения которых  лежат вне диапазона [-0.5 1.4]:

>> outliers = excludedata(xdata,ydata,'range', [-0.5 1.4]);

Для приближения  данных применим стандартную экспоненциальную параметрическую модель

aebx

Ее имя exp1 (стандартные  параметрические и непараметрические  модели, входящие в библиотеку моделей Curve Fitting Toolbox описаны в разд. Параметрические и непараметрические модели):

>> ftype=fittype('exp1');

Далее при помощи функции fitoptions создадим объект, содержащий информацию об исключаемых из процесса подбора параметров данных:

>> opts=fitoptions('Exclude',outliers)

Приблизим данные экспоненциальной моделью, используя  функцию fit, без исключения и получающееся приближение запишем в fresult:

>> fresult = fit(xdata,ydata,ftype)

 

fresult =

     General model Exp1:

       fresult(x) = a*exp(b*x)

     Coefficients (with 95% confidence bounds):

       a =       1.206  (0.6891, 1.722)

       b =      -1.329  (-2.203, -0.4558)

Теперь приблизим  данные экспоненциальной моделью с  указанием opts с информацией об исключаемой части данных и получающееся приближение запишем в exfresult:

>> exfresult = fit(xdata,ydata,ftype,opts)

 

exfresult =

     General model Exp1:

       exfresult(x) = a*exp(b*x)

     Coefficients (with 95% confidence bounds):

       a =       1.222  (1.164, 1.28)

       b =      -2.072  (-2.229, -1.914)

Заметим, что  в случае приближения с исключенными выбросами значения параметров найдены  вернее. Отобразим в одном графическом  окне на разных осях, создаваемых при  помощи функции subplot, графики двух моделей вместе с исходными данными. Графики построим при помощи переопределенной в Curve Fitting Toolbox функции plot, которая позволяет отметить исключаемые данные, если указать соответствующий им логический массив в качестве ее четвертого входного аргумента:

figure

subplot(1,2,1)

plot(fresult,xdata,ydata)

subplot(1,2,2)

plot(exfresult,xdata,ydata,outliers)

В результате получаем

 
Приближение без исключения выбросов (слева) и с исключением (справа)

Опция для масштабирования  и центрирования данных

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

Информация о работе Приближение данных, регрессия в ToolBox Optimization