Guest User

Untitled

a guest
Jun 11th, 2021
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.28 KB | None | 0 0
  1. import catboost as cb
  2. import lightgbm as lg
  3.  
  4. from sklearn.datasets import make_regression
  5. X, Y = make_regression(n_samples=500_000, n_features=100)
  6. Y = (Y - Y.mean()) / Y.std()
  7.  
  8.  
  9. class MyLoss(object):
  10.     def calc_ders_range(self, approxes, targets, weights):
  11.         ders = np.zeros((len(targets), 2))
  12.         ders[:, 0] = targets - approxes
  13.         ders[:, 1] = -1
  14.         return ders
  15.    
  16.     def evaluate(self, approxes, target, weight):
  17.         return np.mean((approxes[0] -  target)**2), 1
  18.    
  19.     def is_max_optimal(self):
  20.         True
  21.    
  22.     def get_final_error(self, error, weight):
  23.         return error
  24.    
  25.     def lg_loss(self, target, approxes):
  26.         '''for lightgbm test'''
  27.         ders = self.calc_ders_range(approxes, target, None)
  28.         return ders[:, 0], ders[:, 1]
  29.    
  30.    
  31. lg_reg = lg.LGBMRegressor(objective=MyLoss().lg_loss, max_depth=6, n_estimators=10, learning_rate=0.1, verbose=1)
  32. lg_reg.fit(X, Y)
  33.    
  34. reg = cb.CatBoostRegressor(max_depth=6, n_estimators=10, learning_rate=0.1)
  35. reg.fit(X, Y)
  36.  
  37. reg2 = cb.CatBoostRegressor(objective=MyLoss(), eval_metric=MyLoss(), max_depth=6, n_estimators=10, learning_rate=0.1)
  38. reg2.fit(X, Y)
  39.  
  40. # Test
  41. pred = reg.predict(X)
  42. pred2 = reg2.predict(X)
  43. print(f"max_diff = {np.max(np.abs(pred - pred2)) }")
Advertisement
Add Comment
Please, Sign In to add comment