Если вы построите полный многочлен, который вам подходит, и разберете свои точки данных
trend = np.polyfit(a[0], a[1], 7)
x_line = np.linspace(0,150,1000)
fit = np.polyval(trend, x_line)
plt.scatter(a[0], a[1])
plt.plot(x_line, fit)
, вы, скорее всего, увидите дико колеблющуюся кривую, которая колеблется вокруг ваших точек данных. Способы определения степени вашего подходящего полинома: 1) посмотреть, какую функцию вы ожидаете от ваших данных. 2) пробовать разные полиномиальные степени, пока вы не получите форму, которая не колеблется слишком много.
Если у вас есть n точек данных, многочлен степени> = n-1 будет точно перехватывать каждую точку данных, но будет далеко от вашей кривой между точками данных.
Если вы ожидаете, что ваши данные будут следовать некоторой неполиномиальной функции, такой как log (x) или exp (x) (или, возможно, * sqrt (b * x) в этом случае), вы можете заглянуть в scipy.curve_fit.