MySQL HeatWave User Guide

6.7.2.5 Score a Regression Model

After generating predictions and explanations, you can score the model to assess its reliability. For a list of scoring metrics you can use with regression models, see Regression 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.

Before You Begin

Complete the following tasks:

Score Model
  1. 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('regression_use_case', NULL);
    
  2. Score the model with the ML_SCORE routine and use the r2 metric.

    mysql> CALL sys.ML_SCORE('regression_data.house_price_testing', 'price', 'regression_use_case', 'r2', @regression_score, NULL);

    Where:

    • regression_data.house_price_testing is the fully qualified name of the validation dataset.

    • price is the target column name with ground truth values.

    • 'regression_use_case' is the model handle for the trained model.

    • r2 is the selected scoring metric.

    • @regression_score is the session variable name for the score value.

    • NULL means that no other options are defined for the routine.

  3. Retrieve the score by querying the @regression_score session variable.

    mysql> SELECT @regression_score;
    +--------------------+
    | @regression_score  |
    +--------------------+
    | 0.8438237905502319 |
    +--------------------+
    1 row in set (0.0453 sec)
    
  4. If done working with the model, unload it with the ML_MODEL_UNLOAD routine.

    mysql> CALL sys.ML_MODEL_UNLOAD('regression_use_case');
    

    To avoid consuming too much memory, it is good practice to unload a model when you are finished using it.

What's Next