次の形式の古典的な線形回帰問題があります。
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オプションはありますか?
- または、ラッソ回帰またはリッジ回帰、または大きな
b
係数値にペナルティを課す他の回帰方法を実行するためのPythonルーチンはありますか?