У меня есть классическая линейная задача регрессии в форме:
y = X b
где y
— это вектор отклика, X
— это матрица входных переменных, а b
— вектор параметров соответствия, которые я ищу.
Python предоставляет b = numpy.linalg.lstsq( X , y )
для решения задач этой формы.
Однако, когда я использую это, я получаю либо очень большие, либо очень маленькие значения для компонентов b
.
Я хотел бы выполнить ту же подгонку, но ограничить значения b
между 0 и 255.
Похоже, что scipy.optimize.fmin_slsqp()
- это вариант, но я нашел его чрезвычайно медленным для интересующего меня размера проблемы (X
- это что-то вроде 3375 by 1500
и, надеюсь, даже больше).
- Существуют ли какие-либо другие варианты Python для выполнения ограниченных подгонок методом наименьших квадратов?
- Или существуют процедуры Python для выполнения регрессии Лассо или регрессии гребня или какого-либо другого метода регрессии, который штрафует большие значения коэффициента
b
?