LENGTH_OUT_OF_BOUNDS: dict(

num_percentiles=1000,min_unique_values=3,

condition_number_of_outliers_less_or_equal=dict(

max_outliers=3,

),

},

...

is equivalent to running the following Deepchecks tests:

import deepchecks.tabular.checks as tabular_checks

from deepchecks.tabular import Suite

from deepchecks.tabular import Dataset

train_dataset = Dataset(

reference_dataset,

label='class',

cat_features=['country', 'state']

suite = Suite(name="custom")

check = tabular_checks.OutlierSampleDetection(

nearest_neighbors_percent=0.01,

extent_parameter=3,

check.add_condition_outlier_ratio_less_or_equal(

max_outliers_ratio=0.007,

outlier_score_threshold=0.5,

check.add_condition_no_outliers(

outlier_score_threshold=0.6,

suite.add(check)

check = tabular_checks.StringLengthOutOfBounds(

num_percentiles=1000,

min_unique_values=3,

check.add_condition_number_of_outliers_less_or_equal(

max_outliers=3,

suite.run(train_dataset=train_dataset)

You can view the complete list of configuration parameters in the SDK docs.

The Deepchecks Data Validator

The Deepchecks Data Validator implements the same interface as do all Data Validators, so this method forces you to maintain some level of compatibility with the overall Data Validator abstraction, which guarantees an easier migration in case you decide to switch to another Data Validator.

All you have to do is call the Deepchecks Data Validator methods when you need to interact with Deepchecks to run tests, e.g.:

import pandas as pd

from deepchecks.core.suite import SuiteResult

from zenml.integrations.deepchecks.data_validators import DeepchecksDataValidator

from zenml.integrations.deepchecks.validation_checks import DeepchecksDataIntegrityCheck

from zenml import step

@step

def data_integrity_check(

dataset: pd.DataFrame,

) -> SuiteResult:

"""Custom data integrity check step with Deepchecks

Args:

dataset: input Pandas DataFrame

Returns:

Deepchecks test suite execution result

"""