2
지금 당장 커다란 데이터 세트에 커브를 맞추려고합니다. x와 y의 두 배열이 있고, 각각 352 개의 요소가 있습니다. 나는 잘 작동 데이터에 다항식에 맞게했습니다 :커다란 데이터 세트 피팅
import numpy as np
import matplotlib.pyplot as plt
coeff=np.polyfit(x, y, 20)
coeff=np.polyfit(x, y, 20)
poly=np.poly1d(coeff)
을하지만 더 정확하게 최적화 된 곡선이 필요합니다, 그래서 scipy와 곡선에 맞게 노력했습니다. 여기에 지금까지 가지고있는 코드입니다 :
import numpy as np
import scipy
from scipy import scipy.optimize as sp
coeff=np.polyfit(x, y, 20)
coeff=np.polyfit(x, y, 20)
poly=np.poly1d(coeff)
poly_y=poly(x)
def poly_func(x): return poly(x)
param=sp.curve_fit(poly_func, x, y)
는 그러나 반환 모든이있다 :
ValueError: Unable to determine number of fit parameters.
가 어떻게이 작업을 얻을 수 있나요? (또는이 데이터에 곡선을 맞추려면 어떻게해야합니까?)
_non-linear_ least squares method _polynomial 모델 _에 더 정확한 결과를 줄 것입니다 (선형입니까?). 선형 결과는 최소 자승 감각으로 가장 적합합니다. 비선형 방법을 사용하여 선형 모델에 대한 최소 제곱 피트를 얻는 것은 시간이 오래 걸리고 좋은 적합도를 반환하지 않을 것입니다 ... 그 외에 왜 20 차 다항식에 적합합니까? 해당 모델이 귀하의 데이터에 적합한가? (만약 그렇다면, 모호한 curosity에서 당신의 데이터는 무엇입니까?) –
다항식 모델을 데이터에 맞추기보다는 스플라인 보간을 원하십니까? (즉, 각 포인트를 정확히 통과하지만 단일 수학 모델에 맞지 않거나 데이터를 가장 잘 재현 할 수있는 특정 수학 모델의 매개 변수를 찾고 싶습니까? –
numpy.polyfit '두 번 달성하기로 했어? – talonmies