MATLAB.Exponenta
–Û·Ë͇ Matlab&Toolboxes

Основы работы в Curve Fitting Toolbox \ Curve Fitting Toolbox

В оглавление книги \ К предыдущему разделу \ К следующему разделу

Основы работы в Curve Fitting Toolbox

1.3.7. Опции, управляющие процессом подбора параметров

Для задания опций вычислительных алгоритмов, использующихся для подбора параметров служит кнопка Fit options диалогового окна Fitting. После нажатия на эту кнопку появляется диалоговое окно, в заголовке которого написано Fit options for и далее указано имя параметрической модели.

В зависимости от типа выбранной параметрической модели состав этого окна может быть различным.

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

Для других типов параметрических моделей диалоговое окно Fit options for выглядит следующим образом


Диалоговое окно Fit options for
для задания опций вычислительных алгоритмов

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

Раскрывающийся список Robust содержит четыре возможные опции On, Off, LAR и Bisquare и служит для выбора метода приближения, устойчивого к выбросам в данных. Искомые значения параметров a1,a2,...,ak определяются как решение задачи минимизации суммы квадратов невязок, т.е. суммы квадратов расстояний от точек данных (xj,yj)j=1,2,...,n, до приближающей их кривой y(xj;a1,a2,...,ak):

Если данные (xj,yj)j=1,2,...,n снабжены весами (wj)j=1,2,...,n, то решается следующая задача минимизации (если веса не заданы, то по умолчанию они считаются равными единице):

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

>> x=1:10;
>> y=2*x+3+randn(size(x));

а выброс в девятой точке равен нулю

>> y(9)=0;


Линейная регрессия данных без выброса (слева) и с выбросом (справа). Коэффициенты линейной функции находятся из условия минимума суммы квадратов невязок, все веса равны единице.

Выброс оказывает такое сильное влияние, поскольку невязка в минимизируемом выражении возводится в квадрат.

Одним из способов уменьшения влияния выбросов на качество получаемого приближения состоит в минимизации суммы не квадратов невязок, а их модулей. Для этого служит опция LAR (least absolute residuals). После выбора LAR в раскрывающемся списке Robust диалогового окна Fit options for и снова провести линейную регрессию, то мы увидим, что выброс в данных намного меньше влияет на получающееся приближение линейной функцией (см. рисунок ниже). С другими типами параметрических моделей дело будет обстоять аналогичным образом.


Линейная регрессия данных с выбросом справа. Коэффициенты линейной функции находятся из условия минимума суммы квадратов невязок (слева), или из условия минимума суммы модулей невязок (справа). Все веса равны единице.

Другой способ снижения влияния выбросов на приближение параметрической моделью некоторых данных состоит в назначении весов данным. Чем больший вес имеет та или иная точка, тем большее влияние она оказывает на получающееся приближение. В нашем примере можно было назначить маленький вес выбросу и использовать метод наименьших квадратов (опция Off в раскрывающемся списке Robust диалогового окна Fit options for) для поиска коэффициентов линейной параметрической модели.

Зададим веса всем данным равные единице, кроме выброса, а для выброса установим вес 0.1:

>> w=ones(size(x));
>> w(9)=0.1;

Снова приблизим данные линейной параметрической моделью, только теперь следует импортировать их заново в приложение cftool, нажав кнопку Data в основном окне приложения и выбрав массивы x, y и w в раскрывающихся списках XData, Y Data и Weights, соответственно. Перед началом подбора параметров выберем метод наименьших квадратов, для чего следует нажать кнопку Fit options в диалоговом окне Fitting и установить опцию Off в раскрывающемся списке Robust диалогового окна Fit options for. Получающееся приближение приведено на рисунке ниже, заметно, что выброс практически не оказывает влияния на приближение.


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

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

  1. делает приближение, подбирая параметры по методу наименьших квадратов;
  2. вычисляются приведенные невязки (см. более подробно в справочной системе по Curve Fitting Toolbox раздел Fitting Data: Parametric Fitting: The Least Squares Fitting Method);
  3. в зависимости от удаленности точек от приближающей их кривой данным назначаются веса по следующему правилу (чем дальше точка, тем меньше ее вес):

  4. если веса достаточно сильно изменились, то переходим к п. 1), а если процесс сошелся, то останавливаем алгоритм, нужное приближение построено.

Поскольку в приведенном выше адаптивном алгоритме присутствует четвертая степень невязки, то он называется Bisquare weights (биквадратные веса). Для выбора такого способа приближения параметрической моделью следует установить опцию Bisquare в раскрывающемся списке Robust диалогового окна Fit options for. Разумеется, если пользователь задал данные и некоторые начальные веса, то они изменятся. Результирующий вес для каждой точки будет являться произведением исходного веса на тот, который вычисляет алгоритм Bisquare weights.

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


Приближение данных с выбросом линейной моделью при помощи алгоритма isquare weights.

Другие опции в диалоговом окне Fit options for связаны с алгоритмами минимизации целевой функции (в общем случае взвешенной суммы квадратов или модулей невязки).

Раскрывающийся список Algorithm содержит три опции:

  • Trust-Region (метод доверительных областей) - используемый по умолчанию алгоритм минимизации целевой функции. Если на искомые коэффициенты параметрической модели наложены ограничения, то использование этого алгоритма обязательно.
  • Levenberg-Marquardt (метод Левенберга- Марквардта) - можно использовать в задачах без ограничений на коэффициенты.
  • Gauss-Newton - классический метод Ньютона.

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

Следующие опции в диалоговом окне Fit options for служат для настройки этих алгоритмов.

MaxFunEvals - максимальное количество вычислений минимизируемой функции (для предотвращения зацикливания), по умолчанию минимизируемая функция вычисляется не более 600 раз, после чего алгоритм минимизации останавливается.

MaxIter - максимальное число итераций алгоритма минимизации (для предотвращения зацикливания), по умолчанию делается не более 400 итераций, после чего алгоритм минимизации останавливается.

TolFun - точность по функции (для завершения итерационного алгоритма), по умолчанию 10e-6, при достижении этой точности алгоритм минимизации останавливается.

TolX - точность по искомым параметрам (для завершения итерационного алгоритма), по умолчанию 10e-6, при достижении этой точности алгоритм минимизации останавливается.

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

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

В диалоговом окне Fit options for также можно задавать границы для разыскиваемых параметров параметрической модели и начальные приближения. Для стандартных и пользовательских параметрических моделей предлагаются по умолчанию (там где это нужно, в зависимости от типа параметрической модели) следующие границы параметров и начальные приближения.

Тип модели Начальное приближение Ограничения на параметры
Линейная модель, определенная пользователем Не требуется Нет
Нелинейная модель, определенная пользователем Случайное для каждого параметра из интервала [0,1] Нет
Экспоненциальные
Вычисляется по начальным данным по эвристическому алгоритму Нет
Отрезки ряда Фурье
Вычисляется по начальным данным по эвристическому алгоритму Нет
Гауссова
Вычисляется по начальным данным по эвристическому алгоритму
Полиномиальная
Не требуется Нет
Степенные
Вычисляется по начальным данным по эвристическому алгоритму Нет
Дробно-рациональная
Случайное для каждого параметра из интервала [0,1] Нет
Сумма синусов
Вычисляется по начальным данным по эвристическому алгоритму bk > 0
Вейбула
Случайное для каждого параметра из интервала [0,1] a > 0,b > 0

В оглавление книги \ К предыдущему разделу \ К следующему разделу


Поиск по сайту:

Система Orphus

Яндекс.Метрика