def METHOD_NAME(
    self, dataset: Dataset, num_samples: int = 100, **kwargs
) -> Iterator[SampleForecast]:
    params = self.prophet_params.copy()
    params.update(uncertainty_samples=num_samples)
    for entry in dataset:
        data = self._make_prophet_data_entry(entry)
        forecast_samples = self._run_prophet(data, params)
        yield SampleForecast(
            samples=forecast_samples,
            start_date=data.forecast_start,
            item_id=entry.get("item_id"),
            info=entry.get("info"),
        )