Модель#
- класс scipy.odr.Модель(fcn, fjacb=None, fjacd=None, extra_args=None, оценка=None, неявный=0, meta=None)[источник]#
Класс Model хранит информацию о функции, которую вы хотите аппроксимировать.
Он хранит саму функцию, как минимум, и опционально хранит функции, которые вычисляют якобианы, используемые во время подгонки. Также можно предоставить функцию, которая даст разумные начальные значения для параметров подгонки, возможно, с учетом набора данных.
- Параметры:
- fcnфункция
fcn(beta, x) –> y
- fjacbфункция
Матрица Якоби функции fcn по параметрам подгонки beta.
fjacb(beta, x) –> @f_i(x,B)/@B_j
- fjacdфункция
Якобиан функции fcn по (возможно, многомерной) входной переменной.
fjacd(beta, x) –> @f_i(x,B)/@x_j
- extra_argsкортеж, необязательный
Если указано, extra_args должен быть кортежем дополнительных аргументов для передачи в fcn, fjacb, и fjacd. Каждый будет вызван apply(fcn, (beta, x) + extra_args)
- оценкаarray_like ранга 1
Предоставляет оценки параметров подгонки из данных
estimate(data) –> estbeta
- неявныйлогический
Если TRUE, указывает, что модель неявная; т.е fcn(beta, x) ~= 0 и нет данных y для подгонки против
- metadict, optional
свободный словарь метаданных для модели
Методы
set_meta(**kwds)Обновить словарь метаданных с предоставленными здесь ключевыми словами и данными.
Примечания
Обратите внимание, что fcn, fjacb, и fjacd работает с массивами NumPy и возвращает массив NumPy. оценка объект принимает экземпляр класса Data.
Вот правила для форм аргументов и возвращаемых массивов функций обратного вызова:
- x
если входные данные одномерны, то x является массивом rank-1; т.е.,
x = array([1, 2, 3, ...]); x.shape = (n,)Если входные данные многомерные, то x является массивом ранга 2; т.е.,x = array([[1, 2, ...], [2, 4, ...]]); x.shape = (m, n). Во всех случаях он имеет ту же форму, что и входной массив данных, переданный вodr. m — это размерность входных данных, n — количество наблюдений.- y
если переменная отклика одномерна, то y является массивом ранга 1, т.е.,
y = array([2, 4, ...]); y.shape = (n,). Если зависимая переменная многомерная, то y является массивом ранга 2, т.е.,y = array([[2, 4, ...], [3, 6, ...]]); y.shape = (q, n)где q является размерностью переменной отклика.- beta
ранг-1 массив длины p где p это количество параметров; т.е.
beta = array([B_1, B_2, ..., B_p])- fjacb
если переменная отклика многомерная, то форма возвращаемого массива
(q, p, n)такой, чтоfjacb(x,beta)[l,k,i] = d f_l(X,B)/d B_kвычислено в i-й точке данных. Еслиq == 1, тогда возвращаемый массив имеет только ранг 2 и форму(p, n).- fjacd
как и с fjacb, только форма возвращаемого массива
(q, m, n)такой, чтоfjacd(x,beta)[l,j,i] = d f_l(X,B)/d X_jв i-й точке данных. Еслиq == 1, тогда форма возвращаемого массива(m, n). Еслиm == 1, форма (q, n). Если m == q == 1, форма(n,).