<jupyter_start><jupyter_text>Домашнее задание №1====<jupyter_code># Импортируем нужные нам библиотеки
import pandas as pd
%matplotlib inline
import matplotlib.pyplot as plt
import seaborn; seaborn.set()
from sklearn.metrics import mean_absolute_error,mean_squared_error,r2_score
import numpy as np
import matplotlib.dates as mdates
import seaborn as sns
import matplotlib
# Use seaborn style defaults and set the default figure size
sns.set(rc={'figure.figsize':(15, 10)})
sns.set(font_scale=2)
sns.set_style("whitegrid")
from sklearn.metrics import mean_absolute_error,mean_squared_error,r2_score
from sklearn.model_selection import TimeSeriesSplit
import math

# Загружаем датасет, с которым мы будем работать
df = pd.read_csv('../datatest/bike-sharing.csv')
df.head()<jupyter_output><empty_output><jupyter_text>Задание====Для тех же данных, что мы рассмотрели на лекции (bike sharing), сделать следующее:* Выбрать самостоятельно уровень агрегации (день, неделя, месяц, год), а так же функцию агрегации (среднее, сумма, максимум). * Построить базовую наивную модель* В этот раз применить принцип кросс-валидации для временных рядов, используя выбранную метрику ($R^2$, MSE, MAE, MRSE).<jupyter_code>df['dteday'] = pd.to_datetime(df['dteday'])
df.set_index('dteday', inplace=True)
df = df.resample('W').mean()
df.sort_values('dteday')
df['cnt_hat'] = df['cnt'].shift(1)
df.dropna(inplace=True)
X = df["cnt"]
y = df["cnt_hat"]
tscv = TimeSeriesSplit(n_splits=5)
i = 0
print("TRAIN:", '\t MSE\t MAE\t RMSe \tR2')
for train_index, test_index in tscv.split(X):
    i += 1
    X_train, X_test = X[train_index], X[test_index]
    #print(len(X_train))
    y_train, y_test = y[train_index], y[test_index]
    mse = round(mean_squared_error(X_train, y_train), 2)
    mae = round(mean_absolute_error(X_train, y_train), 2)
    rmse = round(math.sqrt(mse), 2)
    r2 = round(r2_score(X_train, y_train), 2)
    print(i, '\t\t', mse, mae, rmse, r2)<jupyter_output>TRAIN: 	 MSE	 MAE	 RMSe 	R2
1 		 225.81 11.0 15.03 0.91
2 		 406.56 14.27 20.16 0.8
3 		 524.06 17.12 22.89 0.7
4 		 538.11 17.48 23.2 0.8
5 		 524.59 17.44 22.9 0.88
{'fraction_non_alphanumeric': 0.12848370335380255, 'fraction_numerical': 0.047709022201228156, 'mean_word_length': 5.229411764705882, 'pattern_counts': {'":': 0, '<': 8, '<?xml version=': 0, '>': 8, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '2', 'dir': 'jupyter-structured-clean-dedup', 'id': '37998', 'license': 'MIT', 'n_tokens_mistral': 970, 'n_tokens_neox': 930, 'n_words': 209, 'path': 'home-work1.ipynb', 'repo_name': 'vladdez/RD_forscasting', 'size': '2117'}