Advertisement
Guest User

Untitled

a guest
Feb 27th, 2020
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.99 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. #import numpy as np
  11. # прочитаем из csv-файла данные с описанием автомобилей и их потреблением, распечатаем его размер и первые 5 строк
  12. cars = pd.read_csv('/datasets/auto_cons.csv')
  13.  
  14. # уберём строки с пуcтыми значениями из набора данных
  15. cars.dropna(inplace = True)
  16.  
  17. # сохраним датафрейм с учётом преобразования признаков
  18. cars = pd.get_dummies(cars)
  19.  
  20. # разделим наши данные на признаки (матрица X) и целевую переменную (y)
  21. X = cars.drop(columns = ['Расход топлива'])
  22. y = cars['Расход топлива']
  23.  
  24. # разделяем модель на обучающую и валидационную выборки
  25. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
  26.  
  27. # создадим объект класса StandardScaler и применим его к обучающей выборке
  28. scaler = StandardScaler()
  29. X_train_st = scaler.fit_transform(X_train) #обучаем scaler и одновременно трансформируем матрицу для обучающей выборки
  30.  
  31. # применяем стандартизацию к матрице признаков для тестовой выборки
  32. X_test_st = scaler.transform(X_test)
  33.  
  34. # задайте список моделей
  35. models = [Lasso(), Ridge(), DecisionTreeRegressor(), RandomForestRegressor(), GradientBoostingRegressor()]
  36.  
  37. # функция, которая вычисляет MAPE
  38. def mape(y_true, y_pred):
  39.     y_error =  [i - j for i,j in zip(y_true, y_pred)] #np.array(y_true) - np.array(y_pred) #рассчитайте вектор ошибок
  40.     y_error_abs = [abs(i) for i in y_error] #abs(y_error) #рассчитайте вектор модуля ошибок
  41.     perc_error_abs = [y_error_abs / y_true].mean() #рассчитайте вектор относительных ошибок
  42.     mape = 100 * perc_error_abs
  43.     return mape
  44.  
  45. # функция, которая принимает на вход модель и данные и выводит метрики
  46. def make_prediction(m, X_train, y_train, X_test, y_test):
  47.     model = m
  48.     model.fit(X_train, y_train)
  49.     y_pred = model.predict(X_test)
  50.    
  51.     # ваш код здесь
  52.     print('MAE:{:.2f} MSE:{:.2f} MAPE:{:.2f} R2:{:.2f} '.format(mean_absolute_error(y_test, y_pred), mean_squared_error(y_test, y_pred), mape(y_test, y_pred), r2_score(y_test, y_pred)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement