scipy lib में leastsq विधि कुछ डेटा के लिए एक वक्र फिट बैठता है। और इस विधि का तात्पर्य है कि इस डेटा में वाई मान कुछ एक्स तर्क पर निर्भर करता है। और वक्र और वाई अक्ष (डीवाई) में डेटा बिंदुकम से कम वर्ग विधि में ऑर्थोगोनल रिग्रेशन फिटिंग
लेकिन क्या होगा अगर मैं दोनों अक्ष में कम से कम दूरी (डीवाई और dx)
की गणना करनी बीच की न्यूनतम दूरी की गणना करता है वहाँ यह लागू करने के कुछ तरीके है गणना?
यहाँ कोड का एक नमूना है जब एक धुरी गणना का उपयोग कर रहा है:
import 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
मैं हाल ही में scipy.odr पुस्तकालय tryed और यह केवल रेखीय कार्य के लिए उचित परिणाम देता है। 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
जब मैंने कोशिश की तो मैंने पाया कि परिणाम समान थे, लेकिन समान नहीं - मुझे लगता है कि इसका मतलब है कि अतिरिक्त गणना फिट में बहुत अंतर नहीं करती है। –