Advertisement
Guest User

Untitled

a guest
Nov 20th, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.10 KB | None | 0 0
  1. from IPython.display import clear_output
  2. import time
  3.  
  4. def custom_gridsearch(trainer, grid, train_data, valid_data, minimize=True):
  5.     valid_scores = []
  6.    
  7.     time_start = time.time()
  8.     evaluator = RmseEvaluator(labelCol="rating", predictionCol="prediction")
  9.    
  10.     n = len(grid)
  11.     for i, params in enumerate(grid):
  12.         for k,v in params.items():
  13.             k.parent = v
  14.         model = trainer.fit(train_data)
  15.         predictions = model.transform(valid_data)
  16.         valid_score = evaluator.evaluate(predictions)
  17.         valid_scores.append(valid_score)
  18.         # tqdm not working here
  19.         clear_output()
  20.         print("valid_score: {}, time_left: {}".format(valid_score, (time.time() - time_start) * (n-i-1)/(i+1)))
  21.     print("time passed: {}".format(time.time()-time_start))
  22.    
  23.     if minimize:
  24.         best_idx = np.argmin(valid_scores)
  25.     else:
  26.         best_idx = np.argmax(valid_scores)
  27.     # return best_params, best_score,
  28.     return grid[best_idx], valid_scores[best_idx], valid_scores
  29.  
  30. best_params, best_score, all_scores = custom_gridsearch(als, grid, dev, val)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement