Advertisement
Guest User

Untitled

a guest
Feb 28th, 2020
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.92 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. # прочитаем из 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 = y_true - y_pred #рассчитайте вектор ошибок
  40. y_error_abs = [abs(i) for i in y_error] #рассчитайте вектор модуля ошибок
  41. perc_error_abs = y_error_abs / y_true #рассчитайте вектор относительных ошибок
  42. mape = (perc_error_abs.sum() /len(y_true)) #рассчитайте MAPE
  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. 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