Если ваши данные являются шумными, вы можете хотеть соответствовать им с помощью сплайна сглаживания. В качестве альтернативы можно использовать один из методов сглаживания, описанных в Фильтрации и Сглаживании Данных.
Сплайн сглаживания s создается для заданного параметра сглаживания p и заданных весов wi. Сплайн сглаживания минимизирует
Если веса не заданы, они приняты, чтобы быть 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, чтобы возвратиться к начальному значению. Тулбокс пытается выбрать значение по умолчанию, подходящее для ваших данных. Займитесь Сглаживанием Сплайнов.
Например:
Загрузите данные в о Сглаживании Сплайнов путем ввода:
load carbon12alpha
В приложении Curve Fitting выберите angle
для X data и counts
для Y data.
Выберите Smoothing Spline
подходящий тип.
Попытайтесь сглаживать значения параметров 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 и нескольких сплайнов сглаживания.
Создайте переменные в своей рабочей области:
x = (4*pi)*[0 1 rand(1,25)]; y = sin(x) + .2*(rand(size(x))-.5);
Откройте приложение Curve Fitting путем ввода:
cftool
Выберите x
и y
от X data и списков Y data.
Приложение Curve Fitting соответствует и отображает данные на графике.
Соответствуйте данным кубическим сплайном interpolant путем выбора типа подгонки Interpolant и Cubic
Method.
Приложение Curve Fitting соответствует и строит кубический сплайн interpolant.
Введите cubicsp
Fit name.
Просмотрите панель Results. Статистические данные качества подгонки, такие как RMSE не заданы (показавший NaN
) для interpolants.
Интерполяция кубическим сплайном задана как кусочный полином, который приводит к структуре коэффициентов (p
). Количество “частей” в структуре является тем меньше, чем количество подходящих точек данных, и количество коэффициентов для каждой части равняется четырем, потому что полиномиальная степень равняется трем. Можно исследовать содействующую структуру p
если вы экспортируете свою подгонку к рабочей области (например, введите
). Для получения информации о структуре коэффициентов смотрите Построение и Работу со Сплайнами ppform.fitname
P
Создайте другую подгонку, чтобы выдержать сравнение. Щелкните правой кнопкой по своей подгонке по Table of Fits и выберите Duplicate ‘cubicsp’.
Соответствуйте данным сплайном сглаживания путем выбора Smoothing Spline.
Уровень гладкости дан Параметром Сглаживания. Значение по умолчанию, сглаживающее значение параметров, зависит от набора данных и автоматически вычисляется тулбоксом.
Для этого набора данных параметр сглаживания значения по умолчанию близко к 1, указывая, что сплайн сглаживания является почти кубическим и очень близко подходит к прохождению через каждую точку данных.
Назовите значение по умолчанию, сглаживающее подгонку параметра Smooth1
. Если вам не нравится уровень сглаживания произведенного параметром сглаживания значения по умолчанию, можно задать любое значение от 0 до 1. 0 производит линейную аппроксимацию полиномом, в то время как 1 производит кусочную подгонку кубического полинома, которая проходит через все точки данных.
Числовые результаты для подгонки сплайна сглаживания показывают здесь.
В целях сравнения создайте другую подгонку сплайна сглаживания. Щелкните правой кнопкой по своей подгонке по Table of Fits и выберите Duplicate ‘smooth1’. Измените параметр сглаживания в 0.5
и назовите подходящий Smooth2
.
Сравните графики для своих трех подгонок. Исследуйте подходящее поведение вне пределов данных путем увеличения шкалы абсциссы по умолчанию. Вы изменяете пределы осей с пунктом меню Tools> Axes Limit Control.
Примечание
Ваши результаты зависят от случайных стартовых точек и могут варьироваться от описанных.
Обратите внимание на то, что параметр сглаживания значения по умолчанию производит кривую, которая более сглаженна, чем interpolant, но является подходящим вариантом для данных. В этом случае уменьшение параметра сглаживания от значения по умолчанию производит кривую, которая более сглаженна все еще, но не является подходящим вариантом к данным. Когда параметр сглаживания увеличивается вне значения по умолчанию, связанная кривая приближается к кубическому сплайну interpolant. Кубический сплайн и сплайн сглаживания значения по умолчанию подобны для внутренних точек, но отличаются в конечных точках.