Evaluate data frame analytics APIedit

Evaluates the data frame analytics for an annotated index.

Warning

This functionality is experimental and may be changed or removed completely in a future release. Elastic will take a best effort approach to fix any issues, but experimental features are not subject to the support SLA of official GA features.

Requestedit

POST _ml/data_frame/_evaluate

Prerequisitesedit

Descriptionedit

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 bodyedit

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.

Examplesedit

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
    }
  }
}