Значения NaN: я получаю ошибку при поиске MSE из набора данных - PullRequest
0 голосов
/ 13 мая 2019

Я делаю модель временного ряда SARIMA и хочу найти MSE прогнозируемых данных и фактических данных.Но я продолжаю получать значение NaN для получения MSE.

Это то, что используется для вычисления среднеквадратичной ошибки.Кроме того, все значения были напечатаны ниже.

y_forecasted = pred.predicted_mean
y_truth = indexedDataset['2018-01-01':]

mse = (np.mean(y_truth - y_forecasted)**2)
print(mse)


2018-01-01 00:00:00   NaN
2018-02-01 00:00:00   NaN
2018-03-01 00:00:00   NaN
2018-04-01 00:00:00   NaN
2018-05-01 00:00:00   NaN
2018-06-01 00:00:00   NaN
2018-07-01 00:00:00   NaN
2018-08-01 00:00:00   NaN
2018-09-01 00:00:00   NaN
2018-10-01 00:00:00   NaN
2018-11-01 00:00:00   NaN
2018-12-01 00:00:00   NaN
2019-01-01 00:00:00   NaN
2019-02-01 00:00:00   NaN
2019-03-01 00:00:00   NaN
kwh                   NaN
dtype: float64



print(y_truth)

2018-01-01  120
2018-02-01  113
2018-03-01  123
2018-04-01  168
2018-05-01  142
2018-06-01  149
2018-07-01  116
2018-08-01  123
2018-09-01   38
2018-10-01   41
2018-11-01   48
2018-12-01   52
2019-01-01   48
2019-02-01   49
2019-03-01   36



print(y_forecasted)

2018-01-01    116.544320
2018-02-01    118.167629
2018-03-01    149.221148
2018-04-01    145.603930
2018-05-01    182.453446
2018-06-01    136.816330
2018-07-01    127.626132
2018-08-01    130.638331
2018-09-01    115.672435
2018-10-01     78.242700
2018-11-01     65.631016
2018-12-01     44.679845
2019-01-01     60.412676
2019-02-01     26.324014
2019-03-01     59.369507
Freq: MS, dtype: float64

1 Ответ

0 голосов
/ 13 мая 2019

Вы можете использовать метод mean_squared_error непосредственно из sklearn.metrics

>>> from sklearn.metrics import mean_squared_error
    >>> y_truth = [116, 118, ....59]
    >>> y_forecasted = [120, 113, ...36]
    >>> mean_squared_error(y_truth , y_forecasted)
    0.375                                         #Some number to illustrate the working
...