Как правильно предсказать значения влажности? - PullRequest
0 голосов
/ 23 ноября 2018

У меня есть следующий ввод:

startDate = "2013-01-01"
endDate = "2013-01-01"
knownTimestamps = ['2013-01-01 00:00','2013-01-01 01:00','2013-01-01     02:00','2013-01-01 03:00','2013-01-01 04:00',
           '2013-01-01 05:00','2013-01-01 06:00','2013-01-01 08:00','2013-01-01 10:00','2013-01-01 11:00',
           '2013-01-01 12:00','2013-01-01 13:00','2013-01-01 16:00','2013-01-01 17:00','2013-01-01 18:00',
           '2013-01-01 19:00','2013-01-01 20:00','2013-01-01 21:00','2013-01-01 23:00']
humidity = ['0.62','0.64','0.62','0.63','0.63','0.64','0.63','0.64','0.48','0.46','0.45','0.44','0.46','0.47','0.48','0.49','0.51','0.52','0.52']
timestamps = ['2013-01-01 07:00','2013-01-01 09:00','2013-01-01 14:00','2013-01-01 15:00','2013-01-01 22:00']

И я использую следующую функцию для прогнозирования значений влажности с использованием модели AR в Python.

from statsmodels.tsa.arima_model import ARIMA
def predictMissingHumidity(startDate, endDate, knownTimestamps, humidity, timestamps):
data_prediction = pd.DataFrame({'knownTimestamps': knownTimestamps,'humidity': humidity})
print(data_prediction.head(10))
history = [float(x) for x in data_prediction.humidity]
predictions = []
test = timestamps
for t in range(len(test)):
    model = ARIMA(history, order=(2,2,0))
    model_fit = model.fit(disp=0)
    output = model_fit.forecast()
    yhat = output[0]
    predictions.append(float(yhat))
    obs = test[t]
    history.append(float(obs))
print(predictions)
return predictions

Модель предсказывает то же значениевлажности для значений в списке отметок времени.

res = predictMissingHumidity(startDate, endDate, knownTimestamps, humidity, timestamps) 
print(res)


output = [0.5287247355700563, 0.5287247355700563, 0.5287247355700563,
 0.5287247355700563, 0.5287247355700563] 

Может кто-нибудь сказать мне, где я не прав?

1 Ответ

0 голосов
/ 23 ноября 2018

Вы не обновляете свою историю.Предположительно, это сайт, откуда большая часть вашего кода взята с

https://machinelearningmastery.com/arima-for-time-series-forecasting-with-python/

. Здесь вы можете увидеть, как в строке 23 обновляется история и используется для прогноза на следующемшаг на тестовом наборе:

history.append(obs)
...