Ограниченная оценка наименьших квадратов в Python
Я пытаюсь выполнить ограниченную оценку наименьших квадратов с использованием Scipy, так что все коэффициенты находятся в диапазоне (0,1)
и суммируются с 1
(эта функциональность реализована в функции Matlab LSQLIN
).
Есть ли у кого-нибудь советы по настройке этого расчета с использованием Python/Scipy. Я считаю, что я должен использовать scipy.optimize.fmin_slsqp()
, но не совсем уверен, какие параметры я должен передать ему. [1]
Большое спасибо за помощь,
Ник
[1] Один пример в документации для fmin_slsqp
для меня немного сложно разобрать без ссылочного текста - и я новичок в использовании Scipy.
Ответы
Ответ 1
scipy-optimize-leastsq-with-bound-constraints на SO дает leastsq_bounds
, что
leastsq
с связанными ограничениями, такими как 0 <= x_i <= 1.
Ограничение, которое они суммируют до 1, можно добавить таким же образом.
(Я нашел leastsq_bounds
/MINPACK, чтобы быть хорошим на синтетических тестовых функциях в 5d, 10d, 20d;
сколько у вас переменных?)
Ответ 2
Посмотрите этот учебник, это выглядит довольно ясно.
Ответ 3
Так как MATLAB lsqlin
является ограниченным линейным решателем наименьших квадратов, вы бы хотели проверить scipy.optimize.lsq_linear.