lr.regParam, [10.**x for x in range(-4, 5)]).build()) # COMMAND ---------- # MAGIC %md # MAGIC Perform grid search using RMSE as metric to minimise. # COMMAND ---------- gridSearchResults = [None] * len(paramMaps) evaluator = RegressionEvaluator(metricName='rmse', labelCol='rating', predictionCol='prediction') for i, model in lr.fitMultiple(featurizedTrainingSet, paramMaps): predictions = model.transform(featurizedTestSet, paramMaps[i]) gridSearchResults[i] = evaluator.evaluate(predictions) print('α = {elasticNetParam:.2f}, λ = {regParam:.0e}, ' 'RMSE = {rmse:.3f}'.format(**{ k.name: v for k, v in paramMaps[i].items() }, rmse=gridSearchResults[i])) bestModelIndex = np.argmin(gridSearchResults) bestParams = {k.name: v for k, v in paramMaps[bestModelIndex].items()} # COMMAND ---------- print('Best hyperparameters found:')