Установленная линия не покрывает исходные данные - PullRequest
0 голосов
/ 14 апреля 2019

Я хочу предсказать годовое потребление набора данных по энергии. После визуализации данные находятся в нелинейной форме и могут быть решены с помощью логарифмической.

Но я предсказал, что модель с точностью 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()
...