我想我对x0
的定义不正确(初步猜测)
有了minimize
的{{1}},我想找点乐子scipy.optimize
,并希望error
位于[-100,100]和?0
之间[-5,5]。
起点–(?0,?1)=(0,0)。
功能
?1
问题
def error(w0, w1):
dataset = data
total_error = 0
for i in range(1, 10):
total_error = total_error + (dataset['Height'][i] - (w0 + w1 * dataset['Weight'][i]))**2
return total_error
ValueError:x0的长度!=边界的长度
WTF
bnds = ((-100, 100), (-5, 5))
x0 = (0), (0)
res = minimize(error, (0), (0), method = "L-BFGS-B", bounds = bnds)
2 2
答案 0 :(得分:0)
嘿,我转载了您的错误,我在这里也遇到了一些问题。但我认为我发现了主要问题:
from scipy.optimize import minimize
import numpy as np
def error(w0,w1):
dataset = np.array([1,2,3,4,5,6,777,7,77,7,7,7])
total_error = 0
for i in range(1, 10):
total_error = total_error + (dataset[i] - (w0+ w1 * dataset[i]))**2
return total_error
x0 = np.array([[12],[22]])
res =minimize(error, x0[0],x0[1], method = "L-BFGS-B",bounds=[[0,10]])
您只能选择2个边界,因为您的优化问题是2维的。您可以在输入数据点上为“ x轴”定义边界,也可以将输出包装或裁剪为边界“ bnds”。希望我能帮忙