Advertisement
maresin

Untitled

Mar 14th, 2023
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.37 KB | None | 0 0
  1. import pandas as pd
  2. import numpy as np
  3. from sklearn.model_selection import train_test_split
  4. from sklearn.linear_model import LinearRegression
  5. from sklearn.metrics import mean_absolute_error
  6.  
  7.  
  8. data = pd.read_csv('/datasets/energy_consumption.csv', index_col=[0], parse_dates=[0])
  9. data.sort_index(inplace=True)
  10. data = data.resample('1D').sum()
  11.  
  12. def make_features(data, max_lag, rolling_mean_size):
  13. data['year'] = data.index.year
  14. data['month'] = data.index.month
  15. data['day'] = data.index.day
  16. data['dayofweek'] = data.index.dayofweek
  17.  
  18. for lag in range(1, max_lag + 1):
  19. data['lag_{}'.format(lag)] = data['PJME_MW'].shift(lag)
  20.  
  21. data['rolling_mean'] = data['PJME_MW'].shift().rolling(rolling_mean_size).mean()
  22.  
  23.  
  24. make_features(data, 5, 20)
  25.  
  26. train, test = train_test_split(data, shuffle=False, test_size=0.2)
  27. train = train.dropna()
  28.  
  29. # < напишите код здесь >
  30.  
  31. # < обучите модель >
  32. model = LinearRegression().fit(train.drop('PJME_MW', axis=1), train['PJME_MW'])
  33.  
  34. # < напишите код здесь >
  35. pred_train = model.predict(train.drop('PJME_MW', axis=1))
  36. pred_test = model.predict(test.drop('PJME_MW', axis=1))
  37. print("MAE обучающей выборки:", mean_absolute_error(train['PJME_MW'], pred_train))
  38. print("MAE тестовой выборки: ", mean_absolute_error(test['PJME_MW'], pred_test))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement