After generating predicted ratings/rankings and recommendations, you can score the model to assess its reliability. For a list of scoring metrics you can use with recommendation models, see Recommendation Model Metrics. For this use case, you use the test dataset for validation. In a real-world use case, you should use a separate validation dataset that has the target column and ground truth values for the scoring validation. You should also use a larger number of records for training and validation to get a valid score.
Review and complete the following tasks:
-
If not already done, load the model. You can use the session variable for the model that is valid for the duration of the connection. Alternatively, you can use the model handle previously set. For the option to set the user name, you can set it to
NULL.The following example uses the session variable.
mysql> CALL sys.ML_MODEL_LOAD(@model, NULL);The following example uses the model handle.
mysql> CALL sys.ML_MODEL_LOAD('recommendation_use_case', NULL); -
Score the model with the
ML_SCOREroutine and use theprecision_at_kmetric.mysql> CALL sys.ML_SCORE(table_name, target_column_name, model_handle, metric, score, [options]);Replace
table_name,target_column_name,model_handle,metric,scorewith your own values.The following example runs
ML_SCOREon the testing dataset previously created.mysql> CALL sys.ML_SCORE('recommendation_data.testing_dataset', 'rating', @model, 'precision_at_k', @recommendation_score, NULL);Where:
recommendation_data.testing_datasetis the fully qualified name of the validation dataset.ratingis the target column name with ground truth values.@modelis the session variable for the model handle.precision_at_kis the selected scoring metric.@recommendation_scoreis the session variable name for the score value.NULLmeans that no other options are defined for the routine.
-
Retrieve the score by querying the @score session variable.
mysql> SELECT @recommendation_score; +-----------------------+ | @recommendation_score | +-----------------------+ | 0.23333333432674408 | +-----------------------+ -
If done working with the model, unload it with the
ML_MODEL_UNLOADroutine.mysql> CALL sys.ML_MODEL_UNLOAD('recommendation_use_case');To avoid consuming too much memory, it is good practice to unload a model when you are finished using it.
Review other Machine Learning Use Cases.