SciPy 라이브러리는 복잡한 과학적 계산을 빠르고 효율적으로 수행하는 데 사용할 수 있습니다. Nelder-Mead 알고리즘은 단순 검색 알고리즘이라고도 합니다.
매개변수 추정 문제 및 통계 문제를 해결하는 데 사용할 수 있는 최고의 알고리즘 중 하나로 간주됩니다. 함수 값이 불확실하거나 관련된 노이즈가 많은 상황에서 이 알고리즘을 사용하는 것과 관련이 있습니다.
이 알고리즘은 통계에서 자주 발생하는 불연속 함수를 사용하는 데에도 사용할 수 있습니다. 간단한 알고리즘이며 이해하기 쉽습니다. 다차원 비제약 최적화의 경우 비선형 함수의 매개변수를 최소화하는 데 사용됩니다.
시간이 오래 걸릴 수 있으므로 이 알고리즘을 사용하여 최적의 기울기 값을 찾는 것은 권장하지 않습니다.
예를 들어 보겠습니다 -
예
import numpy as np from scipy.optimize import minimize def f(x): return .6*(1 - x[0])**2 scipy.optimize.minimize(f, [2, -1], method="Nelder-Mead")
출력
final_simplex: (array([[ 1. , -1.27109375], [ 1. , -1.27118835], [ 1. , -1.27113762]]), array([0., 0., 0.])) fun: 0.0 message: 'Optimization terminated successfully.' nfev: 147 nit: 69 status: 0 success: True x: array([ 1. , -1.27109375])
설명
-
필요한 라이브러리를 가져옵니다.
-
값을 인수로 사용하고 이에 대해 몇 가지 수학적 계산을 수행하는 함수 'f'가 정의되었습니다.
-
이 함수는 값을 계산하는 'f' 함수에 대한 함수 정의 외부에서 호출됩니다.
-
이 함수는 'scipy' 라이브러리의 'optimize' 클래스에 있는 'minimize' 함수에 매개변수로 전달됩니다.
-
이 출력은 콘솔에 표시됩니다.