Качество подгонки между тестовыми и эталонными данными для анализа и валидации идентифицированных моделей
goodnessOfFit возвращает значения подгонки, которые представляют норму ошибки между тестовым и опорным наборами данных. Если вы хотите сравнить и визуализировать выход моделируемой модели с данными измерений, см. Также compare.
возвращает качество подгонки между тестовыми данными fit = goodnessOfFit(x,xref,cost_func)x и ссылочные данные xref использование функции затрат cost_func. fit является количественным представлением близости x на xref. Чтобы выполнить несколько сравнений подгонки «тест-ссылка», можно задать x и xref как массивы ячеек равного размера, которые содержат несколько наборов тестовых и ссылочных данных. С входами массива ячеек, fit возвращает массив значений аппроксимации.
Найдите качество подгонки между измеренными выходными данными и моделируемым выходом оценочной модели.
Получите измеренный выход.
load iddata1 z1 yref = z1.y;
z1 является iddata объект, содержащий измеренные входно-выходные данные. z1.y - измеренный выход.
Оцените модель передаточной функции второго порядка и симулируйте результат модели y_est.
sys = tfest(z1,2); y_est = sim(sys,z1(:,[],:));
Вычислите качество подгонки, или норму ошибки, между измеренным и оцененным выходами. Задайте нормированную корневую среднюю квадратичную невязку (NRMSE) как функцию стоимости.
cost_func = 'NRMSE';
y = y_est.y;
fit = goodnessOfFit(y,yref,cost_func) fit = 0.2943
Также можно использовать compare для вычисления подгонки. compare использует функцию затрат NRMSE и выражает процент подгонки, используя дополнение нормы ошибки. Отношение подгонки между compare и goodnessOfFit поэтому является . A compare результат 100% эквивалентен goodnessOfFit результат 0.
Задайте начальное условие нуля, чтобы соответствовать начальному условию, которое goodnessOfFit принимает.
opt = compareOptions('InitialCondition','z'); compare(z1,sys,opt);

Результаты подгонки эквивалентны.
Найдите качество подгонки между измеренным и оцененным выходами для двух моделей.
Получите измерения вход-выход z2 от iddata2. Скопируйте измеренный выход в опорный yref.
load iddata2 z2 yref = z2.y;
Оцените модели передаточной функции второго и четвертого порядков с помощью z2.
sys2 = tfest(z2,2); sys4 = tfest(z2,4);
Симулируйте обе системы, чтобы получить предполагаемые выходы.
y_sim2 = sim(sys2,z2(:,[],:)); y2 = y_sim2.y; y_sim4 = sim(sys4,z2(:,[],:)); y4 = y_sim4.y;
Создайте массивы ячеек из ссылки и предполагаемых выходов. Набор ссылочных данных является тем же самым для обоих сравнений моделей, поэтому создайте идентичные ссылочные камеры.
yrefc = {yref yref};
yc = {y2 y4};Вычислите fit значения для трех функций затрат.
fit_nrmse = goodnessOfFit(yc,yrefc,'NRMSE')fit_nrmse = 1×2
0.1429 0.1342
fit_nmse = goodnessOfFit(yc,yrefc,'NMSE')fit_nmse = 1×2
0.0204 0.0180
fit_mse = goodnessOfFit(yc,yrefc,'MSE')fit_mse = 1×2
1.0811 0.9540
Значение соответствия 0 указывает на идеальную подгонку между опорным и предполагаемым выходами. Значение аппроксимации увеличивается, когда качество аппроксимации уменьшается. Для всех трех функций затрат модель четвертого порядка производит лучшую подгонку, чем модель второго порядка.
x - Данные для тестированияДанные для тестирования, заданные как матрица или массив ячеек.
Для одного тестового набора данных задайте Ns матрицу N, где Ns - количество выборок, а N - количество каналов. Вы должны задать cost_fun как 'NRMSE' или 'NMSE' использовать многоканальные данные.
Для нескольких наборов тестовых данных задайте массив ячеек с Nd длины, где Nd количество пар «тест-ссылка», и каждая камера содержит одну матрицу данных.
x не должно содержать никаких NaN или Inf значения.
xref - Справочные данныеСсылочные данные, с которыми можно сравнить x, заданный как матрица или массив ячеек.
Для одинарного набора ссылочных данных задайте Ns -by - N матрицу, где Ns - количество выборок и N - количество каналов. xref должен быть того же размера, что и x. Вы должны задать cost_fun как 'NRMSE' или 'NMSE' использовать многоканальные данные.
Для нескольких наборов ссылочных данных задайте массив ячеек с Nd длины, где Nd количество пар «тест-ссылка», и каждая камера содержит одну матрицу ссылочных данных. Как и в случае с отдельными матрицами данных, размеры массива ячеек для x и xref должен совпадать. Каждый i й элемент fit соответствует парам i-х камер x и xref.
xref не должно содержать никаких NaN или Inf значения.
cost_func - Функция затрат'MSE' | 'NRMSE' | 'NMSE'Функция стоимости для определения качества подгонки, заданная как одно из следующих значений. В уравнениях fit значений применяется к одной паре тестовых и эталонных наборов данных.
| Значение | Описание | Уравнение | Примечания |
|---|---|---|---|
'MSE' | Средняя квадратичная невязка |
где Ns - количество выборок, а ‖ указывает на 2-норму вектора. | fit является скаляром. |
'NRMSE' | Нормированная корневая средняя квадратичная невязка |
где ‖ указывает на 2-норму вектора. | fit является вектором-строкой. |
'NMSE' | Нормированная средняя квадратичная невязка |
| fit является вектором-строкой. |
fit - Качество подгонки Качество подгонки между тестовой и опорной парами данных, возвращаемое в виде скаляра, вектора-строки или массива ячеек.
Для пары одного теста и опорного набора данных, fit возвращается как скаляр или вектор-строка.
Если cost_fun является 'MSE', затем fit является скаляром.
Если cost_fun является 'NRMSE' или 'NMSE', затем fit - вектор-столбец длины N, где N - количество каналов.
Для нескольких тестов и набора данных и ссылочных пар, где x и xref являются массивами ячеек длины ND, fit возвращается как вектор или матрица.
Если cost_fun является 'MSE', затем fit является вектор-строка длины ND.
Если cost_fun является 'NRMSE' или 'NMSE', затем fit является матрицей размера N -by - Nd, где N - количество каналов (столбцов данных), а Nd представляет количество тестовых пар. Каждый элемент fit содержит значения качества подгонки для соответствующих тестовых данных и ссылки пары.
Каждый элемент fit содержит значения качества подгонки для соответствующих тестовых данных и ссылки пары.
Возможные значения для отдельных элементов подгонки зависят от выбора cost_func.
Если cost_func является 'MSE', каждый fit значение является положительным скаляром, который растет с ошибкой между тестом и эталонными данными. A fit значение 0 указывает на идеальное соответствие между тестовыми и эталонными данными.
Если cost_func является 'NRMSE' или 'NMSE', fit значения варьируются между - Inf и 1.
0 - Идеальная подгонка для ссылки на данные (нулевая ошибка)
- Inf - Плохая подгонка
1 — x не лучше, чем прямая линия при совпадении xref
goodnessOfFit: Результат подгонки представляет норму ошибки для всех трех функций затрат со значением нуля, указывающим на идеальную подгонкуПоведение изменено в R2020a
goodnessOfFit теперь возвращает E нормы ошибки как значение соответствия для всех трех функций затрат (MSE, NRMSE и NMSE). Ранее, goodnessOfFit возвращено дополнение нормы ошибки 1- E для значений соответствия, которые использовали функции NRMSE или NMSE. Это изменение позволяет последовательно интерпретировать аппроксимацию по трем функциям стоимости с идеальным значением аппроксимации в нуле, представляющим идеальную подгонку.
Ранее вычисленные значения подгонки NRMSE и NMSE являются дополнениями значений подгонки, вычисленных текущим программным обеспечением. Точно так же значение подгонки NRMSE теперь является единственным дополнением подгонки, используемого в процентном значении, которое compare вычисляет. Для примера, если предыдущий goodnessOfFit значение подгонки было 0,8, значение подгонки тока было 0,2. A goodnessOfFit значение аппроксимации 0,2 эквивалентно compare процент подгонки 80%.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.