Прогнозирование для временных рядов

from sklearn.model_selection import train_test_split

Так как нельзя смешивать данные из прошлого и из будущего, то указываем аргумент shuffle=False

 

train, test = train_test_split(df, shuffle=False, test_size=0.2)

а)константная модель: для MAE с медианой

prediction_as_median = train['col_with_value'].median() * np.ones(test.shape)

mae =  mean_absolute_error(test['col_with_value'], prediction_as_median)

б)по предыдущеу значнию: чтобы подставить на место первого образовавшегося Nan последнее значение из трейна обозначают это первое с конца значение как "-1".

prediction_as_previous = test.shift()
prediction_as_previous.iloc[0] = train.iloc[-1]
mae =  mean_absolute_error(test['col_with_value']'], prediction_as_previous)