Я хочу предсказать годовое потребление набора данных по энергии. После визуализации данные находятся в нелинейной форме и могут быть решены с помощью логарифмической.
Но я предсказал, что модель с точностью 0 с высоким значением MSE. Я просто показываю вам данные для графика. Установленная линия не начинается с первого значения. Это началось с середины оси Y до последнего значения.
Подгонка против оригинальной линии:
import matplotlib.pyplot as plt
import scipy.optimize as optimize
import numpy as np
from scipy.optimize import curve_fit
# data
x=df_tot_ac['Year'].values
y=df_tot_ac['AC-Total'].values
plt.plot(x, y, 'ro', label="original data")
# curve fit
def log(x, a, b):
return a+ b*np.log(x)
popt, pcov = curve_fit(log, x, y)#, maxfev=1000)
t = np.linspace(2009,2018, 10)
plt.plot(t, log(t, *popt), label="Fitted Curve")
plt.legend(loc='lower right')
plt.show()