Автор материала: Мария Мансурова, аналитик-разработчик в команде Яндекс.Метрики. Материал распространяется на условиях лицензии Creative Commons CC BY-NC-SA 4.0. Можно использовать в любых целях (редактировать, поправлять и брать за основу), кроме коммерческих, но с обязательным упоминанием автора материала.
Заполните пропущенный код и ответьте на вопросы в онлайн-форме.
import os
import pandas as pd
import requests
from plotly import __version__
from plotly import graph_objs as go
from plotly.offline import download_plotlyjs, init_notebook_mode, iplot, plot
print(__version__) # need 1.9.0 or greater
init_notebook_mode(connected=True)
def plotly_df(df, title=""):
data = []
for column in df.columns:
trace = go.Scatter(x=df.index, y=df[column], mode="lines", name=column)
data.append(trace)
layout = dict(title=title)
fig = dict(data=data, layout=layout)
iplot(fig, show_link=False)
Для начала скачаем данные в dataframe
. Сегодня будем предсказывать просмотры wiki-страницы Machine Learning. Данные я скачала с помощью библиотеки Wikipediatrend для R
.
df = pd.read_csv("../../data/wiki_machine_learning.csv", sep=" ")
df = df[df["count"] != 0]
df.head()
df.shape
df.date = pd.to_datetime(df.date)
plotly_df(df.set_index("date")[["count"]])
Для начала построим предсказание с помощью простой библиотеки Facebook Prophet
. Для того, чтобы посмотреть на качество модели, отбросим из обучающей выборки последние 30 дней.
from fbprophet import Prophet
predictions = 30
df = df[["date", "count"]]
df.columns = ["ds", "y"]
train_df = df[:-predictions].copy()
## ВАШ КОД для построения модели ##
Вопрос 1: Какое предсказание числа просмотров wiki-страницы на 20 января? Ответ округлите до целого числа.
Оценим качество предсказания по последним 30 точкам.
## ВАШ КОД для оценки качества полученной модели ##
Вопрос 2: Какое получилось MAPE?
Вопрос 3: Какое получилось MAE?
%matplotlib inline
import matplotlib.pyplot as plt
import statsmodels.api as sm
from scipy import stats
Вопрос 4: Проверим стационарность ряда с помощью критерия Дики-Фулера. Является ли ряд стационарным? Какое значение p-value?
## ВАШ КОД для проверки стационарности ряда ##
Вопрос 5: Далее перейдем к построению модели SARIMAX (sm.tsa.statespace.SARIMAX
). Модель c какими параметрами лучшая по AIC
-критерию?
## ВАШ КОД для построения модели ##