SymetryML Documentation
Data drift

Estimate performance drift between two projects

Scores a validation project and a production project against the same target and metric, so their performance can be compared — e.g. to check whether the production model's performance has drifted relative to the validation baseline. The request body is an inline object (not a named schema) with required `prodDf` and `valDf` fields, both of type `DataFrame`. The response's `KSVDMap` field carries the metric scores; its keys depend on `metric`: - **`accuracy`, `precision`, `recall`, `f1`, `specificity`**: a single key matching the metric name. - **`roc_curve`**: `auc`, `youden_threshold`, and one `FPR:<threshold>`/`TPR:<threshold>` pair per distinct score value in the production data. - **`precrec_curve`**: `ap`, `f1_threshold`, and one `precision:<threshold>`/`recall:<threshold>` pair per distinct score value.

POST
/{user}/projects/performanceEstimator

Scores a validation project and a production project against the same target and metric, so their performance can be compared — e.g. to check whether the production model's performance has drifted relative to the validation baseline.

The request body is an inline object (not a named schema) with required prodDf and valDf fields, both of type DataFrame.

The response's KSVDMap field carries the metric scores; its keys depend on metric:

  • accuracy, precision, recall, f1, specificity: a single key matching the metric name.
  • roc_curve: auc, youden_threshold, and one FPR:<threshold>/TPR:<threshold> pair per distinct score value in the production data.
  • precrec_curve: ap, f1_threshold, and one precision:<threshold>/recall:<threshold> pair per distinct score value.

Authorization

SymetryMLAuth
AuthorizationBearer <token>

HMAC-SHA256 signature-based authentication: requests are signed with your secret key and sent with the Customer-ID, Sym-date, Authorization, Content-MD5 and sym-version headers. See SymetryML REST API Security for the signature algorithm and a complete example.

In: header

Path Parameters

user*string

User/Customer identifier

Query Parameters

targetName*string
validationProject*string
productionProject*string
metric*string

Value in

  • "roc_curve"
  • "precrec_curve"
  • "accuracy"
  • "precision"
  • "recall"
  • "f1"
  • "specificity"
threshold*number

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/c1/projects/performanceEstimator?targetName=string&validationProject=string&productionProject=string&metric=roc_curve&threshold=0" \  -H "Content-Type: application/json" \  -d '{    "valDf": {      "attributeNames": [        "Cover_Type",        "score_validation"      ],      "attributeTypes": [        "B",        "C"      ],      "data": [        [          "1",          "0.82"        ],        [          "0",          "0.13"        ]      ]    },    "prodDf": {      "attributeNames": [        "score_production"      ],      "attributeTypes": [        "C"      ],      "data": [        [          "0.77"        ],        [          "0.09"        ]      ]    }  }'

{  "statusCode": 200,  "statusString": "OK",  "values": {    "KSVDMap": {      "values": [        {          "accuracy": 0.638028809892168        }      ]    }  }}

{  "statusCode": 500,  "statusString": "Generic Exception [java.lang.NullPointerException: Cannot invoke \"com.rtlm.core.projects.SymetryProject.getAttributesNameAndId()\" because \"this.mValidationProject\" is null]",  "values": {}}