相关疑难解决方法(0)

具有约束约束的scipy.optimize.leastsq

我正在寻找scipy/numpy中的优化例程,它可以解决非线性最小二乘类型问题(例如,将参数函数拟合到大数据集),但包括边界和约束(例如参数的最小值和最大值)优化).目前我使用的是pyfit版本的mpfit(从idl翻译过来......):虽然效果很好,但显然不是最佳选择.

python/scipy/etc中的高效例程可能很棒!这里非常欢迎任何输入:-)

谢谢!

python optimization mathematical-optimization scipy

24
推荐指数
3
解决办法
3万
查看次数

如何将约束包含在Scipy NNLS函数解决方案中,使其总和为1

我有以下代码来解决非负最小二乘法.使用scipy.nnls.

import numpy as np
from scipy.optimize import nnls 

A = np.array([[60, 90, 120], 
              [30, 120, 90]])

b = np.array([67.5, 60])

x, rnorm = nnls(A,b)

print x
#[ 0.          0.17857143  0.42857143]
# Now need to have this array sum to 1.
Run Code Online (Sandbox Code Playgroud)

我想要做的是对x解决方案应用约束,使其总和为1.我该怎么做?

python numpy scipy

7
推荐指数
1
解决办法
4169
查看次数

如何在Python回归中添加“大于0且总和为1”的约束?

我正在使用statsmodels(向其他python选项开放)运行一些线性回归。我的问题是我需要回归分析不具有截距并将其约束在(0,1)范围内,并且总和为1。

我尝试过这样的事情(至少为1):

from statsmodels.formula.api import glm
import pandas as pd

df = pd.DataFrame({'revised_guess':[0.6], "self":[0.55], "alter_1":[0.45], "alter_2":[0.2],"alter_3":[0.8]})
mod = glm("revised_guess ~ self + alter_1 + alter_2 + alter_3 - 1", data=df)
res = mod.fit_constrained(["self + alter_1 + alter_2 + alter_3  = 1"],
                          start_params=[0.25,0.25,0.25,0.25])
res.summary()
Run Code Online (Sandbox Code Playgroud)

但仍在努力实施“非负”系数约束。

python linear-regression statsmodels

6
推荐指数
1
解决办法
563
查看次数