Сглаживание сплайнов

О сглаживании сплайнов

Если ваши данные являются шумными, вы можете хотеть соответствовать им с помощью сплайна сглаживания. Также можно использовать один из методов сглаживания, описанных в Фильтрации и Сглаживании Данных.

Сплайн сглаживания s создается для заданного параметра сглаживания p и заданных весов wi. Сплайн сглаживания минимизирует

piwi(yis(xi))2+(1p)(d2sdx2)2dx

Если веса не заданы, они приняты, чтобы быть 1 для всех точек данных.

p задан между 0 и 1. p = 0 производит наименьшие квадраты прямолинейная подгонка к данным, в то время как p = 1 производит кубический сплайн interpolant. Если вы не задаете параметр сглаживания, он автоматически выбран в “интересной области значений”. Интересная область значений p часто является близким 1 / (1+h3/6), где h является средним интервалом точек данных, и это обычно намного меньше, чем позволенная область значений параметра. Поскольку сглаживающие сплайны имеют связанный параметр сглаживания, вы можете полагать, что эти подгонки являются параметрическими в этом смысле. Однако сглаживающие сплайны являются также кусочными полиномами как кубический сплайн или сохранение формы interpolants и рассматриваются непараметрическим подходящим типом в этом руководстве.

Примечание

Алгоритм сплайна сглаживания основан на функции csaps.

Ядерные данные о реакции из файла carbon12alpha.mat показывают здесь с тремя подгонками сплайна сглаживания. Параметр сглаживания значения по умолчанию (p = 0.99) производит самую сглаженную кривую. Кубическая сплайновая кривая (p = 1) проходит все точки данных, но не совсем как сглаженная. Третья кривая (p = 0.95) пропускает данные большим отрывом и иллюстрирует, насколько маленький “интересная область значений” p может быть.

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

В приложении Curve Fitting выберите Smoothing Spline из списка типов модели.

Можно задать следующие опции:

  • Чтобы сделать более сглаженную подгонку далее из данных, нажимайте кнопку < Smoother неоднократно, пока график не показывает гладкость, которую вы хотите.

  • Чтобы сделать более грубую подгонку ближе к данным, нажмите кнопку Rougher >, пока вы не будете удовлетворены графиком.

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

  • Нажмите Default, чтобы возвратиться к начальному значению. Тулбокс пытается выбрать значение по умолчанию, подходящее для ваших данных. Займитесь Сглаживанием Сплайнов.

Например:

  1. Загрузите данные в о Сглаживании Сплайнов путем ввода:

    load carbon12alpha

  2. В приложении Curve Fitting выберите angle for X data и counts for Y data.

  3. Выберите тип подгонки Smoothing Spline.

  4. Попытайтесь сглаживать значения параметров 1, 0.95 и значение по умолчанию (0.99).

Подходящие модели сплайна сглаживания Используя функцию fit

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

Соответствуйте модели сплайна сглаживания

Загрузите данные и соответствуйте модели сплайна сглаживания путем определения 'smoothingspline' при вызывании подходящей функции.

load enso
f = fit(month,pressure,'smoothingspline');
plot(f,month,pressure)

Представление расчетный параметр сглаживания

Создайте модель снова и используйте третий выходной аргумент, чтобы просмотреть расчетный параметр сглаживания. Параметр сглаживания является значением p в структуре out. Значение по умолчанию зависит от набора данных.

[f,gof,out] = fit(month,pressure,'smoothingspline');

out.p
ans = 0.9000

Задайте Параметр Сглаживания с помощью 'SmoothingParam'

Задайте параметр сглаживания для новой подгонки с опцией 'SmoothingParam'. Его значение должно быть между 0 и 1.

f = fit(month,pressure,'smoothingspline','SmoothingParam',0.07);
plot(f,month,pressure)

Задайте Параметр Сглаживания с помощью fitoptions

Также используйте fitoptions, чтобы задать параметр сглаживания перед подбором кривой.

options = fitoptions('Method','Smooth','SmoothingParam',0.07);
[f,gof,out] = fit(month,pressure,'smooth',options);
out.p
ans = 0.0700

Для альтернативы 'smoothingspline' можно использовать csaps кубическую функцию сплайна сглаживания или другие функции сплайна, которые позволяют большее управление тем, что можно создать. Займитесь Сплайнами в Curve Fitting Toolbox.

Пример: непараметрический подбор кривой кубическими и сглаживающими сплайнами

Этот пример соответствует некоторым данным с помощью кубического сплайна interpolant и нескольких сплайнов сглаживания.

  1. Создайте переменные в своей рабочей области:

    x = (4*pi)*[0 1 rand(1,25)]; 
    y = sin(x) + .2*(rand(size(x))-.5);
    

  2. Откройте приложение Curve Fitting путем ввода:

    cftool

  3. Выберите x и y из списков Y data и X data.

    Приложение Curve Fitting соответствует и отображает данные на графике.

  4. Соответствуйте данным кубическим сплайном interpolant путем выбора типа подгонки Interpolant и Cubic Method.

    Приложение Curve Fitting соответствует и строит кубический сплайн interpolant.

  5. Введите cubicsp Fit name.

  6. Просмотрите панель Results. Статистические данные качества подгонки, такие как RMSE не заданы (показавший NaN) для interpolants.

    Интерполяция кубическим сплайном задана как кусочный полином, который приводит к структуре коэффициентов (p). Количество “частей” в структуре является тем меньше, чем количество подходящих точек данных, и количество коэффициентов для каждой части равняется четырем, потому что полиномиальная степень равняется трем. Можно исследовать содействующую структуру p, если вы экспортируете свою подгонку к рабочей области (например, введите fitname.p). Для получения информации о структуре коэффициентов смотрите Построение и Работу со Сплайнами ppform.

  7. Создайте другую подгонку, чтобы выдержать сравнение. Щелкните правой кнопкой по своей подгонке по Table of Fits и выберите Duplicate ‘cubicsp’.

  8. Соответствуйте данным сплайном сглаживания путем выбора Smoothing Spline.

    Уровень гладкости дан Параметром Сглаживания. Значение по умолчанию, сглаживающее значение параметров, зависит от набора данных и автоматически вычисляется тулбоксом.

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

  9. Назовите значение по умолчанию, сглаживающее подгонку параметра Smooth1. Если вам не нравится уровень сглаживания произведенного параметром сглаживания значения по умолчанию, можно задать любое значение от 0 до 1. 0 производит линейную аппроксимацию полиномом, в то время как 1 производит кусочную подгонку кубического полинома, которая проходит через все точки данных.

    Числовые результаты для подгонки сплайна сглаживания показывают здесь.

  10. В целях сравнения создайте другую подгонку сплайна сглаживания. Щелкните правой кнопкой по своей подгонке по Table of Fits и выберите Duplicate ‘smooth1’. Измените параметр сглаживания на 0.5 и назовите подходящий Smooth2.

  11. Сравните графики для своих трех подгонок. Исследуйте подходящее поведение вне пределов данных путем увеличения шкалы абсциссы по умолчанию. Вы изменяете пределы осей с пунктом меню Tools> Axes Limit Control.

Примечание

Ваши результаты зависят от случайных стартовых точек и могут отличаться от описанных.

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

Смотрите также

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте