Ниже приведены шаги, которые я выполнил:
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()
мгновенно
день
сезон
год
месяц
праздник
будний
рабочий день
погода
температура
температура
гул
скорость ветра
повседневный
зарегистрировано
cnt
0
1
1/1/2011
1
0
1
0
6
0
2
0.344167
0.363625
0.805833
0.160446
331
654
985
1
2
1/2/2011
1
0
1
0
0
0
2
0.363478
0.353739
0.696087
0.248539
131
670
801
2
3
1/3/2011
1
0
1
0
1
1
1
0.196364
0.189405
0.437273
0,248309
120
1229
1349
3
4
4/4/2011
1
0
1
0
2
1
1
0,200000
0,212122
0.590435
0.160296
108
1454
1562
4
5
1/5/2011
1
0
1
0
3
1
1
0,226957
0.229270
0.436957
0.186900
82
1518
1600
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
Я не уверен, что делать дальше, и буду очень признателен за любые предложения по решению этой проблемы.>