monitor_schema.models.ExperimentalConfig#

class monitor_schema.models.ExperimentalConfig[source]#

Experimental algorithm that is not standardized by the above ones yet.

Show JSON schema
{
   "title": "ExperimentalConfig",
   "description": "Experimental algorithm that is not standardized by the above ones yet.",
   "type": "object",
   "properties": {
      "schemaVersion": {
         "title": "SchemaVersion",
         "description": "The schema version of an algorithm. Typically this valueis not required.",
         "type": "integer"
      },
      "params": {
         "title": "Params",
         "description": "Extra parameters for the algorithm",
         "type": "object",
         "additionalProperties": {
            "type": "string",
            "maxLength": 1000
         }
      },
      "metric": {
         "title": "Metric",
         "description": "The target metric. This field cannot be change once the analyzer is created.",
         "anyOf": [
            {
               "$ref": "#/definitions/DatasetMetric"
            },
            {
               "$ref": "#/definitions/SimpleColumnMetric"
            },
            {
               "type": "string",
               "maxLength": 100
            }
         ]
      },
      "type": {
         "title": "Type",
         "enum": [
            "experimental"
         ],
         "type": "string"
      },
      "implementation": {
         "title": "Implementation",
         "description": "The implementation of an experimental config",
         "maxLength": 100,
         "type": "string"
      },
      "baseline": {
         "title": "Baseline",
         "oneOf": [
            {
               "$ref": "#/definitions/TrailingWindowBaseline"
            },
            {
               "$ref": "#/definitions/ReferenceProfileId"
            },
            {
               "$ref": "#/definitions/TimeRangeBaseline"
            },
            {
               "$ref": "#/definitions/SingleBatchBaseline"
            }
         ]
      },
      "stub": {
         "description": "Stub field to flow algoirthm type into the schema. Do not use.",
         "allOf": [
            {
               "$ref": "#/definitions/AlgorithmType"
            }
         ]
      }
   },
   "required": [
      "metric",
      "type",
      "implementation",
      "baseline"
   ],
   "additionalProperties": false,
   "definitions": {
      "DatasetMetric": {
         "title": "DatasetMetric",
         "description": "Metrics that are applicable at the dataset level.",
         "enum": [
            "profile.count",
            "profile.last_ingestion_time",
            "profile.first_ingestion_time",
            "column_row_count_sum",
            "shape_column_count",
            "shape_row_count",
            "input.count",
            "output.count",
            "classification.f1",
            "classification.precision",
            "classification.recall",
            "classification.accuracy",
            "classification.auc",
            "regression.mse",
            "regression.mae",
            "regression.rmse"
         ],
         "type": "string"
      },
      "SimpleColumnMetric": {
         "title": "SimpleColumnMetric",
         "description": "Simple column metrics that are basically just a single number.",
         "enum": [
            "count",
            "median",
            "max",
            "min",
            "mean",
            "stddev",
            "variance",
            "unique_upper",
            "unique_upper_ratio",
            "unique_est",
            "unique_est_ratio",
            "unique_lower",
            "unique_lower_ratio",
            "count_bool",
            "count_bool_ratio",
            "count_integral",
            "count_integral_ratio",
            "count_fractional",
            "count_fractional_ratio",
            "count_string",
            "count_string_ratio",
            "count_null",
            "count_null_ratio",
            "inferred_data_type",
            "quantile_5",
            "quantile_75",
            "quantile_25",
            "quantile_90",
            "quantile_95",
            "quantile_99"
         ],
         "type": "string"
      },
      "TimeRange": {
         "title": "TimeRange",
         "description": "Support for a specific time range.",
         "type": "object",
         "properties": {
            "start": {
               "title": "Start",
               "description": "Inclusive. Start time of a time range.",
               "type": "string",
               "format": "date-time"
            },
            "end": {
               "title": "End",
               "description": "Exclusive. End time of a time range.",
               "type": "string",
               "format": "date-time"
            }
         },
         "required": [
            "start",
            "end"
         ],
         "additionalProperties": false
      },
      "TrailingWindowBaseline": {
         "title": "TrailingWindowBaseline",
         "description": "A dynamic trailing window.\n\nThis is useful if you don't have a static baseline to monitor against. This is the default mode for most\nmonitors.",
         "type": "object",
         "properties": {
            "datasetId": {
               "title": "DatasetId",
               "description": "The unique ID of an dataset. This is specific to WhyLabs. If the dataset ID does not exist, user will get a validation exception when saving the config with WhyLabs API",
               "maxLength": 100,
               "pattern": "[a-zA-Z0-9\\-_\\.]+",
               "type": "string"
            },
            "inheritSegment": {
               "title": "InheritSegment",
               "description": "Default to false. Whether to use the segment from the target to filter down the baseline",
               "type": "boolean"
            },
            "type": {
               "title": "Type",
               "enum": [
                  "TrailingWindow"
               ],
               "type": "string"
            },
            "size": {
               "title": "Size",
               "description": "Window size",
               "exclusiveMinimum": 3,
               "maximum": 90,
               "type": "integer"
            },
            "offset": {
               "title": "Offset",
               "description": "Offset from the current batch for the range of the trailing window. Default to 1 (the previous batch). This means that if set this to 0, the baseline will include the current batch's value, orif we set it o 7, then the window is off by 7.",
               "type": "integer"
            },
            "exclusionRanges": {
               "title": "ExclusionRanges",
               "description": "The list of exclusion ranges",
               "maxItems": 100,
               "type": "array",
               "items": {
                  "$ref": "#/definitions/TimeRange"
               }
            }
         },
         "required": [
            "type",
            "size"
         ],
         "additionalProperties": false
      },
      "ReferenceProfileId": {
         "title": "ReferenceProfileId",
         "description": "A baseline based on a static reference profile.\n\nA typical use case is to use a \"gold\" dataset and upload its profile to WhyLabs. This can be a training dataset\nas well for an ML model.",
         "type": "object",
         "properties": {
            "datasetId": {
               "title": "DatasetId",
               "description": "The unique ID of an dataset. This is specific to WhyLabs. If the dataset ID does not exist, user will get a validation exception when saving the config with WhyLabs API",
               "maxLength": 100,
               "pattern": "[a-zA-Z0-9\\-_\\.]+",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "enum": [
                  "Reference"
               ],
               "type": "string"
            },
            "profileId": {
               "title": "ProfileId",
               "description": "The unique profile ID for the reference profile",
               "maxLength": 100,
               "type": "string"
            }
         },
         "required": [
            "type",
            "profileId"
         ],
         "additionalProperties": false
      },
      "TimeRangeBaseline": {
         "title": "TimeRangeBaseline",
         "description": "A static time range.\n\nInstead of using a single profile or a trailing window, user can lock in a \"good\" period.",
         "type": "object",
         "properties": {
            "datasetId": {
               "title": "DatasetId",
               "description": "The unique ID of an dataset. This is specific to WhyLabs. If the dataset ID does not exist, user will get a validation exception when saving the config with WhyLabs API",
               "maxLength": 100,
               "pattern": "[a-zA-Z0-9\\-_\\.]+",
               "type": "string"
            },
            "inheritSegment": {
               "title": "InheritSegment",
               "description": "Default to false. Whether to use the segment from the target to filter down the baseline",
               "type": "boolean"
            },
            "type": {
               "title": "Type",
               "enum": [
                  "TimeRange"
               ],
               "type": "string"
            },
            "range": {
               "title": "Range",
               "description": "The range to set the time range with",
               "allOf": [
                  {
                     "$ref": "#/definitions/TimeRange"
                  }
               ]
            }
         },
         "required": [
            "type",
            "range"
         ],
         "additionalProperties": false
      },
      "SingleBatchBaseline": {
         "title": "SingleBatchBaseline",
         "description": "Using current batch.\n\nThis is used when you want to use one batch to monitor another batch in a different metric entity.",
         "type": "object",
         "properties": {
            "datasetId": {
               "title": "DatasetId",
               "description": "The unique ID of an dataset. This is specific to WhyLabs. If the dataset ID does not exist, user will get a validation exception when saving the config with WhyLabs API",
               "maxLength": 100,
               "pattern": "[a-zA-Z0-9\\-_\\.]+",
               "type": "string"
            },
            "inheritSegment": {
               "title": "InheritSegment",
               "description": "Default to false. Whether to use the segment from the target to filter down the baseline",
               "type": "boolean"
            },
            "type": {
               "title": "Type",
               "enum": [
                  "CurrentBatch"
               ],
               "type": "string"
            },
            "offset": {
               "title": "Offset",
               "description": "Offset from the current batch for the baseline. Default to 0 - (the current batch). This means that if this field set this to 0, the baseline be the current batch's value. The dataset fieldis required to be set for this baseline config.Typical use case is to use another entity to monitor against the current entity",
               "type": "integer"
            }
         },
         "required": [
            "datasetId",
            "type"
         ],
         "additionalProperties": false
      },
      "AlgorithmType": {
         "title": "AlgorithmType",
         "description": "Specify the algorithm type.",
         "enum": [
            "expected",
            "column_list",
            "comparison",
            "list_comparison",
            "diff",
            "drift",
            "stddev",
            "seasonal",
            "fixed",
            "experimental"
         ],
         "type": "string"
      }
   }
}

Config
  • schema_extra: function = <function AlgorithmConfig.Config.schema_extra at 0xffff857b2a60>

Fields
field baseline: Union[TrailingWindowBaseline, ReferenceProfileId, TimeRangeBaseline, SingleBatchBaseline] [Required]#
field implementation: str [Required]#

The implementation of an experimental config

Constraints
  • maxLength = 100

field stub: Optional[AlgorithmType] = None#

Stub field to flow algoirthm type into the schema. Do not use.

field type: experimental: 'experimental'>] [Required]#