Сципи получил отличное решение здесь https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.curve_fit.html
def defa(x, a,b,c,d):
return a*b*c*d # the form for regresion you want to do
var1, var2 = scipy.optimize.curve_fit(defa,[x cordinates],[y cordinates])
print(var1)
# your a b c and d will ne printed out in order
Кстати, если вы впервые устанавливаете scipy, вы должны знать, что scipy также требует от вас numpy:)
fx
import numpy as np
from scipy.optimize import curve_fit
def defa(x,a,b,c,d,e):
return a**2+b**3+c**4+d**5+e
print(curve_fit(defa,range(1000),range(1000)))
ВЫХОД:
(array([9.32720415, 4.0480121, 3.12719445, 2.49008364, 154.80388797]),array([...]))
это означает, что
a = 9.32720415
b = 4.0480121
c = 3.12719445
d = 2.49008364
e = 154.80388797