...

Prophet что за программа

Prophet что за программа

Prophet is a procedure for forecasting time series data based on an additive model where non-linear trends are fit with yearly, weekly, and daily seasonality, plus holiday effects. It works best with time series that have strong seasonal effects and several seasons of historical data. Prophet is robust to missing data and shifts in the trend, and typically handles outliers well.

Prophet is open source software released by Facebook’s Core Data Science team. It is available for download on CRAN and PyPI.

2023 Update: We discuss our plans for the future of Prophet in this blog post: facebook/prophet in 2023 and beyond

Accurate and fast.

Prophet is used in many applications across Facebook for producing reliable forecasts for planning and goal setting. We’ve found it to perform better than any other approach in the majority of cases. We fit models in Stan so that you get forecasts in just a few seconds.

Fully automatic.

Get a reasonable forecast on messy data with no manual effort. Prophet is robust to outliers, missing data, and dramatic changes in your time series.

Tunable forecasts.

The Prophet procedure includes many possibilities for users to tweak and adjust forecasts. You can use human-interpretable parameters to improve your forecast by adding your domain knowledge.

Available in R or Python.

We’ve implemented the Prophet procedure in R and Python, but they share the same underlying Stan code for fitting. Use whatever language you’re comfortable with to get forecasts.

Прогнозирование временных рядов с помощью Prophet

Prophet — это библиотека с открытым исходным кодом от компании Facebook. Она предназначена для прогнозирования временных рядов. По словам разработчиков (команды Core Data Science team) данный инструмент хорошо работает с рядами, которые имеют ярко выраженные сезонные эффекты, а также имеют несколько таких периодов. Prophet устойчив к отсутствию данных и достаточно хорошо справляется с выбросами. Библиотека во многом наследует «стиль» sklearn со своими fit и predict. Для примера рассмотрим стандартный для таких задач датасет с продажей австралийского вина с 1980 г. по 1995 г. Для начала установим библиотеку:

3.5K открытий
pip install fbprophet

Импортируем нужные библиотеки:

import pandas as pd import fbprophet import matplotlib.pyplot as plt

Загружаем датасет (данные с периодом в один месяц) и посмотрим информацию о нем, так как данные обычно загружаются в формате строки:

df = pd.read_csv(‘monthly-australian-wine-sales.csv’) df.info()

Установим формат даты:

df[‘month’] = pd.to_datetime(df[‘month’])
plt.plot(df[‘month’], df[‘sales’]);

Важно отметить, что библиотека от нас ожидает два столбца с названиями ds (даты) и y (целевые значения), в противном случае может получиться ошибка, поэтому переименуем:

df.rename(columns = <'month':'ds', 'sales':'y'>, inplace = True)</'month':'ds',>

Создаем модель, в наших данных есть явная годовая сезонность и нет дневной, так как данные предоставлены за каждый месяц, обучаем:

model = fbprophet.Prophet(yearly_seasonality = True, daily_seasonality = False, seasonality_mode = ‘multiplicative’) model.fit(df);

Для предсказания возьмем 12 периодов (месяцев):

future = model.make_future_dataframe(periods = 12, freq = ‘m’) forecast = model.predict(future);

Также можем посмотреть на трендовую и годовую компоненты в отдельности:

При подготовке материала использовались источники:
https://facebook.github.io/prophet/
https://vc.ru/dev/286478-prognozirovanie-vremennyh-ryadov-s-pomoshchyu-prophet

Оцените статью