Автор работы: Пользователь скрыл имя, 05 Ноября 2013 в 17:50, контрольная работа
Перед началом процесса приближения возможно произвести ряд предварительных действий.
Во-первых можно указать:
различные веса для данных (см. раздел Опция для задания весов) и использовать таким образом взвешенный метод наименьших квадратов для подбора параметров;
часть исключаемых данных при подборе параметров (см. раздел Опция для исключения части данных);
нужно или нет масштабировать и центрировать исходные данные перед процессом подбора параметров модели для обеспечения более устойчивых результатов (см. раздел Опция для масштабирования и центрирования данных).
Федеральное Государственное образовательное учреждение высшего профессионального образования
Пермская государственная сельскохозяйственная академия имени академика Д.Н.Прянишникова
Кафедра Информационных систем
по дисциплине: «Информационные системы»
на тему:
«Приближение данных, регрессия в ToolBox Optimization».
Выполнил:
студент 5 курса заочного отделения
По спец-ти: 080801 «прикладная информатика в экономике»
шифр Пп-2006-14
Максимов Юрий Георгиевич
Проверил:
Ст.преп. Шимановская М.В.
Пермь-2009
Приближение данных, регрессия в ToolBox Optimization
Перед началом процесса приближения возможно произвести ряд предварительных действий.
Во-первых можно указать:
Во-вторых, при наличии ограничений сверху и снизу на искомые параметры линейной или нелинейной параметрической модели их также следует задать (см. раздел Опции для линейных параметрических моделей).
В-третьих, при наличии в данных выбросов имеет смысл воспользоваться адаптивным алгоритмом приближения, который на каждом шаге назначает веса данным так, чтобы уменьшить влияние выбросов на линейную или нелинейную параметрическую модель (см. раздел Опции для линейных параметрических моделей).
В-четвертых, поскольку подбор параметров нелинейных параметрических моделей приводит к задаче минимизации нелинейной функции, то пользователь может выбрать один из трех алгоритмов минимизации и указать его настройки, в том числе точность и критерии останова (см. раздел Опции для нелинейных параметрических моделей).
Далее приведены способы задания опций, управляющих вычислительным алгоритмом подбора параметров, и приведены необходимые примеры.
Способы задания опций вычислительного алгоритма
Для задания
опций вычислительного
opts = fitoptions('method', 'НазваниеМетода', 'ИмяОпции1', значение1, ...)
Далее этот объект opts с опциями указывается:
Второй способ задания опций вычислительного алгоритма, реализующего подбор параметров, состоит в указании их прямо перед процессом нахождения неизвестных параметров модели во входных аргументах функции fit:
fresult = fit(xdata, ydata, 'libname', 'ИмяОпции1', значение1, ...)
При необходимости использования большого количества моделей для приближения различных наборов данных предпочтительно выделить три этапа при проведении процесса приближения:
Зависимость набора опций от модели и способа приближения
Количество и вид опций вычислительного алгоритма определяется типом выбранной для приближения линейной или нелинейной параметрической или непараметрической модели и способом приближения. При приближении данных линейной параметрической моделью можно выбрать только:
Для нелинейных параметрических моделей этот набор расширяется. В нелинейном случе допускается выбор:
Вне зависимости от линейности или нелинейности выбранной модели при задании опций всегда имеется возможность указать:
Опция для задания весов
На практике часто встречаются задачи о приближении данных, в которых требуется построить модель, которая по возможности более точно приближает часть данных, а оставшиеся данные менее точно. Это достигается приписыванием весов данным, причем чем больше вес у части данных, тем более точно получается приближение для них. Во взвешенном методе наименьших квадратов минимизируется взвешенная сумма квадратов отклонений, выражающаяся по следующей формулой:
в которой (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.^
>> n=length(xdata);
>> ydata(5:n)=ydata(5:n)+2*(rand(
приблизив их полиномом четвертой степени. Рассмотрим два способа приближения этих данных:
Для задания весов воспользуемся функцией 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, которую вызовем два раза:
>> 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)
Ниже приведены результаты полученные результаты
Приближение без весов (слева) и с
весами (справа)
Опция для исключения части данных
При построении
параметрических или
Приведем пример формирования объекта opts для указания исключаемого множества данных и подбора параметров. Рассмотрим данные с очевидными выбросами
>> xdata=(0:0.05:2)';
>> ydata=1.2*exp(-2*xdata)+0.05*
>> 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,'
Для приближения данных применим стандартную экспоненциальную параметрическую модель
aebx
Ее имя exp1 (стандартные
параметрические и
>> ftype=fittype('exp1');
Далее при помощи функции fitoptions создадим объект, содержащий информацию об исключаемых из процесса подбора параметров данных:
>> opts=fitoptions('Exclude',
Приблизим данные экспоненциальной моделью, используя функцию 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,
В результате получаем
Приближение без исключения выбросов
(слева) и с исключением (справа)
Опция для масштабирования и центрирования данных
При приближении данных по методу наименьших квадратов получающаяся система линейных уравнений может быть плохо обусловлена, что повлечет ошибки при ее решении, а следовательно, и нахождении параметров модели (см. раздел Когда функция polyfit выдает предупреждения, плохая обусловленность, центрирование и масштабирование данных, в котором приведены источники плохой обусловленности, в том числе и немасштабированные данные).
Информация о работе Приближение данных, регрессия в ToolBox Optimization