-- :api: evaluate-data-frame :request: EvaluateDataFrameRequest :response: EvaluateDataFrameResponse -- [id="{upid}-{api}"] === Evaluate Data Frame API The Evaluate Data Frame API is used to evaluate an ML algorithm that ran on a {dataframe}. The API accepts an +{request}+ object and returns an +{response}+. [id="{upid}-{api}-request"] ==== Evaluate Data Frame Request ["source","java",subs="attributes,callouts,macros"] -------------------------------------------------- include-tagged::{doc-tests-file}[{api}-request] -------------------------------------------------- <1> Constructing a new evaluation request <2> Reference to an existing index <3> The query with which to select data from indices <4> Kind of evaluation to perform <5> Name of the field in the index. Its value denotes the actual (i.e. ground truth) label for an example. Must be either true or false <6> Name of the field in the index. Its value denotes the probability (as per some ML algorithm) of the example being classified as positive <7> The remaining parameters are the metrics to be calculated based on the two fields described above. <8> https://en.wikipedia.org/wiki/Precision_and_recall[Precision] calculated at thresholds: 0.4, 0.5 and 0.6 <9> https://en.wikipedia.org/wiki/Precision_and_recall[Recall] calculated at thresholds: 0.5 and 0.7 <10> https://en.wikipedia.org/wiki/Confusion_matrix[Confusion matrix] calculated at threshold 0.5 <11> https://en.wikipedia.org/wiki/Receiver_operating_characteristic#Area_under_the_curve[AuC ROC] calculated and the curve points returned include::../execution.asciidoc[] [id="{upid}-{api}-response"] ==== Response The returned +{response}+ contains the requested evaluation metrics. ["source","java",subs="attributes,callouts,macros"] -------------------------------------------------- include-tagged::{doc-tests-file}[{api}-response] -------------------------------------------------- <1> Fetching all the calculated metrics results <2> Fetching precision metric by name <3> Fetching precision at a given (0.4) threshold <4> Fetching confusion matrix metric by name <5> Fetching confusion matrix at a given (0.5) threshold