Выполните оценку параметра
sbioparamestim будет удален в будущем релизе. Используйте sbiofit вместо этого.
Statistics and Machine Learning Toolbox™, Optimization Toolbox™ и Global Optimization Toolbox рекомендуются для этой функции.
[k, result]= sbioparamestim(modelObj, tspan, xtarget, observed_array, estimated_array)
[___]= sbioparamestim(___, observed_array, estimated_array, k0)
[___]= sbioparamestim(___, observed_array, estimated_array, k0, method)
k | Вектор предполагаемых значений параметров. Для всех методов оптимизации кроме 'fminsearch' параметры ограничиваются быть больше, чем или равными 0. | ||||||
result | Структура с полями, которые предоставляют информацию о прогрессе оптимизации. | ||||||
modelObj | Объект модели SimBiology®. | ||||||
tspan | n-by-1 вектор, представляющий отрезок времени целевых данных xtarget. | ||||||
xtarget | n-by-m матрица, где n является количеством выборок времени и m, является количеством состояний, чтобы соответствовать во время симуляции. Количество строк в | ||||||
observed_array | Любое из следующего:
ПримечаниеЕсли двойные названия существуют для каких-либо разновидностей или параметров, гарантируют, что нет никаких неоднозначностей путем определения или массива объектов или массива ячеек полностью определенных имен, таких как Длина | ||||||
estimated_array | Любое из следующего:
ПримечаниеЕсли двойные названия существуют для каких-либо отсеков, разновидностей, или параметров, гарантируют, что нет никаких неоднозначностей путем определения или массива объектов или массива ячеек полностью определенных имен, таких как | ||||||
k0 | Числовой вектор, содержащий начальные значения отсеков, разновидностей или параметров, которые будут оценены. Длина k0 должна равняться длине estimated_array. Если вы не задаете k0 или задаете пустой вектор для k0, то sbioparamestim принимает начальные значения для отсеков, разновидностей или параметров от modelObj, или, если существуют активные варианты, sbioparamestim использует любые начальные значения, заданные в активных вариантах. Для получения дополнительной информации о вариантах, смотрите Variant object. | ||||||
method | Алгоритм оптимизации, чтобы использовать во время процесса оценки, заданного любым из следующего:
|
Функциональные описания
| Функция | Описание | ||||||
|---|---|---|---|---|---|---|---|
fminsearch |
Примечание
| ||||||
lsqcurvefit | Требует Optimization Toolbox.
| ||||||
lsqnonlin | Требует Optimization Toolbox.
| ||||||
fmincon | Требует Optimization Toolbox.
| ||||||
patternsearch | Требует Global Optimization Toolbox.
| ||||||
patternsearch_hybrid | Требует Global Optimization Toolbox.
Функция
| ||||||
ga | Требует Global Optimization Toolbox.
| ||||||
ga_hybrid | Требует Global Optimization Toolbox.
Функция
| ||||||
particleswarm | Требует Global Optimization Toolbox. sbioparamestim использует следующие опции по умолчанию для particleswarm, за исключением:Display = 'off'; FunctionTolerance = 1e-6*[Initial objective function value] SwarmSize = 10; MaxIter = 30; | ||||||
particleswarm_hybrid | Требует Global Optimization Toolbox.
Display = 'off';
FunctionTolerance = 1e-6*[Initial objective function value]
SwarmSize = 10;
MaxIter = 30;
HybridFcn = {@fmincon, [Fmincon Options, described above]} |
sbioparamestim не поддерживает установку опции Vectorized к 'on' в алгоритмах, которые поддерживают эту опцию.
[k, result]= sbioparamestim( оценивает начальные значения отсеков, разновидностей и параметров modelObj, tspan, xtarget, observed_array, estimated_array)modelObj, объекта модели SimBiology, заданного в estimated_array, чтобы совпадать со значениями разновидностей и непостоянных параметров, данных observed_array с целевым состоянием, xtarget, изменение времени которого дано отрезком времени tspan. Если вам установили Optimization Toolbox, sbioparamestim использует функцию lsqnonlin в качестве метода по умолчанию для оценки параметра. Если вам не установили Optimization Toolbox, sbioparamestim использует функцию MATLAB fminsearch в качестве метода по умолчанию для оценки параметра.
[___]= sbioparamestim(___, задает начальные значения отсеков, разновидностей и параметров, перечисленных в observed_array, estimated_array, k0)estimated_array.
[___]= sbioparamestim(___, задает метод оптимизации, чтобы использовать. observed_array, estimated_array, k0, method)
Учитывая модель и некоторые целевые данные, оцените все его параметры, явным образом не задавая начальных значений:
Загрузите модель из проекта, gprotein_norules.sbproj. Проект содержит две модели, один для деформации дикого типа (сохраненный в переменной m1), и один для деформации мутанта (сохраненный в переменной m2). Загрузите модель белка G для деформации дикого типа.
sbioloadproject gprotein_norules m1;
Храните целевые данные в переменной:
Gt = 10000; tspan = [0 10 30 60 110 210 300 450 600]'; Ga_frac = [0 0.35 0.4 0.36 0.39 0.33 0.24 0.17 0.2]'; xtarget = Ga_frac * Gt;
Сохраните все параметры модели в массиве:
p_array = sbioselect(m1,'Type','parameter');
Сохраните разновидности, которые должны совпадать с целью:
Ga = sbioselect(m1,'Type','species','Name','Ga'); % In this example only one species is selected. % To match more than one targeted species data % replace with selected species array.
Оцените параметры:
[k, result] = sbioparamestim(m1, tspan, xtarget, Ga, p_array)
k =
0.0100
0.0000
0.0004
4.0000
0.0040
1.0000
0.0000
0.1100
result =
fval: 1.4193e+06
residual: [9x1 double]
exitflag: 2
iterations: 2
funccount: 27
algorithm: 'trust-region-reflective'
message: [1x413 char]Оцените параметры, заданные в p_array для разновидностей Ga с помощью различных алгоритмов.
[k1,r1] = sbioparamestim(m1,tspan,xtarget,Ga,p_array, ... {},'fmincon'); [k2,r2] = sbioparamestim(m1,tspan,xtarget,Ga,p_array, ... {},'patternsearch'); [k3,r3] = sbioparamestim(m1,tspan,xtarget,Ga,p_array, ... {},'ga'); [k4,r4] = sbioparamestim(m1,tspan,xtarget,Ga,p_array, ... {},'particleswarm');
Оцените, что параметры, заданные в p_array для разновидностей Ga и опциях оптимизации значения по умолчанию изменения, используют заданные пользователями опции.
myopt1 = optimoptions('Display','iter'); [k1,r1] = sbioparamestim(m1,tspan,xtarget, ... Ga,p_array,{},{'fmincon',myopt1}); myopt2 = optimoptions('MeshTolerance',1.0e-4); [k2,r2] = sbioparamestim(m1,tspan,xtarget, ... Ga,p_array,{},{'patternsearch',myopt2}); myopt3 = optimoptions('PopulationSize',25, 'Generations', 10); [k3,r3] = sbioparamestim(m1,tspan,xtarget, ... Ga,p_array,{},{'ga',myopt3}); myopt4 = optimoptions('particleswarm','Display','iter'); [k4,r4] = sbioparamestim(m1,tspan,xtarget,Ga,p_array,{},{'particleswarm',myopt4});
sbioparamestim оценивает параметры путем попытки минимизировать несоответствие между результатами симуляции и данными, чтобы соответствовать. Минимизация использует один из этих алгоритмов оптимизации: fminsearch (из MATLAB); lsqcurvefit, lsqnonlinfit или fmincon (от Optimization Toolbox); или patternsearch или ga (от Global Optimization Toolbox). Все методы оптимизации требуют целевой функции как входа. Эта целевая функция берет в качестве входа вектор значений параметров и возвращает оценку несоответствия между симуляцией и данными. При использовании lsqcurvefit или lsqnonlinfit как метод оптимизации, эта целевая функция возвращает вектор невязок. Для других методов оптимизации целевая функция возвращает 2-норму невязок.
[1] И, T-M., Kitano, H., и Саймон, M.I. (2003) А количественная характеристика дрожжей гетеротримерный цикл белка G. PNAS 100, 10764–10769.