The stats() method is used to display the attributes of an existing model. It accepts the {scale: "attribute"} object as an argument.

Here is how to call the stats() method:

db.predictor_name.stats({scale: "attribute"});

Where:

NameDescription
predictor_nameThe name of the predictor whose statistics you want to see.
{scale: "attribute"}The argument of the stats() method defines the type of statistics ({scale: "features"}, or {scale: "model"}, or {scale: "ensemble"}).

The stats() Method with the {scale: "features"} Parameter

Description

The db.predictor_name.stats({scale: "features"}) method is used to display the way the model encoded the data before training.

Syntax

Here is the syntax:

db.predictor_name.stats({scale: "features"});

On execution, we get:

{
  "data": [
    {
      "column": "number_of_rooms",
      "type": "categorical",
      "encoder": "OneHotEncoder",
      "role": "feature"
    }
  ]
}

Where:

NameDescription
"column"The name of the column.
"type"Type of the inferred data.
"encoder"Encoder used.
"role"Role of the column (feature or target).

Example

Let’s describe the home_rentals_model model.

db.home_rentals_model.stats({scale: "features"});

On execution, we get:

{
  "data": [
    {
      "column": "number_of_rooms",
      "type": "categorical",
      "encoder": "OneHotEncoder",
      "role": "feature"
    },
    {
      "column": "number_of_bathrooms",
      "type": "binary",
      "encoder": "BinaryEncoder",
      "role": "feature"
    },
    {
      "column": "sqft",
      "type": "float",
      "encoder": "NumericEncoder",
      "role": "feature"
    },
    {
      "column": "location",
      "type": "categorical",
      "encoder": "OneHotEncoder",
      "role": "feature"
    },
    {
      "column": "days_on_market",
      "type": "integer",
      "encoder": "NumericEncoder",
      "role": "feature"
    },
    {
      "column": "initial_price",
      "type": "integer",
      "encoder": "NumericEncoder",
      "role": "feature"
    },
    {
      "column": "neighborhood",
      "type": "categorical",
      "encoder": "OneHotEncoder",
      "role": "feature"
    },
    {
      "column": "rental_price",
      "type": "float",
      "encoder": "NumericEncoder",
      "role": "target"
    }
  ],
  "ns": "mindsdb.home_rentals_model"
}

The stats() Method with the {scale: "model"} Parameter

Description

The db.predictor_name.stats({scale: "model"}) method is used to display the performance of the candidate models.

Syntax

Here is the syntax:

db.predictor_name.stats({scale: "model"});

On execution, we get:

{
  "data": [
    {
       "name" : "candidate_model",
       "performance" : <0.0|1.0>,
       "training_time" : <seconds>,
       "selected" : <0|1>
    }
  ]
}

Where:

NameDescription
"name"Name of the candidate model.
"performance"Accuracy from 0 to 1 depending on the type of the model.
"training_time"Time elapsed for the training of the model.
"selected"1 for the best performing model and 0 for the rest.

Example

Let’s see the output for the home_rentals_model model.

db.home_rentals_model.stats({scale: "model"});

On execution, we get:

{
  "data": [
    {
      "name": "Neural",
      "performance": 0.999,
      "training_time": 48.37,
      "selected": 0
    },
    {
      "name": "LightGBM",
      "performance": 1,
      "training_time": 33,
      "selected": 1
    },
    {
      "name": "Regression",
      "performance": 0.999,
      "training_time": 0.05,
      "selected": 0
    }
  ],
  "ns": "mindsdb.home_rentals_model"
}

The stats() Method with the {scale: "ensemble"} Parameter

Description

The db.predictor_name.stats({scale: "ensemble"}) method is used to display the parameters used to select the best candidate model.

Syntax

Here is the syntax:

db.predictor_name.stats({scale: "ensemble"});

On execution, we get:

+-----------------+
| ensemble        |
+-----------------+
| {JSON}          |
+-----------------+

Where:

NameDescription
ensembleObject of the JSON type describing the parameters used to select the best candidate model.