Observability Bias Fairness¶
This page outlines the operations, endpoints, parameters, and example requests and responses for the Observability Bias Fairness.
GET /api/v2/deployments/{deploymentId}/fairnessScoresOverTime/¶
Retrieve fairness scores for all features, or for different classes of a single feature changes over a specific time period.
Code samples¶
curl -X GET https://app.datarobot.com/api/v2/deployments/{deploymentId}/fairnessScoresOverTime/ \
-H "Accept: application/json" \
-H "Authorization: Bearer {access-token}"
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
start | query | string,null(date-time) | false | Start of the period to retrieve monitoring data, defaults to 7 days ago from the end of the period. Note: this field only accepts top of the hour RFC3339 datetime strings, for example: 2019-08-01T00:00:00Z . |
end | query | string,null(date-time) | false | End of the period to retrieve monitoring data, defaults to the next top of the hour. Note: this field only accepts top of the hour RFC3339 datetime strings, for example: 2019-08-01T00:00:00Z . |
bucketSize | query | string | false | Time duration of buckets |
modelId | query | string | false | The ID of the model to retrieve the statistics for. |
fairnessMetric | query | string,null | false | The name of the fairness metric to compute fairness over time. |
protectedFeature | query | string | false | Name of the protected feature. When present, will return per class fairness score of the protected feature, otherwise returning fairness score of all protected features. |
orderBy | query | string | false | The type of FairnessScore to order the response by. |
includePrivilegedClass | query | string | false | Always include privileged class in response. |
onlyStatisticallySignificant | query | string | false | Include only statistically significant attributes. |
limit | query | integer | false | Max number of features in response. |
offset | query | integer | false | Number of features to offset in response. |
deploymentId | path | string | true | Unique identifier of the deployment. |
Enumerated Values¶
Parameter | Value |
---|---|
bucketSize | [PT1H , P1D , P7D , P1M ] |
fairnessMetric | [proportionalParity , equalParity , favorableClassBalance , unfavorableClassBalance , trueUnfavorableRateParity , trueFavorableRateParity , favorablePredictiveValueParity , unfavorablePredictiveValueParity ] |
orderBy | [absoluteFairnessScore , relativeFairnessScore , -absoluteFairnessScore , -relativeFairnessScore ] |
includePrivilegedClass | [false , False , true , True ] |
onlyStatisticallySignificant | [false , False , true , True ] |
Example responses¶
200 Response
{
"buckets": [
{
"metricName": "proportionalParity",
"period": {
"end": "2019-08-24T14:15:22Z",
"start": "2019-08-24T14:15:22Z"
},
"scores": [
{
"absoluteValue": 0,
"classesCount": 0,
"healthyClassesCount": 0,
"healthyCount": 0,
"isStatisticallySignificant": true,
"label": "string",
"message": "string",
"privilegedClass": "string",
"sampleSize": 0,
"totalCount": 1,
"value": 1
}
]
}
],
"fairnessThreshold": 1,
"favorableTargetOutcome": true,
"modelId": "string",
"modelPackageId": "string",
"protectedFeature": "string",
"summary": {
"metricName": "proportionalParity",
"period": {
"end": "2019-08-24T14:15:22Z",
"start": "2019-08-24T14:15:22Z"
},
"scores": [
{
"absoluteValue": 0,
"classesCount": 0,
"healthyClassesCount": 0,
"healthyCount": 0,
"isStatisticallySignificant": true,
"label": "string",
"message": "string",
"privilegedClass": "string",
"sampleSize": 0,
"totalCount": 1,
"value": 1
}
]
}
}
Responses¶
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Fairness summary and over time. | FairnessOverTimeResponse |
To perform this operation, you must be authenticated by means of one of the following methods:
BearerAuth
Schemas¶
FairnessOverTimeBucket
{
"metricName": "proportionalParity",
"period": {
"end": "2019-08-24T14:15:22Z",
"start": "2019-08-24T14:15:22Z"
},
"scores": [
{
"absoluteValue": 0,
"classesCount": 0,
"healthyClassesCount": 0,
"healthyCount": 0,
"isStatisticallySignificant": true,
"label": "string",
"message": "string",
"privilegedClass": "string",
"sampleSize": 0,
"totalCount": 1,
"value": 1
}
]
}
Summary of per feature fairness.
Properties¶
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
metricName | string | true | Name of the metric. | |
period | TimeRange | true | An object with the keys "start" and "end" defining the period. | |
scores | [FairnessOverTimeScore] | true | List of per-feature fairness details. |
Enumerated Values¶
Property | Value |
---|---|
metricName | [proportionalParity , equalParity , favorableClassBalance , unfavorableClassBalance , trueUnfavorableRateParity , trueFavorableRateParity , favorablePredictiveValueParity , unfavorablePredictiveValueParity ] |
FairnessOverTimeResponse
{
"buckets": [
{
"metricName": "proportionalParity",
"period": {
"end": "2019-08-24T14:15:22Z",
"start": "2019-08-24T14:15:22Z"
},
"scores": [
{
"absoluteValue": 0,
"classesCount": 0,
"healthyClassesCount": 0,
"healthyCount": 0,
"isStatisticallySignificant": true,
"label": "string",
"message": "string",
"privilegedClass": "string",
"sampleSize": 0,
"totalCount": 1,
"value": 1
}
]
}
],
"fairnessThreshold": 1,
"favorableTargetOutcome": true,
"modelId": "string",
"modelPackageId": "string",
"protectedFeature": "string",
"summary": {
"metricName": "proportionalParity",
"period": {
"end": "2019-08-24T14:15:22Z",
"start": "2019-08-24T14:15:22Z"
},
"scores": [
{
"absoluteValue": 0,
"classesCount": 0,
"healthyClassesCount": 0,
"healthyCount": 0,
"isStatisticallySignificant": true,
"label": "string",
"message": "string",
"privilegedClass": "string",
"sampleSize": 0,
"totalCount": 1,
"value": 1
}
]
}
}
Properties¶
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
buckets | [FairnessOverTimeBucket] | true | Per bucket summary. | |
fairnessThreshold | number | true | maximum: 1 minimum: 0 |
Threshold used to compute fairness results. |
favorableTargetOutcome | any | true | Preferable class of target. |
oneOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | boolean | false | none |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | string | false | none |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | integer | false | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
modelId | string | true | Model Id for which fairness is computed. | |
modelPackageId | string | true | Model package Id. | |
protectedFeature | string | false | Name of the protected feature. | |
summary | FairnessOverTimeBucket | true | Summary of per feature fairness. |
FairnessOverTimeScore
{
"absoluteValue": 0,
"classesCount": 0,
"healthyClassesCount": 0,
"healthyCount": 0,
"isStatisticallySignificant": true,
"label": "string",
"message": "string",
"privilegedClass": "string",
"sampleSize": 0,
"totalCount": 1,
"value": 1
}
Properties¶
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
absoluteValue | number | false | Absolute fairness score. | |
classesCount | integer | false | Count of occurences of the class within the data the fairness is calculated on. | |
healthyClassesCount | integer | false | Count of statistically significant classes above fairness threshold. | |
healthyCount | integer | false | minimum: 0 |
Total number of classes with fairness score above the threshold. |
isStatisticallySignificant | boolean | false | Class is statistically significant. | |
label | string | false | Name of the feature. | |
message | string | false | Explanation message. | |
privilegedClass | string | false | Name of the privileged class (the one with the highest fairness score) within the feature. | |
sampleSize | integer | false | Sample size used for fairness status calculation | |
totalCount | integer | false | minimum: 1 |
Total number of classes. |
value | number | false | maximum: 1 minimum: 0 |
Fairness score in relation to the privileged class fairness score. |
TimeRange
{
"end": "2019-08-24T14:15:22Z",
"start": "2019-08-24T14:15:22Z"
}
An object with the keys "start" and "end" defining the period.
Properties¶
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
end | string,null(date-time) | false | End of the period to retrieve monitoring data, defaults to the next top of the hour. Note: this field only accepts top of the hour RFC3339 datetime strings, for example: 2019-08-01T00:00:00Z . |
|
start | string,null(date-time) | false | Start of the period to retrieve monitoring data, defaults to 7 days ago from the end of the period. Note: this field only accepts top of the hour RFC3339 datetime strings, for example: 2019-08-01T00:00:00Z . |