함수를 정의하고 싶습니다.
그리고 포인트에 대한 (a, b)에 대한 최소값을 찾고 싶습니다.
x = np.array([.2, .5, .8, .9, 1.3, 1.7, 2.1, 2.7])
y = f(x) + np.random.randn(len(x))
함수 사용 : optimize.fmin_cg (여기에서 문서를 찾을 수 있습니다 : https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.fmin_cg.html )
지금까지 내 작업
compute_error()
함수 를 정의했습니다 .
def compute_error(a,b):
k=[0]*len(x)
for i in range(0,len(x)):
k[i]=(y[i]-(a*x[i]+b))**2
return sum(k)
이 최적화 기능을 사용하여 최소화하려고했지만 몇 가지 문제가 발생했습니다.
x_0=np.array((0,0)) #start optimization from point (0,0)
minimum = optimize.fmin_cg(compute_error,x_0)
TypeError: compute_error() missing 1 required positional argument: 'b'
나는 compute_error가 두 개의 개별 인수가 아닌 두 요소 배열을 취해야한다고 생각합니다.
def compute_error(params_to_optimize):
a = params_to_optimize[0]
b = params_to_optimize[1]
k=[0]*len(x)
for i in range(0,len(x)):
k[i]=(y[i]-(a*x[i]+b))**2
return sum(k)
또한 관련이있을 수있는 x0 초기화는 np.array 생성자에서 튜플이 아닌 목록을 사용하는 것이 약간 이상해 보입니다.
x_0=np.array([0,0])
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다