scipy lib의 leastsq 방법은 일부 데이터에 곡선을 맞 춥니 다. 그리고이 방법은이 데이터에서 Y 값이 어떤 X 인자에 의존한다는 것을 의미합니다. 그리고이를 구현하는 몇 가지 방법이 있나요 곡선과 Y 축 (DY)의 데이터 포인트scipy 최소 제곱 법에 의한 직교 회귀 분석
하지만 최소한의 양 축에서 거리 (DY 및 DX)
을 계산해야하는 경우 것 사이의 최소 거리를 계산 계산? 하나의 축을 계산을 사용하면 다음
코드의 예이다 : I 최근 scipy.odr 라이브러리 tryedimport numpy as np
from scipy.optimize import leastsq
xData = [some data...]
yData = [some data...]
def mFunc(p, x, y):
return y - (p[0]*x**p[1]) # is takes into account only y axis
plsq, pcov = leastsq(mFunc, [1,1], args=(xData,yData))
print plsq
및 단지 선형 함수에 대한 적절한 결과를 반환한다. y = a * x^b와 같은 다른 함수의 경우 잘못된 결과를 반환합니다. 사용 방법은 다음과 같습니다.
def f(p, x):
return p[0]*x**p[1]
myModel = Model(f)
myData = Data(xData, yData)
myOdr = ODR(myData, myModel , beta0=[1,1])
myOdr.set_job(fit_type=0) #if set fit_type=2, returns the same as leastsq
out = myOdr.run()
out.pprint()
이렇게하면 원하지 않는 잘못된 결과가 반환되고 일부 입력 데이터는 실제와 유사하지 않습니다. 몇 가지 특별한 사용 방법이 있습니다. 무엇을 잘못 했습니까?
Scipy는 "직교 거리 회귀"에 대한 모듈을 가지고 올바른 솔루션에 저를 지시 - 당신이 무엇을 필요가있다이다? http://docs.scipy.org/doc/scipy/reference/odr.html –
네,이 문제를 해결하는 것 같지만 시도 할 때 leastsq 메서드와 같은 결과를 반환합니다. 나는 문서에 나와있는 예제를 따라 갔고 필요에 따라 작동하지 않습니다. 몇 가지 실제 사례가 있습니까? – Vladimir
나는 그것을 시도했을 때 그 결과가 비슷하지만 동일하지 않다는 것을 발견했다 - 나는 단지 여분의 계산이 적합에 많은 차이를주지 않는다는 것을 의미한다고 생각했다. –