Evaluate data frame analytics API

edit

Evaluates the data frame analytics for an annotated index.

This functionality is in technical preview and may be changed or removed in a future release. Elastic will work to fix any issues, but features in technical preview are not subject to the support SLA of official GA features.

Request

edit

POST _ml/data_frame/_evaluate

Prerequisites

edit

Description

edit

This API evaluates the executed analysis on an index that is already annotated with a field that contains the results of the analytics (the ground truth) for each data frame row.

Evaluation is typically done by calculating a set of metrics that capture various aspects of the quality of the results over the data for which you have the ground truth.

For different types of analyses different metrics are suitable. This API packages together commonly used metrics for various analyses.

Request body

edit
index
(Required, object) Defines the index in which the evaluation will be performed.
evaluation
(Required, object) Defines the type of evaluation you want to perform. For example: binary_soft_classification. See Data frame analytics evaluation resources.

Examples

edit
POST _ml/data_frame/_evaluate
{
  "index": "my_analytics_dest_index",
  "evaluation": {
    "binary_soft_classification": {
      "actual_field": "is_outlier",
      "predicted_probability_field": "ml.outlier_score"
    }
  }
}

The API returns the following results:

{
  "binary_soft_classification": {
    "auc_roc": {
      "score": 0.92584757746414444
    },
    "confusion_matrix": {
      "0.25": {
          "tp": 5,
          "fp": 9,
          "tn": 204,
          "fn": 5
      },
      "0.5": {
          "tp": 1,
          "fp": 5,
          "tn": 208,
          "fn": 9
      },
      "0.75": {
          "tp": 0,
          "fp": 4,
          "tn": 209,
          "fn": 10
      }
    },
    "precision": {
        "0.25": 0.35714285714285715,
        "0.5": 0.16666666666666666,
        "0.75": 0
    },
    "recall": {
        "0.25": 0.5,
        "0.5": 0.1,
        "0.75": 0
    }
  }
}