Проблема с запуском модели Facebook ProphetPython

Программы на Python
Anonymous
Проблема с запуском модели Facebook Prophet

Сообщение Anonymous »

Я использую блокнот Jupyter для запуска модели Facebook Prophet с использованием кода Python.
Ниже приведены шаги, которые я выполнил:
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
2. Импортируйте данные в фрейм данных

Код: Выделить всё

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()
Измените ds на формат ГГГГ-ММ-ДД

Код: Выделить всё

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])
4. Применить модель Пророка
Импортировать модель

Код: Выделить всё

from prophet import Prophet
Удалите все NA

Код: Выделить всё

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
Я использовал командную строку anaconda, чтобы удалить и переустановить Prophet, используя следующие строки кода:

Код: Выделить всё

conda remove prophet
conda remove pystan
conda install -c conda-forge prophet
После переустановки Prophet и перезапуска Jupyter Notebook я запускаю те же строки кода, которые я описал выше, и выдает то же сообщение об ошибке.
Я не уверен, что делать дальше, и буду очень признателен за любые предложения по решению этой проблемы.>

Вернуться в «Python»