预测一部分 ID

%load_ext autoreload
%autoreload 2

仅计算训练 ID 的一部分的预测结果

from lightgbm import LGBMRegressor
from fastcore.test import test_fail

from mlforecast import MLForecast
from mlforecast.utils import generate_daily_series
series = generate_daily_series(5)
fcst = MLForecast({'lgb': LGBMRegressor(verbosity=-1)}, freq='D', date_features=['dayofweek'])
fcst.fit(series)
all_preds = fcst.predict(1)
all_preds
unique_id ds lgb
0 id_0 2000-08-10 3.728396
1 id_1 2000-04-07 4.749133
2 id_2 2000-06-16 4.749133
3 id_3 2000-08-30 2.758949
4 id_4 2001-01-08 3.331394

默认情况下,训练期间看到的所有序列都将通过 predict 方法进行预测。如果您只对预测其中几条感兴趣,可以使用 ids 参数。

fcst.predict(1, ids=['id_0', 'id_4'])
unique_id ds lgb
0 id_0 2000-08-10 3.728396
1 id_4 2001-01-08 3.331394

请注意,IDs 必须在训练期间被看到,如果你尝试预测一个没有出现过的 ID,会出现错误。

test_fail(lambda: fcst.predict(1, ids=['fake_id']), contains='fake_id')

Give us a ⭐ on Github