Ограниченная оценка наименьших квадратов в 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; сколько у вас переменных?)

Ответ 3

Так как MATLAB lsqlin является ограниченным линейным решателем наименьших квадратов, вы бы хотели проверить scipy.optimize.lsq_linear.