首页 > 解决方案 > 具有多个约束的 scipy 优化

问题描述

如何找到对python中的系数有多个约束的线性回归的解决方案?

在此处输入图像描述

标签: optimizationdata-sciencelinear-programmingscipy-optimize

解决方案


cvxpy 是一个不错的选择:

import cvxpy as cp 
import numpy as np

np.random.seed(1) 
y = 100*np.random.random(1) 
x = 200*np.random.random(1000)-100

b = cp.Variable(1000)

constraints = [-100<=b, b<=100, cp.sum(b)==2]
obj = cp.Minimize( cp.square(y-x@b) )
prob = cp.Problem(obj, constraints) 
val = prob.solve()
print(f"Objective value {val}")
print("b values: {0}".format(b.value))

推荐阅读