Advertisement
Guest User

Untitled

a guest
Feb 27th, 2020
290
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.04 KB | None | 0 0
  1. import pandas as pd
  2. import seaborn as sns
  3. from sklearn.preprocessing import StandardScaler
  4. from sklearn.model_selection import train_test_split
  5. from sklearn.linear_model import Lasso, Ridge
  6. from sklearn.tree import DecisionTreeRegressor
  7. from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor
  8. import matplotlib.pyplot as plt
  9. from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score
  10.  
  11.  
  12. # прочитаем из csv-файла данные с описанием автомобилей и их потреблением, распечатаем его размер и первые 5 строк
  13. cars = pd.read_csv('/datasets/auto_cons.csv')
  14.  
  15.  
  16. # уберём строки с пустыми значениями из набора данных
  17. cars.dropna(inplace = True)
  18.  
  19. # сохраним датафрейм с учётом преобразования признаков
  20. cars = pd.get_dummies(cars)
  21.  
  22. # разделим наши данные на признаки (матрица X) и целевую переменную (y)
  23. X = cars.drop(columns = ['Расход топлива'])
  24. y = cars['Расход топлива']
  25.  
  26. # разделяем модель на обучающую и валидационную выборку
  27. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
  28.  
  29.  
  30. # создадим объект класса StandardScaler и применим его к обучающей выборке
  31. scaler = StandardScaler()
  32. X_train_st = scaler.fit_transform(X_train) #обучаем scaler и одновременно трансформируем матрицу для обучающей выборки
  33.  
  34. # применяем стандартизацию к матрице признаков для тестовой выборки
  35. X_test_st = scaler.transform(X_test)
  36.  
  37. # задайте список моделей
  38. models = [Lasso(), Ridge(), DecisionTreeRegressor(), RandomForestRegressor(), GradientBoostingRegressor()]
  39.  
  40. # функция, которая вычисляет MAPE
  41. def mape(y_true, y_pred):
  42.     y_error = y_true - y_pred
  43.     y_error_abs = [abs(i) for i in y_error]
  44.     perc_error_abs = y_error_abs / y_true
  45.     mape = (perc_error_abs.sum() / len(y_true))
  46.     return mape
  47.  
  48. # функция, которая принимает на вход модель и данные и выводит метрики
  49. def make_prediction(m, X_train, y_train, X_test, y_test):
  50.     model = m
  51.     model.fit(X_train, y_train)
  52.     y_pred = model.predict(X_test)
  53.     print('MAE:{:.2f} MSE:{:.2f} MAPE:{:.2f} R2:{:.2f} '.format(mean_absolute_error(y_test, y_pred),
  54.                                           mean_squared_error(y_test, y_pred),
  55.                                                                     mape(y_test, y_pred),
  56.                                                                     r2_score(y_test, y_pred)))
  57. # напишите цикл, который выводит метрики по списку моделей
  58. for i in models:
  59.     print(i)
  60.     make_prediction in models
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement