Ниже приведены шаги, которые я выполнил:
1. Импортировать библиотеки
Код: Выделить всё
import pandas as pd import numpy as np
import matplotlib.pyplot as plt
from statsmodels.graphics.tsaplots import month_plot, quarter_plot, plot_acf, plot_pacf
from statsmodels.tsa.seasonal import seasonal_decompose
from sklearn.model_selection import ParameterGrid
from sklearn.metrics import root_mean_squared_error, mean_absolute_error, mean_absolute_percentage_error
Код: Выделить всё
df = pd.read_csv("Daily Bike Sharing training.csv")
df.head()
3. Настройте фрейм данных
Измените имя переменной временного ряда
Код: Выделить всё
df = df.rename(columns = {'cnt':'y', 'dteday': 'ds'})
df.head()
Код: Выделить всё
df['ds'] = pd.to_datetime(df['ds'], format = "%m/%d/%Y")
df.head()
Код: Выделить всё
weather_sit = pd.get_dummies(df['weathersit'], drop_first = True)
weather_sit
df = pd.concat([df, weather_sit], axis = 1)
Переименуйте переменные 2 и 3
Код: Выделить всё
df = df.rename(columns = {2: 'weathersit_2', 3: 'weathersit_3'})
df.head()
Код: Выделить всё
df.drop(columns = ['instant', 'season', 'yr', 'mnth', 'weekday', 'casual', 'registered'], inplace = True) df.head()
Код: Выделить всё
df[df.holiday == 1].ds
Код: Выделить всё
gen_holidays = pd.DataFrame({'holiday': 'gen_holi', 'ds': df[df.holiday == 1].ds, 'lower_window': -2, 'upper_window': 2})
xmas = pd.DataFrame({'holiday': 'christmas', 'ds': pd.to_datetime(['2011-12-24', '2012-12-24']), 'lower_window': -3, 'upper_window': 3})
nye = pd.DataFrame({'holiday': 'new_years', 'ds': pd.to_datetime(['2011-12-31', '2012-12-31']), 'lower_window': -3, 'upper_window': 3})
easter = pd.DataFrame({'holiday': 'easter', 'ds': pd.to_datetime(['2011-04-24', '2012-04-08']), 'lower_window': -3, 'upper_window': 3})
Код: Выделить всё
holidays = pd.concat([gen_holidays, xmas, nye, easter])
Импортировать модель
Код: Выделить всё
from prophet import Prophet
Код: Выделить всё
df = df.dropna()
Код: Выделить всё
# Building the Prophet model
m = Prophet(
yearly_seasonality = True,
weekly_seasonality = True,
holidays = holidays,
seasonality_mode = 'multiplicative',
seasonality_prior_scale = 10,
holidays_prior_scale = 10,
changepoint_prior_scale = 0.05)
m.add_regressor('workingday')
m.add_regressor('temp')
m.add_regressor('atemp')
m.add_regressor('hum')
m.add_regressor('windspeed')
m.add_regressor('weathersit_2')
m.add_regressor('weathersit_3')
Когда я печатаю:
Код: Выделить всё
m.fit(df)
введите здесь описание изображения
Код: Выделить всё
The procedure entry point ZNi5seekgESt4fposI9MbstateE could not be located in the dynamic link library C:\Users\UserName\anaconda3\Lib\site-packages\prophet\stan_model\prophet_model.bin
Код: Выделить всё
conda remove prophet
conda remove pystan
conda install -c conda-forge prophet
Я не уверен, что делать дальше, и буду очень признателен за любые предложения по решению этой проблемы.>