teceai

Untitled

Feb 12th, 2021
963
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import numpy as np
  2. import pandas as pd
  3. from sklearn.metrics import r2_score
  4.  
  5. columns = ['комнаты', 'площадь', 'кухня', 'пл. жилая', 'этаж', 'всего этажей', 'цена']
  6.  
  7. data = pd.DataFrame([
  8.     [1, 38.5, 6.9, 18.9, 3, 5, 4200000],
  9.     [1, 38.0, 8.5, 19.2, 9, 17, 3500000],
  10.     [1, 34.7, 10.3, 19.8, 1, 9, 5100000],
  11.     [1, 45.9, 11.1, 17.5, 11, 23, 6300000],
  12.     [1, 42.4, 10.0, 19.9, 6, 14, 5900000],
  13.     [1, 46.0, 10.2, 20.5, 3, 12, 8100000],
  14.     [2, 77.7, 13.2, 39.3, 3, 17, 7400000],
  15.     [2, 69.8, 11.1, 31.4, 12, 23, 7200000],
  16.     [2, 78.2, 19.4, 33.2, 4, 9, 6800000],
  17.     [2, 55.5, 7.8, 29.6, 1, 25, 9300000],
  18.     [2, 74.3, 16.0, 34.2, 14, 17, 10600000],
  19.     [2, 78.3, 12.3, 42.6, 23, 23, 8500000],
  20.     [2, 74.0, 18.1, 49.0, 8, 9, 6000000],
  21.     [2, 91.4, 20.1, 60.4, 2, 10, 7200000],
  22.     [3, 85.0, 17.8, 56.1, 14, 14, 12500000],
  23.     [3, 79.8, 9.8, 44.8, 9, 10, 13200000],
  24.     [3, 72.0, 10.2, 37.3, 7, 9, 15100000],
  25.     [3, 95.3, 11.0, 51.5, 15, 23, 9800000],
  26.     [3, 69.3, 8.5, 39.3, 4, 9, 11400000],
  27.     [3, 89.8, 11.2, 58.2, 24, 25, 16300000],
  28. ], columns=columns)
  29.  
  30. features = data.drop('цена', axis=1)
  31. target = data['цена']
  32.  
  33. class LinearRegression:
  34.     def fit(self, train_features, train_target):
  35.         self.train_target = train_target
  36.         self.w = np.zeros(train_features.shape[1])
  37.         self.w0 = np.mean(self.train_target)
  38.  
  39.     def predict(self, test_features):
  40.         self.test_features = test_features
  41.         pred = self.test_features @ self.w + self.w0
  42.         return pred
  43.    
  44. model = LinearRegression()
  45. model.fit(features, target)
  46. predictions = model.predict(features)
  47. print(r2_score(target, predictions))
RAW Paste Data