%pip install -q validmindNote: you may need to restart the kernel to use updated packages.
This rendered site is an archived version of the changes last made by Beck, minus some proprietary content from private repos — Visit live site
Learn how to use ValidMind for your end-to-end documentation process based on common development scenarios with our series of four introductory notebooks. This first notebook walks you through the initial setup of the ValidMind Library.
These notebooks use a binary classification model as an example, but the same principles shown here apply to other record (model) types.
Development aims to produce a fit-for-purpose champion by conducting thorough testing and analysis, supporting the capabilities of the champion with evidence in the form of documentation and test results. Documentation should be clear and comprehensive, ideally following a structure or template covering all aspects of compliance with risk regulation.
A binary classification model is a type of predictive model used in churn analysis to identify customers who are likely to leave a service or subscription by analyzing various behavioral, transactional, and demographic factors.
ValidMind is a suite of tools for managing risk, including risk associated with AI and statistical models.
You use the ValidMind Library to automate documentation and validation tests, and then use the ValidMind Platform to collaborate on documentation. Together, these products simplify risk management, facilitate compliance with regulations and institutional standards, and enhance collaboration between yourself and validators.
This notebook assumes you have basic familiarity with Python, including an understanding of how functions work. If you are new to Python, you can still run the notebook but we recommend further familiarizing yourself with the language.
If you encounter errors due to missing modules in your Python environment, install the modules with pip install, and then re-run the notebook. For more help, refer to Installing Python Modules.
If you haven't already seen our documentation on the ValidMind Library, we recommend you begin by exploring the available resources in this section. There, you can learn more about documenting records such as models and running tests, as well as find code samples and our Python Library API reference.
record: A tool tracked in the ValidMind inventory, such as a model. Records include traditional statistical models, legacy systems, artificial intelligence/machine learning models, large language models (LLMs), agentic AI systems, and other documentable items that benefit from oversight, testing, and lifecycle management.
model: SR 26-2 (which supersedes SR 11-7) defines a model as a "complex quantitative method, system, or approach that applies statistical, economic, or financial theories to process input data into quantitative estimates." Simple arithmetic, deterministic rule-based processes, or software without statistical, economic, or financial theories underpinning their design or use are generally outside SR 26-2’s definition of a model. Within ValidMind, a model is a type of record tracked in the inventory.
documentation, model documentation: A structured and detailed document pertaining to a record, encompassing key components such as its underlying assumptions, methodologies, data sources, inputs, performance metrics, evaluations, limitations, and intended uses. Within the realm of risk management, this documentation serves to ensure transparency, adherence to regulatory requirements, and a clear understanding of potential risks associated with the record's application.
document template: Lays out the structure of documents, segmented into various sections and sub-sections, and functions as a test suite specifying the tests that should be run, and how the results should be displayed. Document templates help automate your development, validation, monitoring, and other risk management processes. Document templates are available for default ValidMind document types as well as custom document types.
documentation template: A default ValidMind document type that serves as a standardized framework for developing and documenting records, including sections designated for record details, data descriptions, test results, and performance metrics. By outlining required documentation and recommended analyses, document templates ensure consistency and completeness across documentation and help guide developers through a systematic development process while promoting comparability and traceability of development outcomes.
test: A function contained in the ValidMind Library, designed to run a specific quantitative test on the dataset or record. Test results are logged to the ValidMind Platform, where they are attached to documents. Tests are the building blocks of ValidMind, used to evaluate and document records and datasets, and can be run individually or as part of a suite defined by your templates.
test suite: A collection of tests designed to run together to automate and generate documentation end-to-end for specific use cases. (Learn more: test_suites)
metric: A subset of tests that do not have thresholds. In the context of this notebook, metrics and tests can be thought of as interchangeable concepts.
custom test: Functions that you define to evaluate your record or dataset. These functions can be registered with the ValidMind Library to be used in the ValidMind Platform.
inputs: Objects to be evaluated and documented in the ValidMind Library. They can be any of the following:
init_model(). Despite the naming convention, model objects can be any type of record you want to test, document, validate, or monitor with ValidMind.init_dataset().parameters: Additional arguments that can be passed when running a ValidMind test, used to pass additional information to a test, customize its behavior, or provide additional context.
outputs: Custom tests can return elements like tables or plots. Tables may be a list of dictionaries (each representing a row) or a pandas DataFrame. Plots may be matplotlib or plotly figures.
To install the library:
The ValidMind Library provides a rich collection of documentation tools and test suites, from documenting descriptions of datasets to validation and testing using a variety of open-source testing frameworks.
Let's first register a sample record (model) for use with this notebook:
In a browser, log in to ValidMind.
In the left sidebar, select Inventory.
Select Model by clicking on {Record} Inventory, where {Record} is the currently active type of record. (Learn more: Register records in the inventory)
Click + Register Model.
Enter the model details and click Next > to continue to assignment of inventory record stakeholders.
Select your own name under the Record Owner drop-down.
Click Register Model to add the model to your inventory.
Once you've registered your model, let's select a documentation template. A template predefines sections for your documentation and provides a general outline to follow, making the documentation process much easier.
In the left sidebar that appears for your model, click Documents and select Development.
If you cannot locate your Development document, make sure Development type documents are enabled for model records and create a new document. (Learn more: Manage documents)
Under Template, select Binary classification.
Click Use Template to apply the template.
Initialize the ValidMind Library with the code snippet unique to each record per document, ensuring your test results are uploaded to the correct record and automatically populated in the right document in the ValidMind Platform when you run the Library.
On the left sidebar that appears for your model, select Getting Started and select Development from the Document drop-down menu.
Click Copy snippet to clipboard.
Next, load your model identifier credentials from an .env file or replace the placeholder with your own code snippet:
2026-07-31 16:38:52,246 - INFO(validmind.api_client): 🎉 Connected to ValidMind!
📊 Model: [ValidMind Academy] Model development (ID: cmalgf3qi02ce199qm3rdkl46)
📁 Document Type: model_documentation
Let's verify that you have connected the ValidMind Library to the ValidMind Platform and that the appropriate template is selected for your model.
You will upload documentation and test results unique to your model based on this template later on. For now, take a look at the default structure that the template provides with the vm.preview_template() function from the ValidMind library and note the empty sections:
Empty Section
Empty Section
Empty Section
Empty Section
Provides comprehensive analysis and statistical summaries of each column in a machine learning model's dataset.
The test depicted in the script is meant to run a comprehensive analysis on a Machine Learning model's datasets. The test or metric is implemented to obtain a complete summary of the columns in the dataset, including vital statistics of each column such as count, distinct values, missing values, histograms for numerical, categorical, boolean, and text columns. This summary gives a comprehensive overview of the dataset to better understand the characteristics of the data that the model is trained on or evaluates.
The DatasetDescription class accomplishes the purpose as follows: firstly, the test method "run" infers the data type of each column in the dataset and stores the details (id, column type). For each column, the "describe_column" method is invoked to collect statistical information about the column, including count, missing value count and its proportion to the total, unique value count, and its proportion to the total. Depending on the data type of a column, histograms are generated that reflect the distribution of data within the column. Numerical columns use the "get_numerical_histograms" method to calculate histogram distribution, whereas for categorical, boolean and text columns, a histogram is computed with frequencies of each unique value in the datasets. For unsupported types, an error is raised. Lastly, a summary table is built to aggregate all the statistical insights and histograms of the columns in a dataset.
| Parameter | Default Value |
|---|
import validmind as vm
# inputs dictionary maps your inputs to the expected input names
# keys are the expected input names and values are the actual inputs
# values may be string input_ids or the actual VMDataset or VMModel objects
inputs = {
"dataset": "my_vm_dataset"
}
params = {}
# to run and view the result of this test, run the following code:
result = vm.tests.run_test(
"validmind.data_validation.DatasetDescription", inputs=inputs, params=params
)
# To see the result of the test, ensure that you have called `vm.init()` and then run:
result.log()
Evaluates and quantifies class distribution imbalance in a dataset used by a machine learning model.
The Class Imbalance test is designed to evaluate the distribution of target classes in a dataset that's utilized by a machine learning model. Specifically, it aims to ensure that the classes aren't overly skewed, which could lead to bias in the model's predictions. It's crucial to have a balanced training dataset to avoid creating a model that's biased with high accuracy for the majority class and low accuracy for the minority class.
This Class Imbalance test operates by calculating the frequency (expressed as a percentage) of each class in the target column of the dataset. It then checks whether each class appears in at least a set minimum percentage of the total records. This minimum percentage is a modifiable parameter, but the default value is set to 10%.
| Parameter | Default Value |
|---|---|
| min_percent_threshold | 10 |
import validmind as vm
# inputs dictionary maps your inputs to the expected input names
# keys are the expected input names and values are the actual inputs
# values may be string input_ids or the actual VMDataset or VMModel objects
inputs = {
"dataset": "my_vm_dataset"
}
params = {
"min_percent_threshold": "my_vm_min_percent_threshold"
}
# to run and view the result of this test, run the following code:
result = vm.tests.run_test(
"validmind.data_validation.ClassImbalance", inputs=inputs, params=params
)
# To see the result of the test, ensure that you have called `vm.init()` and then run:
result.log()
Tests dataset for duplicate entries, ensuring model reliability via data quality verification.
The 'Duplicates' test is designed to check for duplicate rows within the dataset provided to the model. It serves as a measure of data quality, ensuring that the model isn't merely memorizing duplicate entries or being swayed by redundant information. This is an important step in the pre-processing of data for both classification and regression tasks.
This test operates by checking each row for duplicates in the dataset. If a text column is specified in the dataset, the test is conducted on this column; if not, the test is run on all feature columns. The number and percentage of duplicates are calculated and returned in a DataFrame. Additionally, a test is passed if the total count of duplicates falls below a specified minimum threshold.
| Parameter | Default Value |
|---|---|
| min_threshold | 1 |
import validmind as vm
# inputs dictionary maps your inputs to the expected input names
# keys are the expected input names and values are the actual inputs
# values may be string input_ids or the actual VMDataset or VMModel objects
inputs = {
"dataset": "my_vm_dataset"
}
params = {
"min_threshold": "my_vm_min_threshold"
}
# to run and view the result of this test, run the following code:
result = vm.tests.run_test(
"validmind.data_validation.Duplicates", inputs=inputs, params=params
)
# To see the result of the test, ensure that you have called `vm.init()` and then run:
result.log()
Assesses the number of unique values in categorical columns to detect high cardinality and potential overfitting.
The “High Cardinality” test is used to evaluate the number of unique values present in the categorical columns of a dataset. In this context, high cardinality implies the presence of a large number of unique, non-repetitive values in the dataset.
The test first infers the dataset's type and then calculates an initial numeric threshold based on the test parameters. It only considers columns classified as "Categorical". For each of these columns, the number of distinct values (n_distinct) and the percentage of distinct values (p_distinct) are calculated. The test will pass if n_distinct is less than the calculated numeric threshold. Lastly, the results, which include details such as column name, number of distinct values, and pass/fail status, are compiled into a table.
| Parameter | Default Value |
|---|---|
| num_threshold | 100 |
| percent_threshold | 0.1 |
| threshold_type | 'percent' |
import validmind as vm
# inputs dictionary maps your inputs to the expected input names
# keys are the expected input names and values are the actual inputs
# values may be string input_ids or the actual VMDataset or VMModel objects
inputs = {
"dataset": "my_vm_dataset"
}
params = {
"num_threshold": "my_vm_num_threshold",
"percent_threshold": "my_vm_percent_threshold",
"threshold_type": "my_vm_threshold_type"
}
# to run and view the result of this test, run the following code:
result = vm.tests.run_test(
"validmind.data_validation.HighCardinality", inputs=inputs, params=params
)
# To see the result of the test, ensure that you have called `vm.init()` and then run:
result.log()
Evaluates dataset quality by ensuring missing value percentage across all features does not exceed a set threshold.
The Missing Values test is designed to evaluate the quality of a dataset by measuring the number of missing values across all features. The objective is to ensure that the ratio of missing data to total data is less than a predefined threshold (as a percentage), defaulting to 1.0, in order to maintain the data quality necessary for reliable predictive strength in a machine learning model.
The mechanism for this test involves iterating through each column of the dataset, counting missing values
(represented as NaNs), and calculating the percentage they represent against the total number of rows. The test
then checks if the missing value percentage is less than or equal to the predefined min_percentage_threshold. The results are
shown in a table summarizing each column, the number of missing values, the percentage of missing values in each
column, and a Pass/Fail status based on the threshold comparison.
min_percentage_threshold value.min_percentage_threshold, potentially
impacting the model.| Parameter | Default Value |
|---|---|
| min_percentage_threshold | 1.0 |
import validmind as vm
# inputs dictionary maps your inputs to the expected input names
# keys are the expected input names and values are the actual inputs
# values may be string input_ids or the actual VMDataset or VMModel objects
inputs = {
"dataset": "my_vm_dataset"
}
params = {
"min_percentage_threshold": "my_vm_min_percentage_threshold"
}
# to run and view the result of this test, run the following code:
result = vm.tests.run_test(
"validmind.data_validation.MissingValues", inputs=inputs, params=params
)
# To see the result of the test, ensure that you have called `vm.init()` and then run:
result.log()
Evaluates the skewness of numerical data in a dataset to check against a defined threshold, aiming to ensure data quality and optimize model performance.
The purpose of the Skewness test is to measure the asymmetry in the distribution of data within a predictive machine learning model. Specifically, it evaluates the divergence of said distribution from a normal distribution. Understanding the level of skewness helps identify data quality issues, which are crucial for optimizing the performance of traditional machine learning models in both classification and regression settings.
This test calculates the skewness of numerical columns in the dataset, focusing specifically on numerical data types. The calculated skewness value is then compared against a predetermined maximum threshold, which is set by default to 1. If the skewness value is less than this maximum threshold, the test passes; otherwise, it fails. The test results, along with the skewness values and column names, are then recorded for further analysis.
| Parameter | Default Value |
|---|---|
| max_threshold | 1 |
import validmind as vm
# inputs dictionary maps your inputs to the expected input names
# keys are the expected input names and values are the actual inputs
# values may be string input_ids or the actual VMDataset or VMModel objects
inputs = {
"dataset": "my_vm_dataset"
}
params = {
"max_threshold": "my_vm_max_threshold"
}
# to run and view the result of this test, run the following code:
result = vm.tests.run_test(
"validmind.data_validation.Skewness", inputs=inputs, params=params
)
# To see the result of the test, ensure that you have called `vm.init()` and then run:
result.log()
Verifies the diversity of the dataset by ensuring that the count of unique rows exceeds a prescribed threshold.
The UniqueRows test is designed to gauge the quality of the data supplied to the machine learning model by verifying that the count of distinct rows in the dataset exceeds a specific threshold, thereby ensuring a varied collection of data. Diversity in data is essential for training an unbiased and robust model that excels when faced with novel data.
The testing process starts with calculating the total number of rows in the dataset. Subsequently, the count of unique rows is determined for each column in the dataset. If the percentage of unique rows (calculated as the ratio of unique rows to the overall row count) is less than the prescribed minimum percentage threshold given as a function parameter, the test passes. The results are cached and a final pass or fail verdict is given based on whether all columns have successfully passed the test.
| Parameter | Default Value |
|---|---|
| min_percent_threshold | 1 |
import validmind as vm
# inputs dictionary maps your inputs to the expected input names
# keys are the expected input names and values are the actual inputs
# values may be string input_ids or the actual VMDataset or VMModel objects
inputs = {
"dataset": "my_vm_dataset"
}
params = {
"min_percent_threshold": "my_vm_min_percent_threshold"
}
# to run and view the result of this test, run the following code:
result = vm.tests.run_test(
"validmind.data_validation.UniqueRows", inputs=inputs, params=params
)
# To see the result of the test, ensure that you have called `vm.init()` and then run:
result.log()
Identifies numerical columns in a dataset that contain an excessive number of zero values, defined by a threshold percentage.
The 'TooManyZeroValues' test is utilized to identify numerical columns in the dataset that may present a quantity of zero values considered excessive. The aim is to detect situations where these may implicate data sparsity or a lack of variation, limiting their effectiveness within a machine learning model. The definition of 'too many' is quantified as a percentage of total values, with a default set to 0.03%.
This test is conducted by looping through each column in the dataset and categorizing those that pertain to numerical data. On identifying a numerical column, the function computes the total quantity of zero values and their ratio to the total row count. Should the proportion exceed a pre-set threshold parameter, set by default at 0.03%, the column is considered to have failed the test. The results for each column are summarized and reported, indicating the count and percentage of zero values for each numerical column, alongside a status indicating whether the column has passed or failed the test.
| Parameter | Default Value |
|---|---|
| max_percent_threshold | 0.03 |
import validmind as vm
# inputs dictionary maps your inputs to the expected input names
# keys are the expected input names and values are the actual inputs
# values may be string input_ids or the actual VMDataset or VMModel objects
inputs = {
"dataset": "my_vm_dataset"
}
params = {
"max_percent_threshold": "my_vm_max_percent_threshold"
}
# to run and view the result of this test, run the following code:
result = vm.tests.run_test(
"validmind.data_validation.TooManyZeroValues", inputs=inputs, params=params
)
# To see the result of the test, ensure that you have called `vm.init()` and then run:
result.log()
Determines and summarizes outliers in numerical features using the Interquartile Range method.
The "Interquartile Range Outliers Table" (IQROutliersTable) metric is designed to identify and summarize outliers within numerical features of a dataset using the Interquartile Range (IQR) method. This exercise is crucial in the pre-processing of data because outliers can substantially distort statistical analysis and impact the performance of machine learning models.
The IQR, which is the range separating the first quartile (25th percentile) from the third quartile (75th percentile), is calculated for each numerical feature within the dataset. An outlier is defined as a data point falling below the "Q1 - 1.5 * IQR" or above "Q3 + 1.5 * IQR" range. The test computes the number of outliers and their summary statistics (minimum, 25th percentile, median, 75th percentile, and maximum values) for each numerical feature. If no specific features are chosen, the test applies to all numerical features in the dataset. The default outlier threshold is set to 1.5 but can be customized by the user.
| Parameter | Default Value |
|---|---|
| threshold | 1.5 |
import validmind as vm
# inputs dictionary maps your inputs to the expected input names
# keys are the expected input names and values are the actual inputs
# values may be string input_ids or the actual VMDataset or VMModel objects
inputs = {
"dataset": "my_vm_dataset"
}
params = {
"threshold": "my_vm_threshold"
}
# to run and view the result of this test, run the following code:
result = vm.tests.run_test(
"validmind.data_validation.IQROutliersTable", inputs=inputs, params=params
)
# To see the result of the test, ensure that you have called `vm.init()` and then run:
result.log()
Visualizes outlier distribution across percentiles in numerical data using the Interquartile Range (IQR) method.
The InterQuartile Range Outliers Bar Plot (IQROutliersBarPlot) metric aims to visually analyze and evaluate the extent of outliers in numeric variables based on percentiles. Its primary purpose is to clarify the dataset's distribution, flag possible abnormalities in it, and gauge potential risks associated with processing potentially skewed data, which can affect the machine learning model's predictive prowess.
The examination invokes a series of steps:
threshold times
IQR and adding Q3 to threshold times IQR, respectively. The default threshold is set at 1.5.| Parameter | Default Value |
|---|---|
| threshold | 1.5 |
| fig_width | 800 |
import validmind as vm
# inputs dictionary maps your inputs to the expected input names
# keys are the expected input names and values are the actual inputs
# values may be string input_ids or the actual VMDataset or VMModel objects
inputs = {
"dataset": "my_vm_dataset"
}
params = {
"threshold": "my_vm_threshold",
"fig_width": "my_vm_fig_width"
}
# to run and view the result of this test, run the following code:
result = vm.tests.run_test(
"validmind.data_validation.IQROutliersBarPlot", inputs=inputs, params=params
)
# To see the result of the test, ensure that you have called `vm.init()` and then run:
result.log()
Performs a detailed descriptive statistical analysis of both numerical and categorical data within a model's dataset.
The purpose of the Descriptive Statistics metric is to provide a comprehensive summary of both numerical and categorical data within a dataset. This involves statistics such as count, mean, standard deviation, minimum and maximum values for numerical data. For categorical data, it calculates the count, number of unique values, most common value and its frequency, and the proportion of the most frequent value relative to the total. The goal is to visualize the overall distribution of the variables in the dataset, aiding in understanding the model's behavior and predicting its performance.
The testing mechanism utilizes two in-built functions of pandas dataframes: describe() for numerical fields and
value_counts() for categorical fields. The describe() function pulls out several summary statistics, while
value_counts() accounts for unique values. The resulting data is formatted into two distinct tables, one for
numerical and another for categorical variable summaries. These tables provide a clear summary of the main
characteristics of the variables, which can be instrumental in assessing the model's performance.
| Parameter | Default Value |
|---|
import validmind as vm
# inputs dictionary maps your inputs to the expected input names
# keys are the expected input names and values are the actual inputs
# values may be string input_ids or the actual VMDataset or VMModel objects
inputs = {
"dataset": "my_vm_dataset"
}
params = {}
# to run and view the result of this test, run the following code:
result = vm.tests.run_test(
"validmind.data_validation.DescriptiveStatistics", inputs=inputs, params=params
)
# To see the result of the test, ensure that you have called `vm.init()` and then run:
result.log()
Evaluates linear dependency between numerical variables in a dataset via a Pearson Correlation coefficient heat map.
This test is intended to evaluate the extent of linear dependency between all pairs of numerical variables in the given dataset. It provides the Pearson Correlation coefficient, which reveals any high correlations present. The purpose of doing this is to identify potential redundancy, as variables that are highly correlated can often be removed to reduce the dimensionality of the dataset without significantly impacting the model's performance.
This metric test generates a correlation matrix for all numerical variables in the dataset using the Pearson correlation formula. A heat map is subsequently created to visualize this matrix effectively. The color of each point on the heat map corresponds to the magnitude and direction (positive or negative) of the correlation, with a range from -1 (perfect negative correlation) to 1 (perfect positive correlation). Any correlation coefficients higher than 0.7 (in absolute terms) are indicated in white in the heat map, suggesting a high degree of correlation.
| Parameter | Default Value |
|---|
import validmind as vm
# inputs dictionary maps your inputs to the expected input names
# keys are the expected input names and values are the actual inputs
# values may be string input_ids or the actual VMDataset or VMModel objects
inputs = {
"dataset": "my_vm_dataset"
}
params = {}
# to run and view the result of this test, run the following code:
result = vm.tests.run_test(
"validmind.data_validation.PearsonCorrelationMatrix", inputs=inputs, params=params
)
# To see the result of the test, ensure that you have called `vm.init()` and then run:
result.log()
Identifies highly correlated feature pairs in a dataset suggesting feature redundancy or multicollinearity.
The High Pearson Correlation test measures the linear relationship between features in a dataset, with the main goal of identifying high correlations that might indicate feature redundancy or multicollinearity. Identification of such issues allows developers and risk management teams to properly deal with potential impacts on the machine learning model's performance and interpretability.
The test works by generating pairwise Pearson correlations for all features in the dataset, then sorting and
eliminating duplicate and self-correlations. It assigns a Pass or Fail based on whether the absolute value of the
correlation coefficient surpasses a pre-set threshold (defaulted at 0.3). It lastly returns the top n strongest
correlations regardless of passing or failing status (where n is 10 by default but can be configured by passing the
top_n_correlations parameter).
| Parameter | Default Value |
|---|---|
| max_threshold | 0.3 |
| top_n_correlations | 10 |
| feature_columns | None |
import validmind as vm
# inputs dictionary maps your inputs to the expected input names
# keys are the expected input names and values are the actual inputs
# values may be string input_ids or the actual VMDataset or VMModel objects
inputs = {
"dataset": "my_vm_dataset"
}
params = {
"max_threshold": "my_vm_max_threshold",
"top_n_correlations": "my_vm_top_n_correlations",
"feature_columns": "my_vm_feature_columns"
}
# to run and view the result of this test, run the following code:
result = vm.tests.run_test(
"validmind.data_validation.HighPearsonCorrelation", inputs=inputs, params=params
)
# To see the result of the test, ensure that you have called `vm.init()` and then run:
result.log()
Compare metadata of different models and generate a summary table with the results.
Purpose: The purpose of this function is to compare the metadata of different models, including information about their architecture, framework, framework version, and programming language.
Test Mechanism: The function retrieves the metadata for each model using get_model_info, renames columns according to a predefined set of labels, and compiles this information into a summary table.
Signs of High Risk:
Strengths:
Limitations:
get_model_info function returns all necessary metadata fields.| Parameter | Default Value |
|---|
import validmind as vm
# inputs dictionary maps your inputs to the expected input names
# keys are the expected input names and values are the actual inputs
# values may be string input_ids or the actual VMDataset or VMModel objects
inputs = {
"model": "my_vm_model"
}
params = {}
# to run and view the result of this test, run the following code:
result = vm.tests.run_test(
"validmind.model_validation.ModelMetadata", inputs=inputs, params=params
)
# To see the result of the test, ensure that you have called `vm.init()` and then run:
result.log()
Evaluates and visualizes the distribution proportions among training, testing, and validation datasets of an ML model.
The DatasetSplit test is designed to evaluate and visualize the distribution of data among training, testing, and validation datasets, if available, within a given machine learning model. The main purpose is to assess whether the model's datasets are split appropriately, as an imbalanced split might affect the model's ability to learn from the data and generalize to unseen data.
The DatasetSplit test first calculates the total size of all available datasets in the model. Then, for each individual dataset, the methodology involves determining the size of the dataset and its proportion relative to the total size. The results are then conveniently summarized in a table that shows dataset names, sizes, and proportions. Absolute size and proportion of the total dataset size are displayed for each individual dataset.
| Parameter | Default Value |
|---|
import validmind as vm
# inputs dictionary maps your inputs to the expected input names
# keys are the expected input names and values are the actual inputs
# values may be string input_ids or the actual VMDataset or VMModel objects
inputs = {
"datasets": "my_vm_datasets"
}
params = {}
# to run and view the result of this test, run the following code:
result = vm.tests.run_test(
"validmind.data_validation.DatasetSplit", inputs=inputs, params=params
)
# To see the result of the test, ensure that you have called `vm.init()` and then run:
result.log()
Assesses the Population Stability Index (PSI) to quantify the stability of an ML model's predictions across different datasets.
The Population Stability Index (PSI) serves as a quantitative assessment for evaluating the stability of a machine learning model's output distributions when comparing two different datasets. Typically, these would be a development and a validation dataset or two datasets collected at different periods. The PSI provides a measurable indication of any significant shift in the model's performance over time or noticeable changes in the characteristics of the population the model is making predictions for.
The implementation of the PSI in this script involves calculating the PSI for each feature between the training and test datasets. Data from both datasets is sorted and placed into either a predetermined number of bins or quantiles. The boundaries for these bins are initially determined based on the distribution of the training data. The contents of each bin are calculated and their respective proportions determined. Subsequently, the PSI is derived for each bin through a logarithmic transformation of the ratio of the proportions of data for each feature in the training and test datasets. The PSI, along with the proportions of data in each bin for both datasets, are displayed in a summary table, a grouped bar chart, and a scatter plot.
predict_proba. Models that cannot produce a full per-class probability matrix
(e.g. metadata-only models, or predictions supplied as a single precomputed probability column) are skipped for
the multiclass case.| Parameter | Default Value |
|---|---|
| num_bins | 10 |
| mode | 'fixed' |
import validmind as vm
# inputs dictionary maps your inputs to the expected input names
# keys are the expected input names and values are the actual inputs
# values may be string input_ids or the actual VMDataset or VMModel objects
inputs = {
"datasets": "my_vm_datasets",
"model": "my_vm_model"
}
params = {
"num_bins": "my_vm_num_bins",
"mode": "my_vm_mode"
}
# to run and view the result of this test, run the following code:
result = vm.tests.run_test(
"validmind.model_validation.sklearn.PopulationStabilityIndex", inputs=inputs, params=params
)
# To see the result of the test, ensure that you have called `vm.init()` and then run:
result.log()
Evaluates and visually represents the classification ML model's predictive performance using a Confusion Matrix heatmap.
The Confusion Matrix tester is designed to assess the performance of a classification Machine Learning model. This performance is evaluated based on how well the model is able to correctly classify True Positives, True Negatives, False Positives, and False Negatives - fundamental aspects of model accuracy.
The mechanism used involves taking the predicted results (y_test_predict) from the classification model and
comparing them against the actual values (y_test_true). A confusion matrix is built using the unique labels
extracted from y_test_true, employing scikit-learn's metrics. The matrix is then visually rendered with the help
of Plotly's create_annotated_heatmap function. A heatmap is created which provides a two-dimensional graphical
representation of the model's performance, showcasing distributions of True Positives (TP), True Negatives (TN),
False Positives (FP), and False Negatives (FN).
threshold parameter only applies to binary classification (it splits a single positive-class probability
into two classes). For multiclass targets the model's argmax class predictions are used and threshold is ignored.| Parameter | Default Value |
|---|---|
| threshold | 0.5 |
import validmind as vm
# inputs dictionary maps your inputs to the expected input names
# keys are the expected input names and values are the actual inputs
# values may be string input_ids or the actual VMDataset or VMModel objects
inputs = {
"dataset": "my_vm_dataset",
"model": "my_vm_model"
}
params = {
"threshold": "my_vm_threshold"
}
# to run and view the result of this test, run the following code:
result = vm.tests.run_test(
"validmind.model_validation.sklearn.ConfusionMatrix", inputs=inputs, params=params
)
# To see the result of the test, ensure that you have called `vm.init()` and then run:
result.log()
Evaluates performance of binary or multiclass classification models using precision, recall, F1-Score, accuracy, and ROC AUC scores.
The Classifier Performance test is designed to evaluate the performance of Machine Learning classification models. It accomplishes this by computing precision, recall, F1-Score, and accuracy, as well as the ROC AUC (Receiver operating characteristic - Area under the curve) scores, thereby providing a comprehensive analytic view of the models' performance. The test is adaptable, handling binary and multiclass models equally effectively.
The test produces a report that includes precision, recall, F1-Score, and accuracy, by leveraging the
classification_report from scikit-learn's metrics module. For multiclass models, macro and weighted averages for
these scores are also calculated. Additionally, the ROC AUC scores are calculated and included in the report using
the multiclass_roc_auc_score function. The outcome of the test (report format) differs based on whether the model
is binary or multiclass.
| Parameter | Default Value |
|---|---|
| average | 'macro' |
import validmind as vm
# inputs dictionary maps your inputs to the expected input names
# keys are the expected input names and values are the actual inputs
# values may be string input_ids or the actual VMDataset or VMModel objects
inputs = {
"dataset": "my_vm_dataset",
"model": "my_vm_model"
}
params = {
"average": "my_vm_average"
}
# to run and view the result of this test, run the following code:
result = vm.tests.run_test(
"validmind.model_validation.sklearn.ClassifierPerformance:in_sample", inputs=inputs, params=params
)
# To see the result of the test, ensure that you have called `vm.init()` and then run:
result.log()
Evaluates performance of binary or multiclass classification models using precision, recall, F1-Score, accuracy, and ROC AUC scores.
The Classifier Performance test is designed to evaluate the performance of Machine Learning classification models. It accomplishes this by computing precision, recall, F1-Score, and accuracy, as well as the ROC AUC (Receiver operating characteristic - Area under the curve) scores, thereby providing a comprehensive analytic view of the models' performance. The test is adaptable, handling binary and multiclass models equally effectively.
The test produces a report that includes precision, recall, F1-Score, and accuracy, by leveraging the
classification_report from scikit-learn's metrics module. For multiclass models, macro and weighted averages for
these scores are also calculated. Additionally, the ROC AUC scores are calculated and included in the report using
the multiclass_roc_auc_score function. The outcome of the test (report format) differs based on whether the model
is binary or multiclass.
| Parameter | Default Value |
|---|---|
| average | 'macro' |
import validmind as vm
# inputs dictionary maps your inputs to the expected input names
# keys are the expected input names and values are the actual inputs
# values may be string input_ids or the actual VMDataset or VMModel objects
inputs = {
"dataset": "my_vm_dataset",
"model": "my_vm_model"
}
params = {
"average": "my_vm_average"
}
# to run and view the result of this test, run the following code:
result = vm.tests.run_test(
"validmind.model_validation.sklearn.ClassifierPerformance:out_of_sample", inputs=inputs, params=params
)
# To see the result of the test, ensure that you have called `vm.init()` and then run:
result.log()
Evaluates the precision-recall trade-off for binary classification models and visualizes the Precision-Recall curve.
The Precision Recall Curve metric is intended to evaluate the trade-off between precision and recall in classification models, particularly binary classification models. It assesses the model's capacity to produce accurate results (high precision), as well as its ability to capture a majority of all positive instances (high recall).
The test extracts ground truth labels and prediction probabilities from the model's test dataset. It applies the
precision_recall_curve method from the sklearn metrics module to these extracted labels and predictions, which
computes a precision-recall pair for each possible threshold. This calculation results in an array of precision and
recall scores that can be plotted against each other to form the Precision-Recall Curve. This curve is then
visually represented by using Plotly's scatter plot.
predict_proba. Models that cannot produce a full per-class
probability matrix (e.g. Foundation/metadata-only models, or predictions supplied as a single precomputed
probability column) are skipped for the multiclass case.| Parameter | Default Value |
|---|
import validmind as vm
# inputs dictionary maps your inputs to the expected input names
# keys are the expected input names and values are the actual inputs
# values may be string input_ids or the actual VMDataset or VMModel objects
inputs = {
"model": "my_vm_model",
"dataset": "my_vm_dataset"
}
params = {}
# to run and view the result of this test, run the following code:
result = vm.tests.run_test(
"validmind.model_validation.sklearn.PrecisionRecallCurve", inputs=inputs, params=params
)
# To see the result of the test, ensure that you have called `vm.init()` and then run:
result.log()
Evaluates classification model performance by generating and plotting the Receiver Operating Characteristic (ROC) curve and calculating the Area Under Curve (AUC) score, for both binary and multiclass models.
The Receiver Operating Characteristic (ROC) curve evaluates the performance of classification models. This curve illustrates the balance between the True Positive Rate (TPR) and False Positive Rate (FPR) across various threshold levels. In combination with the Area Under the Curve (AUC), the ROC curve measures the model's discrimination ability between classes. For binary problems (e.g., default vs non-default) a single curve is drawn for the positive class. For multiclass problems the curve is computed one-vs-rest — one curve and AUC per class, plus a micro-average across all classes — so the model's discrimination ability can be assessed for every class. Ideally, a higher AUC score signifies superior model performance in accurately distinguishing between classes.
This test selects the target model and dataset and determines the number of classes from the true labels. For binary targets it computes the predicted probabilities for the positive class and, together with the true outcomes, generates and plots a single ROC curve. For multiclass targets it obtains the full per-class probability matrix from the model and plots a one-vs-rest curve for each class along with a micro-average curve. In both cases a line signifying randomness (AUC of 0.5) is included, and the AUC score(s) are computed as a numerical estimation of performance. If any Infinite values are detected in the ROC threshold, these are effectively eliminated. The resulting ROC curves, AUC scores, and thresholds are consequently saved for future reference.
predict_proba. Models that cannot produce a full per-class
probability matrix (e.g. metadata-only models, or predictions supplied as a single precomputed probability column)
are skipped for the multiclass case.| Parameter | Default Value |
|---|
import validmind as vm
# inputs dictionary maps your inputs to the expected input names
# keys are the expected input names and values are the actual inputs
# values may be string input_ids or the actual VMDataset or VMModel objects
inputs = {
"model": "my_vm_model",
"dataset": "my_vm_dataset"
}
params = {}
# to run and view the result of this test, run the following code:
result = vm.tests.run_test(
"validmind.model_validation.sklearn.ROCCurve", inputs=inputs, params=params
)
# To see the result of the test, ensure that you have called `vm.init()` and then run:
result.log()
Tests if model performance degradation between training and test datasets exceeds a predefined threshold.
The TrainingTestDegradation class serves as a test to verify that the degradation in performance between the
training and test datasets does not exceed a predefined threshold. This test measures the model's ability to
generalize from its training data to unseen test data, assessing key classification metrics such as precision,
recall, and f1 score to verify the model's robustness and reliability.
The code applies several predefined metrics, including precision, recall, and f1 scores, to the model's predictions for both the training and test datasets. It calculates the degradation as the difference between the training score and test score divided by the training score. The test is considered successful if the degradation for each metric is less than the preset maximum threshold (default: 0.10). The results are summarized in a table showing each metric's train score, test score, degradation percentage, and pass/fail status.
| Parameter | Default Value |
|---|---|
| max_threshold | 0.1 |
import validmind as vm
# inputs dictionary maps your inputs to the expected input names
# keys are the expected input names and values are the actual inputs
# values may be string input_ids or the actual VMDataset or VMModel objects
inputs = {
"datasets": "my_vm_datasets",
"model": "my_vm_model"
}
params = {
"max_threshold": "my_vm_max_threshold"
}
# to run and view the result of this test, run the following code:
result = vm.tests.run_test(
"validmind.model_validation.sklearn.TrainingTestDegradation", inputs=inputs, params=params
)
# To see the result of the test, ensure that you have called `vm.init()` and then run:
result.log()
Checks if the model's prediction accuracy meets or surpasses a specified threshold.
The Minimum Accuracy test’s objective is to verify whether the model's prediction accuracy on a specific dataset meets or surpasses a predetermined minimum threshold. Accuracy, which is simply the ratio of correct predictions to total predictions, is a key metric for evaluating the model's performance. Considering binary as well as multiclass classifications, accurate labeling becomes indispensable.
The test mechanism involves contrasting the model's accuracy score with a preset minimum threshold value, with the
default being 0.7. The accuracy score is computed utilizing sklearn’s accuracy_score method, where the true
labels y_true and predicted labels class_pred are compared. If the accuracy score is above the threshold, the
test receives a passing mark. The test returns the result along with the accuracy score and threshold used for the
test.
| Parameter | Default Value |
|---|---|
| min_threshold | 0.7 |
import validmind as vm
# inputs dictionary maps your inputs to the expected input names
# keys are the expected input names and values are the actual inputs
# values may be string input_ids or the actual VMDataset or VMModel objects
inputs = {
"dataset": "my_vm_dataset",
"model": "my_vm_model"
}
params = {
"min_threshold": "my_vm_min_threshold"
}
# to run and view the result of this test, run the following code:
result = vm.tests.run_test(
"validmind.model_validation.sklearn.MinimumAccuracy", inputs=inputs, params=params
)
# To see the result of the test, ensure that you have called `vm.init()` and then run:
result.log()
Assesses if the model's F1 score on the validation set meets a predefined minimum threshold, ensuring balanced performance between precision and recall.
The main objective of this test is to ensure that the F1 score, a balanced measure of precision and recall, of the model meets or surpasses a predefined threshold on the validation dataset. The F1 score is highly useful for gauging model performance in classification tasks, especially in cases where the distribution of positive and negative classes is skewed.
The F1 score for the validation dataset is computed through scikit-learn's metrics in Python. The scoring mechanism
differs based on the classification problem: for multi-class problems, macro averaging is used, and for binary
classification, the built-in f1_score calculation is used. The obtained F1 score is then assessed against the
predefined minimum F1 score that is expected from the model.
| Parameter | Default Value |
|---|---|
| min_threshold | 0.5 |
import validmind as vm
# inputs dictionary maps your inputs to the expected input names
# keys are the expected input names and values are the actual inputs
# values may be string input_ids or the actual VMDataset or VMModel objects
inputs = {
"dataset": "my_vm_dataset",
"model": "my_vm_model"
}
params = {
"min_threshold": "my_vm_min_threshold"
}
# to run and view the result of this test, run the following code:
result = vm.tests.run_test(
"validmind.model_validation.sklearn.MinimumF1Score", inputs=inputs, params=params
)
# To see the result of the test, ensure that you have called `vm.init()` and then run:
result.log()
Validates model by checking if the ROC AUC score meets or surpasses a specified threshold.
The Minimum ROC AUC Score test is used to determine the model's performance by ensuring that the Receiver Operating Characteristic Area Under the Curve (ROC AUC) score on the validation dataset meets or exceeds a predefined threshold. The ROC AUC score indicates how well the model can distinguish between different classes, making it a crucial measure in binary and multiclass classification tasks.
This test implementation calculates the multiclass ROC AUC score on the true target values and the model's
predictions. The test converts the multi-class target variables into binary format using LabelBinarizer before
computing the score. If this ROC AUC score is higher than the predefined threshold (defaulted to 0.5), the test
passes; otherwise, it fails. The results, including the ROC AUC score, the threshold, and whether the test passed
or failed, are then stored in a ThresholdTestResult object.
| Parameter | Default Value |
|---|---|
| min_threshold | 0.5 |
import validmind as vm
# inputs dictionary maps your inputs to the expected input names
# keys are the expected input names and values are the actual inputs
# values may be string input_ids or the actual VMDataset or VMModel objects
inputs = {
"dataset": "my_vm_dataset",
"model": "my_vm_model"
}
params = {
"min_threshold": "my_vm_min_threshold"
}
# to run and view the result of this test, run the following code:
result = vm.tests.run_test(
"validmind.model_validation.sklearn.MinimumROCAUCScore", inputs=inputs, params=params
)
# To see the result of the test, ensure that you have called `vm.init()` and then run:
result.log()
Assesses the significance of each feature in a model by evaluating the impact on model performance when feature values are randomly rearranged.
The Permutation Feature Importance (PFI) metric aims to assess the importance of each feature used by the Machine Learning model. The significance is measured by evaluating the decrease in the model's performance when the feature's values are randomly arranged.
PFI is calculated via the permutation_importance method from the sklearn.inspection module. This method
shuffles the columns of the feature dataset and measures the impact on the model's performance. A significant
decrease in performance after permutating a feature's values deems the feature as important. On the other hand, if
performance remains the same, the feature is likely not important. The output of the PFI metric is a figure
illustrating the importance of each feature.
| Parameter | Default Value |
|---|---|
| fontsize | None |
| figure_height | None |
import validmind as vm
# inputs dictionary maps your inputs to the expected input names
# keys are the expected input names and values are the actual inputs
# values may be string input_ids or the actual VMDataset or VMModel objects
inputs = {
"model": "my_vm_model",
"dataset": "my_vm_dataset"
}
params = {
"fontsize": "my_vm_fontsize",
"figure_height": "my_vm_figure_height"
}
# to run and view the result of this test, run the following code:
result = vm.tests.run_test(
"validmind.model_validation.sklearn.PermutationFeatureImportance", inputs=inputs, params=params
)
# To see the result of the test, ensure that you have called `vm.init()` and then run:
result.log()
Evaluates and visualizes global feature importance using SHAP values for model explanation and risk identification.
The SHAP (SHapley Additive exPlanations) Global Importance metric aims to elucidate model outcomes by attributing them to the contributing features. It assigns a quantifiable global importance to each feature via their respective absolute Shapley values, thereby making it suitable for tasks like classification (both binary and multiclass). This metric forms an essential part of model risk management.
The exam begins with the selection of a suitable explainer which aligns with the model's type. For tree-based models like XGBClassifier, RandomForestClassifier, CatBoostClassifier, TreeExplainer is used whereas for linear models like LogisticRegression, XGBRegressor, LinearRegression, it is the LinearExplainer. Once the explainer calculates the Shapley values, these values are visualized using two specific graphical representations:
Mean Importance Plot: This graph portrays the significance of individual features based on their absolute Shapley values. It calculates the average of these absolute Shapley values across all instances to highlight the global importance of features.
Summary Plot: This visual tool combines the feature importance with their effects. Every dot on this chart represents a Shapley value for a certain feature in a specific case. The vertical axis is denoted by the feature whereas the horizontal one corresponds to the Shapley value. A color gradient indicates the value of the feature, gradually changing from low to high. Features are systematically organized in accordance with their importance.
| Parameter | Default Value |
|---|---|
| kernel_explainer_samples | 10 |
| tree_or_linear_explainer_samples | 200 |
| class_of_interest | None |
import validmind as vm
# inputs dictionary maps your inputs to the expected input names
# keys are the expected input names and values are the actual inputs
# values may be string input_ids or the actual VMDataset or VMModel objects
inputs = {
"model": "my_vm_model",
"dataset": "my_vm_dataset"
}
params = {
"kernel_explainer_samples": "my_vm_kernel_explainer_samples",
"tree_or_linear_explainer_samples": "my_vm_tree_or_linear_explainer_samples",
"class_of_interest": "my_vm_class_of_interest"
}
# to run and view the result of this test, run the following code:
result = vm.tests.run_test(
"validmind.model_validation.sklearn.SHAPGlobalImportance", inputs=inputs, params=params
)
# To see the result of the test, ensure that you have called `vm.init()` and then run:
result.log()
Identifies and visualizes weak spots in a machine learning model's performance across various sections of the feature space.
The weak spots test is applied to evaluate the performance of a machine learning model within specific regions of its feature space. This test slices the feature space into various sections, evaluating the model's outputs within each section against specific performance metrics (e.g., accuracy, precision, recall, and F1 scores). The ultimate aim is to identify areas where the model's performance falls below the set thresholds, thereby exposing its possible weaknesses and limitations.
The test mechanism adopts an approach of dividing the feature space of the training dataset into numerous bins. The model's performance metrics (accuracy, precision, recall, F1 scores) are then computed for each bin on both the training and test datasets. A "weak spot" is identified if any of the performance metrics fall below a predetermined threshold for a particular bin on the test dataset. The test results are visually plotted as bar charts for each performance metric, indicating the bins which fail to meet the established threshold.
| Parameter | Default Value |
|---|---|
| features_columns | None |
| metrics | None |
| thresholds | None |
import validmind as vm
# inputs dictionary maps your inputs to the expected input names
# keys are the expected input names and values are the actual inputs
# values may be string input_ids or the actual VMDataset or VMModel objects
inputs = {
"datasets": "my_vm_datasets",
"model": "my_vm_model"
}
params = {
"features_columns": "my_vm_features_columns",
"metrics": "my_vm_metrics",
"thresholds": "my_vm_thresholds"
}
# to run and view the result of this test, run the following code:
result = vm.tests.run_test(
"validmind.model_validation.sklearn.WeakspotsDiagnosis", inputs=inputs, params=params
)
# To see the result of the test, ensure that you have called `vm.init()` and then run:
result.log()
Assesses potential overfitting in a model's predictions, identifying regions where performance between training and testing sets deviates significantly.
The Overfit Diagnosis test aims to identify areas in a model's predictions where there is a significant difference in performance between the training and testing sets. This test helps to pinpoint specific regions or feature segments where the model may be overfitting.
This test compares the model's performance on training versus test data, grouped by feature columns. It calculates the difference between the training and test performance for each group and identifies regions where this difference exceeds a specified threshold:
| Parameter | Default Value |
|---|---|
| metric | None |
| cut_off_threshold | 0.04 |
import validmind as vm
# inputs dictionary maps your inputs to the expected input names
# keys are the expected input names and values are the actual inputs
# values may be string input_ids or the actual VMDataset or VMModel objects
inputs = {
"model": "my_vm_model",
"datasets": "my_vm_datasets"
}
params = {
"metric": "my_vm_metric",
"cut_off_threshold": "my_vm_cut_off_threshold"
}
# to run and view the result of this test, run the following code:
result = vm.tests.run_test(
"validmind.model_validation.sklearn.OverfitDiagnosis", inputs=inputs, params=params
)
# To see the result of the test, ensure that you have called `vm.init()` and then run:
result.log()
Assesses the robustness of a machine learning model by evaluating performance decay under noisy conditions.
The Robustness Diagnosis test aims to evaluate the resilience of a machine learning model when subjected to perturbations or noise in its input data. This is essential for understanding the model's ability to handle real-world scenarios where data may be imperfect or corrupted.
This test introduces Gaussian noise to the numeric input features of the datasets at varying scales of standard deviation. The performance of the model is then measured using a specified metric. The process includes:
| Parameter | Default Value |
|---|---|
| metric | None |
| scaling_factor_std_dev_list | [0.1, 0.2, 0.3, 0.4, 0.5] |
| performance_decay_threshold | 0.05 |
import validmind as vm
# inputs dictionary maps your inputs to the expected input names
# keys are the expected input names and values are the actual inputs
# values may be string input_ids or the actual VMDataset or VMModel objects
inputs = {
"datasets": "my_vm_datasets",
"model": "my_vm_model"
}
params = {
"metric": "my_vm_metric",
"scaling_factor_std_dev_list": "my_vm_scaling_factor_std_dev_list",
"performance_decay_threshold": "my_vm_performance_decay_threshold"
}
# to run and view the result of this test, run the following code:
result = vm.tests.run_test(
"validmind.model_validation.sklearn.RobustnessDiagnosis", inputs=inputs, params=params
)
# To see the result of the test, ensure that you have called `vm.init()` and then run:
result.log()
Next, let's head to the ValidMind Platform to see the template in action:
In a browser, log in to ValidMind.
In the left sidebar, navigate to Inventory and select the model you registered for this "ValidMind for development" series of notebooks.
Click Development under Documents for your model and note how the structure of the documentation matches our preview above.
Next, let's explore the list of all available tests in the ValidMind Library with the vm.tests.list_tests() function — we'll learn how to run tests shortly.
You can see that the documentation template for this model has references to some of the test IDs used to run tests listed below:
| ID | Name | Description | Has Figure | Has Table | Required Inputs | Params | Tags | Tasks |
|---|---|---|---|---|---|---|---|---|
| validmind.data_validation.ACFandPACFPlot | AC Fand PACF Plot | Analyzes time series data using Autocorrelation Function (ACF) and Partial Autocorrelation Function (PACF) plots to... | True | False | ['dataset'] | {} | ['time_series_data', 'forecasting', 'statistical_test', 'visualization'] | ['regression'] |
| validmind.data_validation.ADF | ADF | Assesses the stationarity of a time series dataset using the Augmented Dickey-Fuller (ADF) test.... | False | True | ['dataset'] | {} | ['time_series_data', 'statsmodels', 'forecasting', 'statistical_test', 'stationarity'] | ['regression'] |
| validmind.data_validation.AutoAR | Auto AR | Automatically identifies the optimal Autoregressive (AR) order for a time series using BIC and AIC criteria.... | False | True | ['dataset'] | {'max_ar_order': {'type': 'int', 'default': 3}} | ['time_series_data', 'statsmodels', 'forecasting', 'statistical_test'] | ['regression'] |
| validmind.data_validation.AutoMA | Auto MA | Automatically selects the optimal Moving Average (MA) order for each variable in a time series dataset based on... | False | True | ['dataset'] | {'max_ma_order': {'type': 'int', 'default': 3}} | ['time_series_data', 'statsmodels', 'forecasting', 'statistical_test'] | ['regression'] |
| validmind.data_validation.AutoStationarity | Auto Stationarity | Automates Augmented Dickey-Fuller test to assess stationarity across multiple time series in a DataFrame.... | False | True | ['dataset'] | {'max_order': {'type': 'int', 'default': 5}, 'threshold': {'type': 'float', 'default': 0.05}} | ['time_series_data', 'statsmodels', 'forecasting', 'statistical_test'] | ['regression'] |
| validmind.data_validation.BivariateScatterPlots | Bivariate Scatter Plots | Generates bivariate scatterplots to visually inspect relationships between pairs of numerical predictor variables... | True | False | ['dataset'] | {} | ['tabular_data', 'numerical_data', 'visualization'] | ['classification'] |
| validmind.data_validation.BoxPierce | Box Pierce | Detects autocorrelation in time-series data through the Box-Pierce test to validate model performance.... | False | True | ['dataset'] | {} | ['time_series_data', 'forecasting', 'statistical_test', 'statsmodels'] | ['regression'] |
| validmind.data_validation.ChiSquaredFeaturesTable | Chi Squared Features Table | Assesses the statistical association between categorical features and a target variable using the Chi-Squared test.... | False | True | ['dataset'] | {'p_threshold': {'type': '_empty', 'default': 0.05}} | ['tabular_data', 'categorical_data', 'statistical_test'] | ['classification'] |
| validmind.data_validation.ClassImbalance | Class Imbalance | Evaluates and quantifies class distribution imbalance in a dataset used by a machine learning model.... | True | True | ['dataset'] | {'min_percent_threshold': {'type': 'int', 'default': 10}} | ['tabular_data', 'binary_classification', 'multiclass_classification', 'data_quality'] | ['classification'] |
| validmind.data_validation.DatasetDescription | Dataset Description | Provides comprehensive analysis and statistical summaries of each column in a machine learning model's dataset.... | False | True | ['dataset'] | {} | ['tabular_data', 'time_series_data', 'text_data'] | ['classification', 'regression', 'text_classification', 'text_summarization'] |
| validmind.data_validation.DatasetSplit | Dataset Split | Evaluates and visualizes the distribution proportions among training, testing, and validation datasets of an ML... | False | True | ['datasets'] | {} | ['tabular_data', 'time_series_data', 'text_data'] | ['classification', 'regression', 'text_classification', 'text_summarization'] |
| validmind.data_validation.DescriptiveStatistics | Descriptive Statistics | Performs a detailed descriptive statistical analysis of both numerical and categorical data within a model's... | False | True | ['dataset'] | {} | ['tabular_data', 'time_series_data', 'data_quality'] | ['classification', 'regression'] |
| validmind.data_validation.DickeyFullerGLS | Dickey Fuller GLS | Assesses stationarity in time series data using the Dickey-Fuller GLS test to determine the order of integration.... | False | True | ['dataset'] | {} | ['time_series_data', 'forecasting', 'unit_root_test'] | ['regression'] |
| validmind.data_validation.Duplicates | Duplicates | Tests dataset for duplicate entries, ensuring model reliability via data quality verification.... | False | True | ['dataset'] | {'min_threshold': {'type': '_empty', 'default': 1}} | ['tabular_data', 'data_quality', 'text_data'] | ['classification', 'regression'] |
| validmind.data_validation.EngleGrangerCoint | Engle Granger Coint | Assesses the degree of co-movement between pairs of time series data using the Engle-Granger cointegration test.... | False | True | ['dataset'] | {'threshold': {'type': 'float', 'default': 0.05}} | ['time_series_data', 'statistical_test', 'forecasting'] | ['regression'] |
| validmind.data_validation.FeatureTargetCorrelationPlot | Feature Target Correlation Plot | Visualizes the correlation between input features and the model's target output in a color-coded horizontal bar... | True | False | ['dataset'] | {'fig_height': {'type': '_empty', 'default': 600}} | ['tabular_data', 'visualization', 'correlation'] | ['classification', 'regression'] |
| validmind.data_validation.HighCardinality | High Cardinality | Assesses the number of unique values in categorical columns to detect high cardinality and potential overfitting.... | False | True | ['dataset'] | {'num_threshold': {'type': 'int', 'default': 100}, 'percent_threshold': {'type': 'float', 'default': 0.1}, 'threshold_type': {'type': 'str', 'default': 'percent'}} | ['tabular_data', 'data_quality', 'categorical_data'] | ['classification', 'regression'] |
| validmind.data_validation.HighPearsonCorrelation | High Pearson Correlation | Identifies highly correlated feature pairs in a dataset suggesting feature redundancy or multicollinearity.... | False | True | ['dataset'] | {'max_threshold': {'type': 'float', 'default': 0.3}, 'top_n_correlations': {'type': 'int', 'default': 10}, 'feature_columns': {'type': 'list', 'default': None}} | ['tabular_data', 'data_quality', 'correlation'] | ['classification', 'regression'] |
| validmind.data_validation.IQROutliersBarPlot | IQR Outliers Bar Plot | Visualizes outlier distribution across percentiles in numerical data using the Interquartile Range (IQR) method.... | True | False | ['dataset'] | {'threshold': {'type': 'float', 'default': 1.5}, 'fig_width': {'type': 'int', 'default': 800}} | ['tabular_data', 'visualization', 'numerical_data'] | ['classification', 'regression'] |
| validmind.data_validation.IQROutliersTable | IQR Outliers Table | Determines and summarizes outliers in numerical features using the Interquartile Range method.... | False | True | ['dataset'] | {'threshold': {'type': 'float', 'default': 1.5}} | ['tabular_data', 'numerical_data'] | ['classification', 'regression'] |
| validmind.data_validation.IsolationForestOutliers | Isolation Forest Outliers | Detects outliers in a dataset using the Isolation Forest algorithm and visualizes results through scatter plots.... | True | False | ['dataset'] | {'random_state': {'type': 'int', 'default': 0}, 'contamination': {'type': 'float', 'default': 0.1}, 'feature_columns': {'type': 'list', 'default': None}} | ['tabular_data', 'anomaly_detection'] | ['classification'] |
| validmind.data_validation.JarqueBera | Jarque Bera | Assesses normality of dataset features in an ML model using the Jarque-Bera test.... | False | True | ['dataset'] | {} | ['tabular_data', 'data_distribution', 'statistical_test', 'statsmodels'] | ['classification', 'regression'] |
| validmind.data_validation.KPSS | KPSS | Assesses the stationarity of time-series data in a machine learning model using the KPSS unit root test.... | False | True | ['dataset'] | {} | ['time_series_data', 'stationarity', 'unit_root_test', 'statsmodels'] | ['data_validation'] |
| validmind.data_validation.LJungBox | L Jung Box | Assesses autocorrelations in dataset features by performing a Ljung-Box test on each feature.... | False | True | ['dataset'] | {} | ['time_series_data', 'forecasting', 'statistical_test', 'statsmodels'] | ['regression'] |
| validmind.data_validation.LaggedCorrelationHeatmap | Lagged Correlation Heatmap | Assesses and visualizes correlation between target variable and lagged independent variables in a time-series... | True | False | ['dataset'] | {'num_lags': {'type': 'int', 'default': 10}} | ['time_series_data', 'visualization'] | ['regression'] |
| validmind.data_validation.MissingValues | Missing Values | Evaluates dataset quality by ensuring missing value percentage across all features does not exceed a set threshold.... | False | True | ['dataset'] | {'min_percentage_threshold': {'type': 'float', 'default': 1.0}} | ['tabular_data', 'data_quality'] | ['classification', 'regression'] |
| validmind.data_validation.MissingValuesBarPlot | Missing Values Bar Plot | Assesses the percentage and distribution of missing values in the dataset via a bar plot, with emphasis on... | True | False | ['dataset'] | {'threshold': {'type': 'int', 'default': 80}, 'fig_height': {'type': 'int', 'default': 600}} | ['tabular_data', 'data_quality', 'visualization'] | ['classification', 'regression'] |
| validmind.data_validation.MutualInformation | Mutual Information | Calculates mutual information scores between features and target variable to evaluate feature relevance.... | True | False | ['dataset'] | {'min_threshold': {'type': 'float', 'default': 0.01}, 'task': {'type': 'str', 'default': 'classification'}} | ['feature_selection', 'data_analysis'] | ['classification', 'regression'] |
| validmind.data_validation.PearsonCorrelationMatrix | Pearson Correlation Matrix | Evaluates linear dependency between numerical variables in a dataset via a Pearson Correlation coefficient heat map.... | True | False | ['dataset'] | {} | ['tabular_data', 'numerical_data', 'correlation'] | ['classification', 'regression'] |
| validmind.data_validation.PhillipsPerronArch | Phillips Perron Arch | Assesses the stationarity of time series data in each feature of the ML model using the Phillips-Perron test.... | False | True | ['dataset'] | {} | ['time_series_data', 'forecasting', 'statistical_test', 'unit_root_test'] | ['regression'] |
| validmind.data_validation.ProtectedClassesDescription | Protected Classes Description | Visualizes the distribution of protected classes in the dataset relative to the target variable... | True | True | ['dataset'] | {'protected_classes': {'type': '_empty', 'default': None}} | ['bias_and_fairness', 'descriptive_statistics'] | ['classification', 'regression'] |
| validmind.data_validation.RollingStatsPlot | Rolling Stats Plot | Evaluates the stationarity of time series data by plotting its rolling mean and standard deviation over a specified... | True | False | ['dataset'] | {'window_size': {'type': 'int', 'default': 12}} | ['time_series_data', 'visualization', 'stationarity'] | ['regression'] |
| validmind.data_validation.RunsTest | Runs Test | Executes Runs Test on ML model to detect non-random patterns in output data sequence.... | False | True | ['dataset'] | {} | ['tabular_data', 'statistical_test', 'statsmodels'] | ['classification', 'regression'] |
| validmind.data_validation.ScatterPlot | Scatter Plot | Assesses visual relationships, patterns, and outliers among features in a dataset through scatter plot matrices.... | True | False | ['dataset'] | {} | ['tabular_data', 'visualization'] | ['classification', 'regression'] |
| validmind.data_validation.ScoreBandDefaultRates | Score Band Default Rates | Analyzes default rates and population distribution across credit score bands.... | False | True | ['dataset', 'model'] | {'score_column': {'type': 'str', 'default': 'score'}, 'score_bands': {'type': 'list', 'default': None}} | ['visualization', 'credit_risk', 'scorecard'] | ['classification'] |
| validmind.data_validation.SeasonalDecompose | Seasonal Decompose | Assesses patterns and seasonality in a time series dataset by decomposing its features into foundational components.... | True | False | ['dataset'] | {'seasonal_model': {'type': 'str', 'default': 'additive'}} | ['time_series_data', 'seasonality', 'statsmodels'] | ['regression'] |
| validmind.data_validation.ShapiroWilk | Shapiro Wilk | Evaluates feature-wise normality of training data using the Shapiro-Wilk test.... | False | True | ['dataset'] | {} | ['tabular_data', 'data_distribution', 'statistical_test'] | ['classification', 'regression'] |
| validmind.data_validation.Skewness | Skewness | Evaluates the skewness of numerical data in a dataset to check against a defined threshold, aiming to ensure data... | False | True | ['dataset'] | {'max_threshold': {'type': '_empty', 'default': 1}} | ['data_quality', 'tabular_data'] | ['classification', 'regression'] |
| validmind.data_validation.SpreadPlot | Spread Plot | Assesses potential correlations between pairs of time series variables through visualization to enhance... | True | False | ['dataset'] | {} | ['time_series_data', 'visualization'] | ['regression'] |
| validmind.data_validation.TabularCategoricalBarPlots | Tabular Categorical Bar Plots | Generates and visualizes bar plots for each category in categorical features to evaluate the dataset's composition.... | True | False | ['dataset'] | {} | ['tabular_data', 'visualization'] | ['classification', 'regression'] |
| validmind.data_validation.TabularDateTimeHistograms | Tabular Date Time Histograms | Generates histograms to provide graphical insight into the distribution of time intervals in a model's datetime... | True | False | ['dataset'] | {} | ['time_series_data', 'visualization'] | ['classification', 'regression'] |
| validmind.data_validation.TabularDescriptionTables | Tabular Description Tables | Summarizes key descriptive statistics for numerical, categorical, and datetime variables in a dataset.... | False | True | ['dataset'] | {} | ['tabular_data'] | ['classification', 'regression'] |
| validmind.data_validation.TabularNumericalHistograms | Tabular Numerical Histograms | Generates histograms for each numerical feature in a dataset to provide visual insights into data distribution and... | True | False | ['dataset'] | {} | ['tabular_data', 'visualization'] | ['classification', 'regression'] |
| validmind.data_validation.TargetRateBarPlots | Target Rate Bar Plots | Generates bar plots visualizing the default rates of categorical features for a classification machine learning... | True | False | ['dataset'] | {} | ['tabular_data', 'visualization', 'categorical_data'] | ['classification'] |
| validmind.data_validation.TimeSeriesDescription | Time Series Description | Generates a detailed analysis for the provided time series dataset, summarizing key statistics to identify trends,... | False | True | ['dataset'] | {} | ['time_series_data', 'analysis'] | ['regression'] |
| validmind.data_validation.TimeSeriesDescriptiveStatistics | Time Series Descriptive Statistics | Evaluates the descriptive statistics of a time series dataset to identify trends, patterns, and data quality issues.... | False | True | ['dataset'] | {} | ['time_series_data', 'analysis'] | ['regression'] |
| validmind.data_validation.TimeSeriesFrequency | Time Series Frequency | Evaluates consistency of time series data frequency and generates a frequency plot.... | True | True | ['dataset'] | {} | ['time_series_data'] | ['regression'] |
| validmind.data_validation.TimeSeriesHistogram | Time Series Histogram | Visualizes distribution of time-series data using histograms and Kernel Density Estimation (KDE) lines.... | True | False | ['dataset'] | {'nbins': {'type': '_empty', 'default': 30}} | ['data_validation', 'visualization', 'time_series_data'] | ['regression', 'time_series_forecasting'] |
| validmind.data_validation.TimeSeriesLinePlot | Time Series Line Plot | Generates and analyses time-series data through line plots revealing trends, patterns, anomalies over time.... | True | False | ['dataset'] | {} | ['time_series_data', 'visualization'] | ['regression'] |
| validmind.data_validation.TimeSeriesMissingValues | Time Series Missing Values | Validates time-series data quality by confirming the count of missing values is below a certain threshold.... | True | True | ['dataset'] | {'min_threshold': {'type': 'int', 'default': 1}} | ['time_series_data'] | ['regression'] |
| validmind.data_validation.TimeSeriesOutliers | Time Series Outliers | Identifies and visualizes outliers in time-series data using the z-score method.... | False | True | ['dataset'] | {'zscore_threshold': {'type': 'int', 'default': 3}} | ['time_series_data'] | ['regression'] |
| validmind.data_validation.TooManyZeroValues | Too Many Zero Values | Identifies numerical columns in a dataset that contain an excessive number of zero values, defined by a threshold... | False | True | ['dataset'] | {'max_percent_threshold': {'type': 'float', 'default': 0.03}} | ['tabular_data'] | ['regression', 'classification'] |
| validmind.data_validation.UniqueRows | Unique Rows | Verifies the diversity of the dataset by ensuring that the count of unique rows exceeds a prescribed threshold.... | False | True | ['dataset'] | {'min_percent_threshold': {'type': 'float', 'default': 1}} | ['tabular_data'] | ['regression', 'classification'] |
| validmind.data_validation.WOEBinPlots | WOE Bin Plots | Generates visualizations of Weight of Evidence (WoE) and Information Value (IV) for understanding predictive power... | True | False | ['dataset'] | {'breaks_adj': {'type': 'list', 'default': None}, 'fig_height': {'type': 'int', 'default': 600}, 'fig_width': {'type': 'int', 'default': 500}} | ['tabular_data', 'visualization', 'categorical_data'] | ['classification'] |
| validmind.data_validation.WOEBinTable | WOE Bin Table | Assesses the Weight of Evidence (WoE) and Information Value (IV) of each feature to evaluate its predictive power... | False | True | ['dataset'] | {'breaks_adj': {'type': 'list', 'default': None}} | ['tabular_data', 'categorical_data'] | ['classification'] |
| validmind.data_validation.ZivotAndrewsArch | Zivot Andrews Arch | Evaluates the order of integration and stationarity of time series data using the Zivot-Andrews unit root test.... | False | True | ['dataset'] | {} | ['time_series_data', 'stationarity', 'unit_root_test'] | ['regression'] |
| validmind.data_validation.nlp.CommonWords | Common Words | Assesses the most frequent non-stopwords in a text column for identifying prevalent language patterns.... | True | False | ['dataset'] | {} | ['nlp', 'text_data', 'visualization', 'frequency_analysis'] | ['text_classification', 'text_summarization'] |
| validmind.data_validation.nlp.Hashtags | Hashtags | Assesses hashtag frequency in a text column, highlighting usage trends and potential dataset bias or spam.... | True | False | ['dataset'] | {'top_hashtags': {'type': 'int', 'default': 25}} | ['nlp', 'text_data', 'visualization', 'frequency_analysis'] | ['text_classification', 'text_summarization'] |
| validmind.data_validation.nlp.LanguageDetection | Language Detection | Assesses the diversity of languages in a textual dataset by detecting and visualizing the distribution of languages.... | True | False | ['dataset'] | {} | ['nlp', 'text_data', 'visualization'] | ['text_classification', 'text_summarization'] |
| validmind.data_validation.nlp.Mentions | Mentions | Calculates and visualizes frequencies of '@' prefixed mentions in a text-based dataset for NLP model analysis.... | True | False | ['dataset'] | {'top_mentions': {'type': 'int', 'default': 25}} | ['nlp', 'text_data', 'visualization', 'frequency_analysis'] | ['text_classification', 'text_summarization'] |
| validmind.data_validation.nlp.PolarityAndSubjectivity | Polarity And Subjectivity | Analyzes the polarity and subjectivity of text data within a given dataset to visualize the sentiment distribution.... | True | True | ['dataset'] | {'threshold_subjectivity': {'type': '_empty', 'default': 0.5}, 'threshold_polarity': {'type': '_empty', 'default': 0}} | ['nlp', 'text_data', 'data_validation'] | ['nlp'] |
| validmind.data_validation.nlp.Punctuations | Punctuations | Analyzes and visualizes the frequency distribution of punctuation usage in a given text dataset.... | True | False | ['dataset'] | {'count_mode': {'type': '_empty', 'default': 'token'}} | ['nlp', 'text_data', 'visualization', 'frequency_analysis'] | ['text_classification', 'text_summarization', 'nlp'] |
| validmind.data_validation.nlp.Sentiment | Sentiment | Analyzes the sentiment of text data within a dataset using the VADER sentiment analysis tool.... | True | False | ['dataset'] | {} | ['nlp', 'text_data', 'data_validation'] | ['nlp'] |
| validmind.data_validation.nlp.StopWords | Stop Words | Evaluates and visualizes the frequency of English stop words in a text dataset against a defined threshold.... | True | True | ['dataset'] | {'min_percent_threshold': {'type': 'float', 'default': 0.5}, 'num_words': {'type': 'int', 'default': 25}} | ['nlp', 'text_data', 'frequency_analysis', 'visualization'] | ['text_classification', 'text_summarization'] |
| validmind.data_validation.nlp.TextDescription | Text Description | Conducts comprehensive textual analysis on a dataset using NLTK to evaluate various parameters and generate... | True | False | ['dataset'] | {'unwanted_tokens': {'type': 'set', 'default': {'``', 's', 'ms', 'us', "''", 'mrs', 'dollar', "'s", "s'", 'dr', ' ', 'mr'}}, 'lang': {'type': 'str', 'default': 'english'}} | ['nlp', 'text_data', 'visualization'] | ['text_classification', 'text_summarization'] |
| validmind.data_validation.nlp.Toxicity | Toxicity | Assesses the toxicity of text data within a dataset to visualize the distribution of toxicity scores.... | True | False | ['dataset'] | {} | ['nlp', 'text_data', 'data_validation'] | ['nlp'] |
| validmind.model_validation.BertScore | Bert Score | Assesses the quality of machine-generated text using BERTScore metrics and visualizes results through histograms... | True | True | ['dataset', 'model'] | {'evaluation_model': {'type': '_empty', 'default': 'distilbert-base-uncased'}} | ['nlp', 'text_data', 'visualization'] | ['text_classification', 'text_summarization'] |
| validmind.model_validation.BleuScore | Bleu Score | Evaluates the quality of machine-generated text using BLEU metrics and visualizes the results through histograms... | True | True | ['dataset', 'model'] | {} | ['nlp', 'text_data', 'visualization'] | ['text_classification', 'text_summarization'] |
| validmind.model_validation.ClusterSizeDistribution | Cluster Size Distribution | Assesses the performance of clustering models by comparing the distribution of cluster sizes in model predictions... | True | False | ['dataset', 'model'] | {} | ['sklearn', 'model_performance'] | ['clustering'] |
| validmind.model_validation.ContextualRecall | Contextual Recall | Evaluates a Natural Language Generation model's ability to generate contextually relevant and factually correct... | True | True | ['dataset', 'model'] | {} | ['nlp', 'text_data', 'visualization'] | ['text_classification', 'text_summarization'] |
| validmind.model_validation.FeaturesAUC | Features AUC | Evaluates the discriminatory power of each individual feature within a binary classification model by calculating... | True | False | ['dataset'] | {'fontsize': {'type': 'int', 'default': 12}, 'figure_height': {'type': 'int', 'default': 500}} | ['feature_importance', 'AUC', 'visualization'] | ['classification'] |
| validmind.model_validation.MeteorScore | Meteor Score | Assesses the quality of machine-generated translations by comparing them to human-produced references using the... | True | True | ['dataset', 'model'] | {} | ['nlp', 'text_data', 'visualization'] | ['text_classification', 'text_summarization'] |
| validmind.model_validation.ModelMetadata | Model Metadata | Compare metadata of different models and generate a summary table with the results.... | False | True | ['model'] | {} | ['model_training', 'metadata'] | ['regression', 'time_series_forecasting'] |
| validmind.model_validation.ModelPredictionResiduals | Model Prediction Residuals | Assesses normality and behavior of residuals in regression models through visualization and statistical tests.... | True | True | ['dataset', 'model'] | {'nbins': {'type': 'int', 'default': 100}, 'p_value_threshold': {'type': 'float', 'default': 0.05}, 'start_date': {'type': 'Optional', 'default': None}, 'end_date': {'type': 'Optional', 'default': None}} | ['regression'] | ['residual_analysis', 'visualization'] |
| validmind.model_validation.RegardScore | Regard Score | Assesses the sentiment and potential biases in text generated by NLP models by computing and visualizing regard... | True | True | ['dataset', 'model'] | {} | ['nlp', 'text_data', 'visualization'] | ['text_classification', 'text_summarization'] |
| validmind.model_validation.RegressionResidualsPlot | Regression Residuals Plot | Evaluates regression model performance using residual distribution and actual vs. predicted plots.... | True | False | ['model', 'dataset'] | {'bin_size': {'type': 'float', 'default': 0.1}} | ['model_performance', 'visualization'] | ['regression'] |
| validmind.model_validation.RougeScore | Rouge Score | Assesses the quality of machine-generated text using ROUGE metrics and visualizes the results to provide... | True | True | ['dataset', 'model'] | {'metric': {'type': 'str', 'default': 'rouge-1'}} | ['nlp', 'text_data', 'visualization'] | ['text_classification', 'text_summarization'] |
| validmind.model_validation.TimeSeriesPredictionWithCI | Time Series Prediction With CI | Assesses predictive accuracy and uncertainty in time series models, highlighting breaches beyond confidence... | True | True | ['dataset', 'model'] | {'confidence': {'type': 'float', 'default': 0.95}} | ['model_predictions', 'visualization'] | ['regression', 'time_series_forecasting'] |
| validmind.model_validation.TimeSeriesPredictionsPlot | Time Series Predictions Plot | Plot actual vs predicted values for time series data and generate a visual comparison for the model.... | True | False | ['dataset', 'model'] | {} | ['model_predictions', 'visualization'] | ['regression', 'time_series_forecasting'] |
| validmind.model_validation.TimeSeriesR2SquareBySegments | Time Series R2 Square By Segments | Evaluates the R-Squared values of regression models over specified time segments in time series data to assess... | True | True | ['dataset', 'model'] | {'segments': {'type': 'Optional', 'default': None}} | ['model_performance', 'sklearn'] | ['regression', 'time_series_forecasting'] |
| validmind.model_validation.TokenDisparity | Token Disparity | Evaluates the token disparity between reference and generated texts, visualizing the results through histograms and... | True | True | ['dataset', 'model'] | {} | ['nlp', 'text_data', 'visualization'] | ['text_classification', 'text_summarization'] |
| validmind.model_validation.ToxicityScore | Toxicity Score | Assesses the toxicity levels of texts generated by NLP models to identify and mitigate harmful or offensive content.... | True | True | ['dataset', 'model'] | {} | ['nlp', 'text_data', 'visualization'] | ['text_classification', 'text_summarization'] |
| validmind.model_validation.embeddings.ClusterDistribution | Cluster Distribution | Assesses the distribution of text embeddings across clusters produced by a model using KMeans clustering.... | True | False | ['model', 'dataset'] | {'num_clusters': {'type': 'int', 'default': 5}} | ['llm', 'text_data', 'embeddings', 'visualization'] | ['feature_extraction'] |
| validmind.model_validation.embeddings.CosineSimilarityComparison | Cosine Similarity Comparison | Assesses the similarity between embeddings generated by different models using Cosine Similarity, providing both... | True | True | ['dataset', 'models'] | {} | ['visualization', 'dimensionality_reduction', 'embeddings'] | ['text_qa', 'text_generation', 'text_summarization'] |
| validmind.model_validation.embeddings.CosineSimilarityDistribution | Cosine Similarity Distribution | Assesses the similarity between predicted text embeddings from a model using a Cosine Similarity distribution... | True | False | ['dataset', 'model'] | {} | ['llm', 'text_data', 'embeddings', 'visualization'] | ['feature_extraction'] |
| validmind.model_validation.embeddings.CosineSimilarityHeatmap | Cosine Similarity Heatmap | Generates an interactive heatmap to visualize the cosine similarities among embeddings derived from a given model.... | True | False | ['dataset', 'model'] | {'title': {'type': '_empty', 'default': 'Cosine Similarity Matrix'}, 'color': {'type': '_empty', 'default': 'Cosine Similarity'}, 'xaxis_title': {'type': '_empty', 'default': 'Index'}, 'yaxis_title': {'type': '_empty', 'default': 'Index'}, 'color_scale': {'type': '_empty', 'default': 'Blues'}} | ['visualization', 'dimensionality_reduction', 'embeddings'] | ['text_qa', 'text_generation', 'text_summarization'] |
| validmind.model_validation.embeddings.DescriptiveAnalytics | Descriptive Analytics | Evaluates statistical properties of text embeddings in an ML model via mean, median, and standard deviation... | True | False | ['dataset', 'model'] | {} | ['llm', 'text_data', 'embeddings', 'visualization'] | ['feature_extraction'] |
| validmind.model_validation.embeddings.EmbeddingsVisualization2D | Embeddings Visualization2 D | Visualizes 2D representation of text embeddings generated by a model using t-SNE technique.... | True | False | ['dataset', 'model'] | {'cluster_column': {'type': 'Optional', 'default': None}, 'perplexity': {'type': 'int', 'default': 30}} | ['llm', 'text_data', 'embeddings', 'visualization'] | ['feature_extraction'] |
| validmind.model_validation.embeddings.EuclideanDistanceComparison | Euclidean Distance Comparison | Assesses and visualizes the dissimilarity between model embeddings using Euclidean distance, providing insights... | True | True | ['dataset', 'models'] | {} | ['visualization', 'dimensionality_reduction', 'embeddings'] | ['text_qa', 'text_generation', 'text_summarization'] |
| validmind.model_validation.embeddings.EuclideanDistanceHeatmap | Euclidean Distance Heatmap | Generates an interactive heatmap to visualize the Euclidean distances among embeddings derived from a given model.... | True | False | ['dataset', 'model'] | {'title': {'type': '_empty', 'default': 'Euclidean Distance Matrix'}, 'color': {'type': '_empty', 'default': 'Euclidean Distance'}, 'xaxis_title': {'type': '_empty', 'default': 'Index'}, 'yaxis_title': {'type': '_empty', 'default': 'Index'}, 'color_scale': {'type': '_empty', 'default': 'Blues'}} | ['visualization', 'dimensionality_reduction', 'embeddings'] | ['text_qa', 'text_generation', 'text_summarization'] |
| validmind.model_validation.embeddings.PCAComponentsPairwisePlots | PCA Components Pairwise Plots | Generates scatter plots for pairwise combinations of principal component analysis (PCA) components of model... | True | False | ['dataset', 'model'] | {'n_components': {'type': 'int', 'default': 3}} | ['visualization', 'dimensionality_reduction', 'embeddings'] | ['text_qa', 'text_generation', 'text_summarization'] |
| validmind.model_validation.embeddings.StabilityAnalysisKeyword | Stability Analysis Keyword | Evaluates robustness of embedding models to keyword swaps in the test dataset.... | True | True | ['dataset', 'model'] | {'keyword_dict': {'type': 'Dict', 'default': None}, 'mean_similarity_threshold': {'type': 'float', 'default': 0.7}} | ['llm', 'text_data', 'embeddings', 'visualization'] | ['feature_extraction'] |
| validmind.model_validation.embeddings.StabilityAnalysisRandomNoise | Stability Analysis Random Noise | Assesses the robustness of text embeddings models to random noise introduced via text perturbations.... | True | True | ['dataset', 'model'] | {'probability': {'type': 'float', 'default': 0.02}, 'mean_similarity_threshold': {'type': 'float', 'default': 0.7}} | ['llm', 'text_data', 'embeddings', 'visualization'] | ['feature_extraction'] |
| validmind.model_validation.embeddings.StabilityAnalysisSynonyms | Stability Analysis Synonyms | Evaluates the stability of text embeddings models when words in test data are replaced by their synonyms randomly.... | True | True | ['dataset', 'model'] | {'probability': {'type': 'float', 'default': 0.02}, 'mean_similarity_threshold': {'type': 'float', 'default': 0.7}} | ['llm', 'text_data', 'embeddings', 'visualization'] | ['feature_extraction'] |
| validmind.model_validation.embeddings.StabilityAnalysisTranslation | Stability Analysis Translation | Evaluates robustness of text embeddings models to noise introduced by translating the original text to another... | True | True | ['dataset', 'model'] | {'source_lang': {'type': 'str', 'default': 'en'}, 'target_lang': {'type': 'str', 'default': 'fr'}, 'mean_similarity_threshold': {'type': 'float', 'default': 0.7}} | ['llm', 'text_data', 'embeddings', 'visualization'] | ['feature_extraction'] |
| validmind.model_validation.embeddings.TSNEComponentsPairwisePlots | TSNE Components Pairwise Plots | Creates scatter plots for pairwise combinations of t-SNE components to visualize embeddings and highlight potential... | True | False | ['dataset', 'model'] | {'n_components': {'type': 'int', 'default': 2}, 'perplexity': {'type': 'int', 'default': 30}, 'title': {'type': 'str', 'default': 't-SNE'}} | ['visualization', 'dimensionality_reduction', 'embeddings'] | ['text_qa', 'text_generation', 'text_summarization'] |
| validmind.model_validation.ragas.AnswerCorrectness | Answer Correctness | Evaluates the correctness of answers in a dataset with respect to the provided ground... | True | True | ['dataset'] | {'user_input_column': {'type': 'str', 'default': 'user_input'}, 'response_column': {'type': 'str', 'default': 'response'}, 'reference_column': {'type': 'str', 'default': 'reference'}, 'judge_llm': {'type': '_empty', 'default': None}, 'judge_embeddings': {'type': '_empty', 'default': None}} | ['ragas', 'llm'] | ['text_qa', 'text_generation', 'text_summarization'] |
| validmind.model_validation.ragas.AspectCritic | Aspect Critic | Evaluates generations against the following aspects: harmfulness, maliciousness,... | True | True | ['dataset'] | {'user_input_column': {'type': 'str', 'default': 'user_input'}, 'response_column': {'type': 'str', 'default': 'response'}, 'retrieved_contexts_column': {'type': 'Optional', 'default': None}, 'aspects': {'type': 'List', 'default': ['coherence', 'conciseness', 'correctness', 'harmfulness', 'maliciousness']}, 'additional_aspects': {'type': 'Optional', 'default': None}, 'judge_llm': {'type': '_empty', 'default': None}, 'judge_embeddings': {'type': '_empty', 'default': None}} | ['ragas', 'llm', 'qualitative'] | ['text_summarization', 'text_generation', 'text_qa'] |
| validmind.model_validation.ragas.ContextEntityRecall | Context Entity Recall | Evaluates the context entity recall for dataset entries and visualizes the results.... | True | True | ['dataset'] | {'retrieved_contexts_column': {'type': 'str', 'default': 'retrieved_contexts'}, 'reference_column': {'type': 'str', 'default': 'reference'}, 'judge_llm': {'type': '_empty', 'default': None}, 'judge_embeddings': {'type': '_empty', 'default': None}} | ['ragas', 'llm', 'retrieval_performance'] | ['text_qa', 'text_generation', 'text_summarization'] |
| validmind.model_validation.ragas.ContextPrecision | Context Precision | Context Precision is a metric that evaluates whether all of the ground-truth... | True | True | ['dataset'] | {'user_input_column': {'type': 'str', 'default': 'user_input'}, 'retrieved_contexts_column': {'type': 'str', 'default': 'retrieved_contexts'}, 'reference_column': {'type': 'str', 'default': 'reference'}, 'judge_llm': {'type': '_empty', 'default': None}, 'judge_embeddings': {'type': '_empty', 'default': None}} | ['ragas', 'llm', 'retrieval_performance'] | ['text_qa', 'text_generation', 'text_summarization', 'text_classification'] |
| validmind.model_validation.ragas.ContextPrecisionWithoutReference | Context Precision Without Reference | Context Precision Without Reference is a metric used to evaluate the relevance of... | True | True | ['dataset'] | {'user_input_column': {'type': 'str', 'default': 'user_input'}, 'retrieved_contexts_column': {'type': 'str', 'default': 'retrieved_contexts'}, 'response_column': {'type': 'str', 'default': 'response'}, 'judge_llm': {'type': '_empty', 'default': None}, 'judge_embeddings': {'type': '_empty', 'default': None}} | ['ragas', 'llm', 'retrieval_performance'] | ['text_qa', 'text_generation', 'text_summarization', 'text_classification'] |
| validmind.model_validation.ragas.ContextRecall | Context Recall | Context recall measures the extent to which the retrieved context aligns with the... | True | True | ['dataset'] | {'user_input_column': {'type': 'str', 'default': 'user_input'}, 'retrieved_contexts_column': {'type': 'str', 'default': 'retrieved_contexts'}, 'reference_column': {'type': 'str', 'default': 'reference'}, 'judge_llm': {'type': '_empty', 'default': None}, 'judge_embeddings': {'type': '_empty', 'default': None}} | ['ragas', 'llm', 'retrieval_performance'] | ['text_qa', 'text_generation', 'text_summarization', 'text_classification'] |
| validmind.model_validation.ragas.Faithfulness | Faithfulness | Evaluates the faithfulness of the generated answers with respect to retrieved contexts.... | True | True | ['dataset'] | {'user_input_column': {'type': 'str', 'default': 'user_input'}, 'response_column': {'type': 'str', 'default': 'response'}, 'retrieved_contexts_column': {'type': 'str', 'default': 'retrieved_contexts'}, 'judge_llm': {'type': '_empty', 'default': None}, 'judge_embeddings': {'type': '_empty', 'default': None}} | ['ragas', 'llm', 'rag_performance'] | ['text_qa', 'text_generation', 'text_summarization'] |
| validmind.model_validation.ragas.NoiseSensitivity | Noise Sensitivity | Assesses the sensitivity of a Large Language Model (LLM) to noise in retrieved context by measuring how often it... | True | True | ['dataset'] | {'response_column': {'type': 'str', 'default': 'response'}, 'retrieved_contexts_column': {'type': 'str', 'default': 'retrieved_contexts'}, 'reference_column': {'type': 'str', 'default': 'reference'}, 'focus': {'type': 'str', 'default': 'relevant'}, 'user_input_column': {'type': 'str', 'default': 'user_input'}, 'judge_llm': {'type': '_empty', 'default': None}, 'judge_embeddings': {'type': '_empty', 'default': None}} | ['ragas', 'llm', 'rag_performance'] | ['text_qa', 'text_generation', 'text_summarization'] |
| validmind.model_validation.ragas.ResponseRelevancy | Response Relevancy | Assesses how pertinent the generated answer is to the given prompt.... | True | True | ['dataset'] | {'user_input_column': {'type': 'str', 'default': 'user_input'}, 'retrieved_contexts_column': {'type': 'str', 'default': None}, 'response_column': {'type': 'str', 'default': 'response'}, 'judge_llm': {'type': '_empty', 'default': None}, 'judge_embeddings': {'type': '_empty', 'default': None}} | ['ragas', 'llm', 'rag_performance'] | ['text_qa', 'text_generation', 'text_summarization'] |
| validmind.model_validation.ragas.SemanticSimilarity | Semantic Similarity | Calculates the semantic similarity between generated responses and ground truths... | True | True | ['dataset'] | {'response_column': {'type': 'str', 'default': 'response'}, 'reference_column': {'type': 'str', 'default': 'reference'}, 'judge_llm': {'type': '_empty', 'default': None}, 'judge_embeddings': {'type': '_empty', 'default': None}} | ['ragas', 'llm'] | ['text_qa', 'text_generation', 'text_summarization'] |
| validmind.model_validation.sklearn.AdjustedMutualInformation | Adjusted Mutual Information | Evaluates clustering model performance by measuring mutual information between true and predicted labels, adjusting... | False | True | ['model', 'dataset'] | {} | ['sklearn', 'model_performance', 'clustering'] | ['clustering'] |
| validmind.model_validation.sklearn.AdjustedRandIndex | Adjusted Rand Index | Measures the similarity between two data clusters using the Adjusted Rand Index (ARI) metric in clustering machine... | False | True | ['model', 'dataset'] | {} | ['sklearn', 'model_performance', 'clustering'] | ['clustering'] |
| validmind.model_validation.sklearn.CalibrationCurve | Calibration Curve | Evaluates the calibration of probability estimates by comparing predicted probabilities against observed... | True | False | ['model', 'dataset'] | {'n_bins': {'type': 'int', 'default': 10}} | ['sklearn', 'model_performance', 'classification'] | ['classification'] |
| validmind.model_validation.sklearn.ClassifierPerformance | Classifier Performance | Evaluates performance of binary or multiclass classification models using precision, recall, F1-Score, accuracy,... | False | True | ['dataset', 'model'] | {'average': {'type': 'str', 'default': 'macro'}} | ['sklearn', 'binary_classification', 'multiclass_classification', 'model_performance'] | ['classification', 'text_classification'] |
| validmind.model_validation.sklearn.ClassifierThresholdOptimization | Classifier Threshold Optimization | Analyzes and visualizes different threshold optimization methods for binary classification models.... | False | True | ['dataset', 'model'] | {'methods': {'type': 'Optional', 'default': None}, 'target_recall': {'type': 'Optional', 'default': None}} | ['model_validation', 'threshold_optimization', 'classification_metrics'] | ['classification'] |
| validmind.model_validation.sklearn.ClusterCosineSimilarity | Cluster Cosine Similarity | Measures the intra-cluster similarity of a clustering model using cosine similarity.... | False | True | ['model', 'dataset'] | {} | ['sklearn', 'model_performance', 'clustering'] | ['clustering'] |
| validmind.model_validation.sklearn.ClusterPerformanceMetrics | Cluster Performance Metrics | Evaluates the performance of clustering machine learning models using multiple established metrics.... | False | True | ['model', 'dataset'] | {} | ['sklearn', 'model_performance', 'clustering'] | ['clustering'] |
| validmind.model_validation.sklearn.CompletenessScore | Completeness Score | Evaluates a clustering model's capacity to categorize instances from a single class into the same cluster.... | False | True | ['model', 'dataset'] | {} | ['sklearn', 'model_performance', 'clustering'] | ['clustering'] |
| validmind.model_validation.sklearn.ConfusionMatrix | Confusion Matrix | Evaluates and visually represents the classification ML model's predictive performance using a Confusion Matrix... | True | False | ['dataset', 'model'] | {'threshold': {'type': 'float', 'default': 0.5}} | ['sklearn', 'binary_classification', 'multiclass_classification', 'model_performance', 'visualization'] | ['classification', 'text_classification'] |
| validmind.model_validation.sklearn.FeatureImportance | Feature Importance | Compute feature importance scores for a given model and generate a summary table... | False | True | ['dataset', 'model'] | {'num_features': {'type': 'int', 'default': 3}} | ['model_explainability', 'sklearn'] | ['regression', 'time_series_forecasting'] |
| validmind.model_validation.sklearn.FowlkesMallowsScore | Fowlkes Mallows Score | Evaluates the similarity between predicted and actual cluster assignments in a model using the Fowlkes-Mallows... | False | True | ['dataset', 'model'] | {} | ['sklearn', 'model_performance'] | ['clustering'] |
| validmind.model_validation.sklearn.HomogeneityScore | Homogeneity Score | Assesses clustering homogeneity by comparing true and predicted labels, scoring from 0 (heterogeneous) to 1... | False | True | ['dataset', 'model'] | {} | ['sklearn', 'model_performance'] | ['clustering'] |
| validmind.model_validation.sklearn.HyperParametersTuning | Hyper Parameters Tuning | Performs exhaustive grid search over specified parameter ranges to find optimal model configurations... | False | True | ['model', 'dataset'] | {'param_grid': {'type': 'dict', 'default': None}, 'scoring': {'type': 'Union', 'default': None}, 'thresholds': {'type': 'Union', 'default': None}, 'fit_params': {'type': 'dict', 'default': None}} | ['sklearn', 'model_performance'] | ['clustering', 'classification'] |
| validmind.model_validation.sklearn.KMeansClustersOptimization | K Means Clusters Optimization | Optimizes the number of clusters in K-means models using Elbow and Silhouette methods.... | True | False | ['model', 'dataset'] | {'n_clusters': {'type': 'Optional', 'default': None}} | ['sklearn', 'model_performance', 'kmeans'] | ['clustering'] |
| validmind.model_validation.sklearn.MinimumAccuracy | Minimum Accuracy | Checks if the model's prediction accuracy meets or surpasses a specified threshold.... | False | True | ['dataset', 'model'] | {'min_threshold': {'type': 'float', 'default': 0.7}} | ['sklearn', 'binary_classification', 'multiclass_classification', 'model_performance'] | ['classification', 'text_classification'] |
| validmind.model_validation.sklearn.MinimumF1Score | Minimum F1 Score | Assesses if the model's F1 score on the validation set meets a predefined minimum threshold, ensuring balanced... | False | True | ['dataset', 'model'] | {'min_threshold': {'type': 'float', 'default': 0.5}} | ['sklearn', 'binary_classification', 'multiclass_classification', 'model_performance'] | ['classification', 'text_classification'] |
| validmind.model_validation.sklearn.MinimumROCAUCScore | Minimum ROCAUC Score | Validates model by checking if the ROC AUC score meets or surpasses a specified threshold.... | False | True | ['dataset', 'model'] | {'min_threshold': {'type': 'float', 'default': 0.5}} | ['sklearn', 'binary_classification', 'multiclass_classification', 'model_performance'] | ['classification', 'text_classification'] |
| validmind.model_validation.sklearn.ModelParameters | Model Parameters | Extracts and displays model parameters in a structured format for transparency and reproducibility.... | False | True | ['model'] | {'model_params': {'type': 'Optional', 'default': None}} | ['model_training', 'metadata'] | ['classification', 'regression'] |
| validmind.model_validation.sklearn.ModelsPerformanceComparison | Models Performance Comparison | Evaluates and compares the performance of multiple Machine Learning models using various metrics like accuracy,... | False | True | ['dataset', 'models'] | {} | ['sklearn', 'binary_classification', 'multiclass_classification', 'model_performance', 'model_comparison'] | ['classification', 'text_classification'] |
| validmind.model_validation.sklearn.OverfitDiagnosis | Overfit Diagnosis | Assesses potential overfitting in a model's predictions, identifying regions where performance between training and... | True | True | ['model', 'datasets'] | {'metric': {'type': 'str', 'default': None}, 'cut_off_threshold': {'type': 'float', 'default': 0.04}} | ['sklearn', 'binary_classification', 'multiclass_classification', 'linear_regression', 'model_diagnosis'] | ['classification', 'regression'] |
| validmind.model_validation.sklearn.PermutationFeatureImportance | Permutation Feature Importance | Assesses the significance of each feature in a model by evaluating the impact on model performance when feature... | True | False | ['model', 'dataset'] | {'fontsize': {'type': 'Optional', 'default': None}, 'figure_height': {'type': 'Optional', 'default': None}} | ['sklearn', 'binary_classification', 'multiclass_classification', 'feature_importance', 'visualization'] | ['classification', 'text_classification'] |
| validmind.model_validation.sklearn.PopulationStabilityIndex | Population Stability Index | Assesses the Population Stability Index (PSI) to quantify the stability of an ML model's predictions across... | True | True | ['datasets', 'model'] | {'num_bins': {'type': 'int', 'default': 10}, 'mode': {'type': 'str', 'default': 'fixed'}} | ['sklearn', 'binary_classification', 'multiclass_classification', 'model_performance'] | ['classification', 'text_classification'] |
| validmind.model_validation.sklearn.PrecisionRecallCurve | Precision Recall Curve | Evaluates the precision-recall trade-off for binary classification models and visualizes the Precision-Recall curve.... | True | False | ['model', 'dataset'] | {} | ['sklearn', 'binary_classification', 'multiclass_classification', 'model_performance', 'visualization'] | ['classification', 'text_classification'] |
| validmind.model_validation.sklearn.ROCCurve | ROC Curve | Evaluates classification model performance by generating and plotting the Receiver Operating Characteristic... | True | False | ['model', 'dataset'] | {} | ['sklearn', 'binary_classification', 'multiclass_classification', 'model_performance', 'visualization'] | ['classification', 'text_classification'] |
| validmind.model_validation.sklearn.RegressionErrors | Regression Errors | Assesses the performance and error distribution of a regression model using various error metrics.... | False | True | ['model', 'dataset'] | {} | ['sklearn', 'model_performance'] | ['regression', 'classification'] |
| validmind.model_validation.sklearn.RegressionErrorsComparison | Regression Errors Comparison | Assesses multiple regression error metrics to compare model performance across different datasets, emphasizing... | False | True | ['datasets', 'models'] | {} | ['model_performance', 'sklearn'] | ['regression', 'time_series_forecasting'] |
| validmind.model_validation.sklearn.RegressionPerformance | Regression Performance | Evaluates the performance of a regression model using five different metrics: MAE, MSE, RMSE, MAPE, and MBD.... | False | True | ['model', 'dataset'] | {} | ['sklearn', 'model_performance'] | ['regression'] |
| validmind.model_validation.sklearn.RegressionR2Square | Regression R2 Square | Assesses the overall goodness-of-fit of a regression model by evaluating R-squared (R2) and Adjusted R-squared (Adj... | False | True | ['dataset', 'model'] | {} | ['sklearn', 'model_performance'] | ['regression'] |
| validmind.model_validation.sklearn.RegressionR2SquareComparison | Regression R2 Square Comparison | Compares R-Squared and Adjusted R-Squared values for different regression models across multiple datasets to assess... | False | True | ['datasets', 'models'] | {} | ['model_performance', 'sklearn'] | ['regression', 'time_series_forecasting'] |
| validmind.model_validation.sklearn.RobustnessDiagnosis | Robustness Diagnosis | Assesses the robustness of a machine learning model by evaluating performance decay under noisy conditions.... | True | True | ['datasets', 'model'] | {'metric': {'type': 'str', 'default': None}, 'scaling_factor_std_dev_list': {'type': 'List', 'default': [0.1, 0.2, 0.3, 0.4, 0.5]}, 'performance_decay_threshold': {'type': 'float', 'default': 0.05}} | ['sklearn', 'model_diagnosis', 'visualization'] | ['classification', 'regression'] |
| validmind.model_validation.sklearn.SHAPGlobalImportance | SHAP Global Importance | Evaluates and visualizes global feature importance using SHAP values for model explanation and risk identification.... | False | True | ['model', 'dataset'] | {'kernel_explainer_samples': {'type': 'int', 'default': 10}, 'tree_or_linear_explainer_samples': {'type': 'int', 'default': 200}, 'class_of_interest': {'type': 'Optional', 'default': None}} | ['sklearn', 'binary_classification', 'multiclass_classification', 'feature_importance', 'visualization'] | ['classification', 'text_classification'] |
| validmind.model_validation.sklearn.ScoreProbabilityAlignment | Score Probability Alignment | Analyzes the alignment between credit scores and predicted probabilities.... | True | True | ['model', 'dataset'] | {'score_column': {'type': 'str', 'default': 'score'}, 'n_bins': {'type': 'int', 'default': 10}} | ['visualization', 'credit_risk', 'calibration'] | ['classification'] |
| validmind.model_validation.sklearn.SilhouettePlot | Silhouette Plot | Calculates and visualizes Silhouette Score, assessing the degree of data point suitability to its cluster in ML... | True | True | ['model', 'dataset'] | {} | ['sklearn', 'model_performance'] | ['clustering'] |
| validmind.model_validation.sklearn.TrainingTestDegradation | Training Test Degradation | Tests if model performance degradation between training and test datasets exceeds a predefined threshold.... | False | True | ['datasets', 'model'] | {'max_threshold': {'type': 'float', 'default': 0.1}} | ['sklearn', 'binary_classification', 'multiclass_classification', 'model_performance', 'visualization'] | ['classification', 'text_classification'] |
| validmind.model_validation.sklearn.VMeasure | V Measure | Evaluates homogeneity and completeness of a clustering model using the V Measure Score.... | False | True | ['dataset', 'model'] | {} | ['sklearn', 'model_performance'] | ['clustering'] |
| validmind.model_validation.sklearn.WeakspotsDiagnosis | Weakspots Diagnosis | Identifies and visualizes weak spots in a machine learning model's performance across various sections of the... | True | True | ['datasets', 'model'] | {'features_columns': {'type': 'Optional', 'default': None}, 'metrics': {'type': 'Optional', 'default': None}, 'thresholds': {'type': 'Optional', 'default': None}} | ['sklearn', 'binary_classification', 'multiclass_classification', 'model_diagnosis', 'visualization'] | ['classification', 'text_classification'] |
| validmind.model_validation.statsmodels.AutoARIMA | Auto ARIMA | Evaluates ARIMA models for time-series forecasting, ranking them using Bayesian and Akaike Information Criteria.... | False | True | ['model', 'dataset'] | {} | ['time_series_data', 'forecasting', 'model_selection', 'statsmodels'] | ['regression'] |
| validmind.model_validation.statsmodels.CumulativePredictionProbabilities | Cumulative Prediction Probabilities | Visualizes cumulative probabilities of positive and negative classes in classification models.... | True | False | ['dataset', 'model'] | {'title': {'type': 'str', 'default': 'Cumulative Probabilities'}} | ['visualization', 'credit_risk'] | ['classification'] |
| validmind.model_validation.statsmodels.DurbinWatsonTest | Durbin Watson Test | Assesses autocorrelation in time series data features using the Durbin-Watson statistic.... | False | True | ['dataset', 'model'] | {'threshold': {'type': 'List', 'default': [1.5, 2.5]}} | ['time_series_data', 'forecasting', 'statistical_test', 'statsmodels'] | ['regression'] |
| validmind.model_validation.statsmodels.GINITable | GINI Table | Evaluates classification model performance using AUC, GINI, and KS metrics for training and test datasets.... | False | True | ['dataset', 'model'] | {} | ['model_performance'] | ['classification'] |
| validmind.model_validation.statsmodels.KolmogorovSmirnov | Kolmogorov Smirnov | Assesses whether each feature in the dataset aligns with a normal distribution using the Kolmogorov-Smirnov test.... | False | True | ['model', 'dataset'] | {'dist': {'type': 'str', 'default': 'norm'}} | ['tabular_data', 'data_distribution', 'statistical_test', 'statsmodels'] | ['classification', 'regression'] |
| validmind.model_validation.statsmodels.Lilliefors | Lilliefors | Assesses the normality of feature distributions in an ML model's training dataset using the Lilliefors test.... | False | True | ['dataset'] | {} | ['tabular_data', 'data_distribution', 'statistical_test', 'statsmodels'] | ['classification', 'regression'] |
| validmind.model_validation.statsmodels.PredictionProbabilitiesHistogram | Prediction Probabilities Histogram | Assesses the predictive probability distribution for binary classification to evaluate model performance and... | True | False | ['dataset', 'model'] | {'title': {'type': 'str', 'default': 'Histogram of Predictive Probabilities'}} | ['visualization', 'credit_risk'] | ['classification'] |
| validmind.model_validation.statsmodels.RegressionCoeffs | Regression Coeffs | Assesses the significance and uncertainty of predictor variables in a regression model through visualization of... | True | True | ['model'] | {} | ['tabular_data', 'visualization', 'model_training'] | ['regression'] |
| validmind.model_validation.statsmodels.RegressionFeatureSignificance | Regression Feature Significance | Assesses and visualizes the statistical significance of features in a regression model.... | True | False | ['model'] | {'fontsize': {'type': 'int', 'default': 10}, 'p_threshold': {'type': 'float', 'default': 0.05}} | ['statistical_test', 'model_interpretation', 'visualization', 'feature_importance'] | ['regression'] |
| validmind.model_validation.statsmodels.RegressionModelForecastPlot | Regression Model Forecast Plot | Generates plots to visually compare the forecasted outcomes of a regression model against actual observed values over... | True | False | ['model', 'dataset'] | {'start_date': {'type': 'Optional', 'default': None}, 'end_date': {'type': 'Optional', 'default': None}} | ['time_series_data', 'forecasting', 'visualization'] | ['regression'] |
| validmind.model_validation.statsmodels.RegressionModelForecastPlotLevels | Regression Model Forecast Plot Levels | Assesses the alignment between forecasted and observed values in regression models through visual plots... | True | False | ['model', 'dataset'] | {} | ['time_series_data', 'forecasting', 'visualization'] | ['regression'] |
| validmind.model_validation.statsmodels.RegressionModelSensitivityPlot | Regression Model Sensitivity Plot | Assesses the sensitivity of a regression model to changes in independent variables by applying shocks and... | True | False | ['dataset', 'model'] | {'shocks': {'type': 'List', 'default': [0.1]}, 'transformation': {'type': 'Optional', 'default': None}} | ['senstivity_analysis', 'visualization'] | ['regression'] |
| validmind.model_validation.statsmodels.RegressionModelSummary | Regression Model Summary | Evaluates regression model performance using metrics including R-Squared, Adjusted R-Squared, MSE, and RMSE.... | False | True | ['dataset', 'model'] | {} | ['model_performance', 'regression'] | ['regression'] |
| validmind.model_validation.statsmodels.RegressionPermutationFeatureImportance | Regression Permutation Feature Importance | Assesses the significance of each feature in a model by evaluating the impact on model performance when feature... | True | False | ['dataset', 'model'] | {'fontsize': {'type': 'int', 'default': 12}, 'figure_height': {'type': 'int', 'default': 500}} | ['statsmodels', 'feature_importance', 'visualization'] | ['regression'] |
| validmind.model_validation.statsmodels.ScorecardHistogram | Scorecard Histogram | The Scorecard Histogram test evaluates the distribution of credit scores between default and non-default instances,... | True | False | ['dataset'] | {'title': {'type': 'str', 'default': 'Histogram of Scores'}, 'score_column': {'type': 'str', 'default': 'score'}} | ['visualization', 'credit_risk', 'logistic_regression'] | ['classification'] |
| validmind.ongoing_monitoring.CalibrationCurveDrift | Calibration Curve Drift | Evaluates changes in probability calibration between reference and monitoring datasets.... | True | True | ['datasets', 'model'] | {'n_bins': {'type': 'int', 'default': 10}, 'drift_pct_threshold': {'type': 'float', 'default': 20}} | ['sklearn', 'binary_classification', 'model_performance', 'visualization'] | ['classification', 'text_classification'] |
| validmind.ongoing_monitoring.ClassDiscriminationDrift | Class Discrimination Drift | Compares classification discrimination metrics between reference and monitoring datasets.... | False | True | ['datasets', 'model'] | {'drift_pct_threshold': {'type': '_empty', 'default': 20}} | ['sklearn', 'binary_classification', 'multiclass_classification', 'model_performance'] | ['classification', 'text_classification'] |
| validmind.ongoing_monitoring.ClassImbalanceDrift | Class Imbalance Drift | Evaluates drift in class distribution between reference and monitoring datasets.... | True | True | ['datasets'] | {'drift_pct_threshold': {'type': 'float', 'default': 5.0}, 'title': {'type': 'str', 'default': 'Class Distribution Drift'}} | ['tabular_data', 'binary_classification', 'multiclass_classification'] | ['classification'] |
| validmind.ongoing_monitoring.ClassificationAccuracyDrift | Classification Accuracy Drift | Compares classification accuracy metrics between reference and monitoring datasets.... | False | True | ['datasets', 'model'] | {'drift_pct_threshold': {'type': '_empty', 'default': 20}} | ['sklearn', 'binary_classification', 'multiclass_classification', 'model_performance'] | ['classification', 'text_classification'] |
| validmind.ongoing_monitoring.ConfusionMatrixDrift | Confusion Matrix Drift | Compares confusion matrix metrics between reference and monitoring datasets.... | False | True | ['datasets', 'model'] | {'drift_pct_threshold': {'type': '_empty', 'default': 20}} | ['sklearn', 'binary_classification', 'multiclass_classification', 'model_performance'] | ['classification', 'text_classification'] |
| validmind.ongoing_monitoring.CumulativePredictionProbabilitiesDrift | Cumulative Prediction Probabilities Drift | Compares cumulative prediction probability distributions between reference and monitoring datasets.... | True | False | ['datasets', 'model'] | {} | ['visualization', 'credit_risk'] | ['classification'] |
| validmind.ongoing_monitoring.FeatureDrift | Feature Drift | Evaluates changes in feature distribution over time to identify potential model drift.... | True | True | ['datasets'] | {'bins': {'type': '_empty', 'default': [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]}, 'feature_columns': {'type': '_empty', 'default': None}, 'psi_threshold': {'type': '_empty', 'default': 0.2}} | ['visualization'] | ['monitoring'] |
| validmind.ongoing_monitoring.PredictionAcrossEachFeature | Prediction Across Each Feature | Assesses differences in model predictions across individual features between reference and monitoring datasets... | True | False | ['datasets', 'model'] | {} | ['visualization'] | ['monitoring'] |
| validmind.ongoing_monitoring.PredictionCorrelation | Prediction Correlation | Assesses correlation changes between model predictions from reference and monitoring datasets to detect potential... | True | True | ['datasets', 'model'] | {'drift_pct_threshold': {'type': 'float', 'default': 20}} | ['visualization'] | ['monitoring'] |
| validmind.ongoing_monitoring.PredictionProbabilitiesHistogramDrift | Prediction Probabilities Histogram Drift | Compares prediction probability distributions between reference and monitoring datasets.... | True | True | ['datasets', 'model'] | {'title': {'type': '_empty', 'default': 'Prediction Probabilities Histogram Drift'}, 'drift_pct_threshold': {'type': 'float', 'default': 20.0}} | ['visualization', 'credit_risk'] | ['classification'] |
| validmind.ongoing_monitoring.PredictionQuantilesAcrossFeatures | Prediction Quantiles Across Features | Assesses differences in model prediction distributions across individual features between reference... | True | False | ['datasets', 'model'] | {} | ['visualization'] | ['monitoring'] |
| validmind.ongoing_monitoring.ROCCurveDrift | ROC Curve Drift | Compares ROC curves between reference and monitoring datasets.... | True | False | ['datasets', 'model'] | {} | ['sklearn', 'binary_classification', 'model_performance', 'visualization'] | ['classification', 'text_classification'] |
| validmind.ongoing_monitoring.ScoreBandsDrift | Score Bands Drift | Analyzes drift in population distribution and default rates across score bands.... | False | True | ['datasets', 'model'] | {'score_column': {'type': 'str', 'default': 'score'}, 'score_bands': {'type': 'list', 'default': None}, 'drift_threshold': {'type': 'float', 'default': 20.0}} | ['visualization', 'credit_risk', 'scorecard'] | ['classification'] |
| validmind.ongoing_monitoring.ScorecardHistogramDrift | Scorecard Histogram Drift | Compares score distributions between reference and monitoring datasets for each class.... | True | True | ['datasets'] | {'score_column': {'type': 'str', 'default': 'score'}, 'title': {'type': 'str', 'default': 'Scorecard Histogram Drift'}, 'drift_pct_threshold': {'type': 'float', 'default': 20.0}} | ['visualization', 'credit_risk', 'logistic_regression'] | ['classification'] |
| validmind.ongoing_monitoring.TargetPredictionDistributionPlot | Target Prediction Distribution Plot | Assesses differences in prediction distributions between a reference dataset and a monitoring dataset to identify... | True | True | ['datasets', 'model'] | {'drift_pct_threshold': {'type': 'float', 'default': 20}} | ['visualization'] | ['monitoring'] |
| validmind.plots.BoxPlot | Box Plot | Generates customizable box plots for numerical features in a dataset with optional grouping using Plotly.... | True | False | ['dataset'] | {'columns': {'type': 'Optional', 'default': None}, 'group_by': {'type': 'Optional', 'default': None}, 'width': {'type': 'int', 'default': 1800}, 'height': {'type': 'int', 'default': 1200}, 'colors': {'type': 'Optional', 'default': None}, 'show_outliers': {'type': 'bool', 'default': True}, 'title_prefix': {'type': 'str', 'default': 'Box Plot of'}} | ['tabular_data', 'visualization', 'data_quality'] | ['classification', 'regression', 'clustering'] |
| validmind.plots.CorrelationHeatmap | Correlation Heatmap | Generates customizable correlation heatmap plots for numerical features in a dataset using Plotly.... | True | False | ['dataset'] | {'columns': {'type': 'Optional', 'default': None}, 'method': {'type': 'str', 'default': 'pearson'}, 'show_values': {'type': 'bool', 'default': True}, 'colorscale': {'type': 'str', 'default': 'RdBu'}, 'width': {'type': 'int', 'default': 800}, 'height': {'type': 'int', 'default': 600}, 'mask_upper': {'type': 'bool', 'default': False}, 'threshold': {'type': 'Optional', 'default': None}, 'title': {'type': 'str', 'default': 'Correlation Heatmap'}} | ['tabular_data', 'visualization', 'correlation'] | ['classification', 'regression', 'clustering'] |
| validmind.plots.HistogramPlot | Histogram Plot | Generates customizable histogram plots for numerical features in a dataset using Plotly.... | True | False | ['dataset'] | {'columns': {'type': 'Optional', 'default': None}, 'bins': {'type': 'Union', 'default': 30}, 'color': {'type': 'str', 'default': 'steelblue'}, 'opacity': {'type': 'float', 'default': 0.7}, 'show_kde': {'type': 'bool', 'default': True}, 'normalize': {'type': 'bool', 'default': False}, 'log_scale': {'type': 'bool', 'default': False}, 'title_prefix': {'type': 'str', 'default': 'Histogram of'}, 'width': {'type': 'int', 'default': 1200}, 'height': {'type': 'int', 'default': 800}, 'n_cols': {'type': 'int', 'default': 2}, 'vertical_spacing': {'type': 'float', 'default': 0.15}, 'horizontal_spacing': {'type': 'float', 'default': 0.1}} | ['tabular_data', 'visualization', 'data_quality'] | ['classification', 'regression', 'clustering'] |
| validmind.plots.ViolinPlot | Violin Plot | Generates interactive violin plots for numerical features using Plotly.... | False | False | ['dataset'] | {'columns': {'type': 'Optional', 'default': None}, 'group_by': {'type': 'Optional', 'default': None}, 'width': {'type': 'int', 'default': 800}, 'height': {'type': 'int', 'default': 600}} | ['tabular_data', 'visualization', 'distribution'] | ['classification', 'regression', 'clustering'] |
| validmind.prompt_validation.Bias | Bias | Assesses potential bias in a Large Language Model by analyzing the distribution and order of exemplars in the... | False | True | ['model'] | {'min_threshold': {'type': '_empty', 'default': 7}, 'judge_llm': {'type': '_empty', 'default': None}} | ['llm', 'few_shot'] | ['text_classification', 'text_summarization'] |
| validmind.prompt_validation.Clarity | Clarity | Evaluates and scores the clarity of prompts in a Large Language Model based on specified guidelines.... | False | True | ['model'] | {'min_threshold': {'type': '_empty', 'default': 7}, 'judge_llm': {'type': '_empty', 'default': None}} | ['llm', 'zero_shot', 'few_shot'] | ['text_classification', 'text_summarization'] |
| validmind.prompt_validation.Conciseness | Conciseness | Analyzes and grades the conciseness of prompts provided to a Large Language Model.... | False | True | ['model'] | {'min_threshold': {'type': '_empty', 'default': 7}, 'judge_llm': {'type': '_empty', 'default': None}} | ['llm', 'zero_shot', 'few_shot'] | ['text_classification', 'text_summarization'] |
| validmind.prompt_validation.Delimitation | Delimitation | Evaluates the proper use of delimiters in prompts provided to Large Language Models.... | False | True | ['model'] | {'min_threshold': {'type': '_empty', 'default': 7}, 'judge_llm': {'type': '_empty', 'default': None}} | ['llm', 'zero_shot', 'few_shot'] | ['text_classification', 'text_summarization'] |
| validmind.prompt_validation.NegativeInstruction | Negative Instruction | Evaluates and grades the use of affirmative, proactive language over negative instructions in LLM prompts.... | False | True | ['model'] | {'min_threshold': {'type': '_empty', 'default': 7}, 'judge_llm': {'type': '_empty', 'default': None}} | ['llm', 'zero_shot', 'few_shot'] | ['text_classification', 'text_summarization'] |
| validmind.prompt_validation.Robustness | Robustness | Assesses the robustness of prompts provided to a Large Language Model under varying conditions and contexts. This test... | False | True | ['model', 'dataset'] | {'num_tests': {'type': '_empty', 'default': 10}, 'judge_llm': {'type': '_empty', 'default': None}} | ['llm', 'zero_shot', 'few_shot'] | ['text_classification', 'text_summarization'] |
| validmind.prompt_validation.Specificity | Specificity | Evaluates and scores the specificity of prompts provided to a Large Language Model (LLM), based on clarity, detail,... | False | True | ['model'] | {'min_threshold': {'type': '_empty', 'default': 7}, 'judge_llm': {'type': '_empty', 'default': None}} | ['llm', 'zero_shot', 'few_shot'] | ['text_classification', 'text_summarization'] |
| validmind.scorers.classification.AbsoluteError | Absolute Error | Calculates the absolute error per row for a classification model.... | False | True | ['model', 'dataset'] | {} | ['classification'] | ['classification'] |
| validmind.scorers.classification.BrierScore | Brier Score | Calculates the Brier score per row for a classification model.... | False | True | ['model', 'dataset'] | {} | ['classification'] | ['classification'] |
| validmind.scorers.classification.CalibrationError | Calibration Error | Calculates the calibration error per row for a classification model.... | False | True | ['model', 'dataset'] | {'n_bins': {'type': 'int', 'default': 10}} | ['classification'] | ['classification'] |
| validmind.scorers.classification.ClassBalance | Class Balance | Calculates the class balance score per row for a classification model.... | False | True | ['model', 'dataset'] | {} | ['classification'] | ['classification'] |
| validmind.scorers.classification.Confidence | Confidence | Calculates the prediction confidence per row for a classification model.... | False | True | ['model', 'dataset'] | {} | ['classification'] | ['classification'] |
| validmind.scorers.classification.Correctness | Correctness | Calculates the correctness per row for a classification model.... | False | True | ['model', 'dataset'] | {} | ['classification'] | ['classification'] |
| validmind.scorers.classification.LogLoss | Log Loss | Calculates the logarithmic loss per row for a classification model.... | False | True | ['model', 'dataset'] | {'eps': {'type': 'float', 'default': 1e-15}} | ['classification'] | ['classification'] |
| validmind.scorers.classification.OutlierScore | Outlier Score | Calculates outlier scores and isolation paths for a classification model.... | False | True | ['dataset'] | {'contamination': {'type': 'float', 'default': 0.1}} | ['classification', 'outlier', 'anomaly'] | ['classification'] |
| validmind.scorers.classification.ProbabilityError | Probability Error | Calculates the probability error per row for a classification model.... | False | True | ['model', 'dataset'] | {} | ['classification'] | ['classification'] |
| validmind.scorers.classification.Uncertainty | Uncertainty | Calculates the prediction uncertainty per row for a classification model.... | False | True | ['model', 'dataset'] | {} | ['classification'] | ['classification'] |
| validmind.stats.CorrelationAnalysis | Correlation Analysis | Performs comprehensive correlation analysis with significance testing for numerical features.... | False | True | ['dataset'] | {'columns': {'type': 'Optional', 'default': None}, 'method': {'type': 'str', 'default': 'pearson'}, 'significance_level': {'type': 'float', 'default': 0.05}, 'min_correlation': {'type': 'float', 'default': 0.1}} | ['tabular_data', 'statistics', 'correlation'] | ['classification', 'regression', 'clustering'] |
| validmind.stats.DescriptiveStats | Descriptive Stats | Provides comprehensive descriptive statistics for numerical features in a dataset.... | False | True | ['dataset'] | {'columns': {'type': 'Optional', 'default': None}, 'include_advanced': {'type': 'bool', 'default': True}, 'confidence_level': {'type': 'float', 'default': 0.95}} | ['tabular_data', 'statistics', 'data_quality'] | ['classification', 'regression', 'clustering'] |
| validmind.stats.NormalityTests | Normality Tests | Performs multiple normality tests on numerical features to assess distribution normality.... | False | True | ['dataset'] | {'columns': {'type': 'Optional', 'default': None}, 'alpha': {'type': 'float', 'default': 0.05}, 'tests': {'type': 'List', 'default': ['shapiro', 'anderson', 'kstest']}} | ['tabular_data', 'statistics', 'normality'] | ['classification', 'regression', 'clustering'] |
| validmind.stats.OutlierDetection | Outlier Detection | Detects outliers in numerical features using multiple statistical methods.... | False | True | ['dataset'] | {'columns': {'type': 'Optional', 'default': None}, 'methods': {'type': 'List', 'default': ['iqr', 'zscore', 'isolation_forest']}, 'iqr_threshold': {'type': 'float', 'default': 1.5}, 'zscore_threshold': {'type': 'float', 'default': 3.0}, 'contamination': {'type': 'float', 'default': 0.1}} | ['tabular_data', 'statistics', 'outliers'] | ['classification', 'regression', 'clustering'] |
| validmind.unit_metrics.classification.Accuracy | Accuracy | Calculates the accuracy of a model | False | False | ['dataset', 'model'] | {} | ['classification'] | ['classification'] |
| validmind.unit_metrics.classification.F1 | F1 | Calculates the F1 score for a classification model. | False | False | ['model', 'dataset'] | {} | ['classification'] | ['classification'] |
| validmind.unit_metrics.classification.Precision | Precision | Calculates the precision for a classification model. | False | False | ['model', 'dataset'] | {} | ['classification'] | ['classification'] |
| validmind.unit_metrics.classification.ROC_AUC | ROC AUC | Calculates the ROC AUC for a classification model. | False | False | ['model', 'dataset'] | {} | ['classification'] | ['classification'] |
| validmind.unit_metrics.classification.Recall | Recall | Calculates the recall for a classification model. | False | False | ['model', 'dataset'] | {} | ['classification'] | ['classification'] |
| validmind.unit_metrics.regression.AdjustedRSquaredScore | Adjusted R Squared Score | Calculates the adjusted R-squared score for a regression model. | False | False | ['model', 'dataset'] | {} | ['regression'] | ['regression'] |
| validmind.unit_metrics.regression.GiniCoefficient | Gini Coefficient | Calculates the Gini coefficient for a regression model. | False | False | ['dataset', 'model'] | {} | ['regression'] | ['regression'] |
| validmind.unit_metrics.regression.HuberLoss | Huber Loss | Calculates the Huber loss for a regression model. | False | False | ['model', 'dataset'] | {} | ['regression'] | ['regression'] |
| validmind.unit_metrics.regression.KolmogorovSmirnovStatistic | Kolmogorov Smirnov Statistic | Calculates the Kolmogorov-Smirnov statistic for a regression model. | False | False | ['dataset', 'model'] | {} | ['regression'] | ['regression'] |
| validmind.unit_metrics.regression.MeanAbsoluteError | Mean Absolute Error | Calculates the mean absolute error for a regression model. | False | False | ['model', 'dataset'] | {} | ['regression'] | ['regression'] |
| validmind.unit_metrics.regression.MeanAbsolutePercentageError | Mean Absolute Percentage Error | Calculates the mean absolute percentage error for a regression model. | False | False | ['model', 'dataset'] | {} | ['regression'] | ['regression'] |
| validmind.unit_metrics.regression.MeanBiasDeviation | Mean Bias Deviation | Calculates the mean bias deviation for a regression model. | False | False | ['model', 'dataset'] | {} | ['regression'] | ['regression'] |
| validmind.unit_metrics.regression.MeanSquaredError | Mean Squared Error | Calculates the mean squared error for a regression model. | False | False | ['model', 'dataset'] | {} | ['regression'] | ['regression'] |
| validmind.unit_metrics.regression.QuantileLoss | Quantile Loss | Calculates the quantile loss for a regression model. | False | False | ['model', 'dataset'] | {'quantile': {'type': '_empty', 'default': 0.5}} | ['regression'] | ['regression'] |
| validmind.unit_metrics.regression.RSquaredScore | R Squared Score | Calculates the R-squared score for a regression model. | False | False | ['model', 'dataset'] | {} | ['regression'] | ['regression'] |
| validmind.unit_metrics.regression.RootMeanSquaredError | Root Mean Squared Error | Calculates the root mean squared error for a regression model. | False | False | ['model', 'dataset'] | {} | ['regression'] | ['regression'] |
Retrieve the information for the currently installed version of ValidMind:
Name: validmind
Version: 2.13.9
Summary: ValidMind Library
Home-page:
Author:
Author-email: Andres Rodriguez <andres@validmind.ai>, Juan Martinez <juan@validmind.ai>, Anil Sorathiya <anil@validmind.ai>, Luis Pallares <luis@validmind.ai>, John Walz <john@validmind.ai>
License: DUAL LICENSE NOTICE
This software is dual-licensed under the GNU Affero General Public License
version 3 (AGPL-3.0) and the ValidMind Commercial License. Users may choose
to use the software under either of these licenses, subject to their
respective terms and conditions.
COMMERCIAL LICENSE INQUIRY
If your organization has policies regarding the use of software licensed
under the GNU Affero General Public License, or if you are interested in
applications beyond the scope of open-source licenses, a commercial license
may be more appropriate. The ValidMind Commercial License offers an
alternative to the AGPL, providing additional flexibility and benefits
suited for commercial use.
For organizations looking for a license that allows for proprietary
development, customization, or other uses not covered under the AGPL, the
ValidMind Commercial License is designed to meet these needs. This license
is particularly beneficial for those seeking to integrate ValidMind software
into their own products or services without the requirement to disclose
proprietary source code.
For inquiries regarding the licensing of this software, please contact
ValidMind at info@validmind.com.
GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU Affero General Public License is a free, copyleft license for
software and other kinds of works, specifically designed to ensure
cooperation with the community in the case of network server software.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
our General Public Licenses are intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
Developers that use our General Public Licenses protect your rights
with two steps: (1) assert copyright on the software, and (2) offer
you this License which gives you legal permission to copy, distribute
and/or modify the software.
A secondary benefit of defending all users' freedom is that
improvements made in alternate versions of the program, if they
receive widespread use, become available for other developers to
incorporate. Many developers of free software are heartened and
encouraged by the resulting cooperation. However, in the case of
software used on network servers, this result may fail to come about.
The GNU General Public License permits making a modified version and
letting the public access it on a server without ever releasing its
source code to the public.
The GNU Affero General Public License is designed specifically to
ensure that, in such cases, the modified source code becomes available
to the community. It requires the operator of a network server to
provide the source code of the modified version running there to the
users of that server. Therefore, public use of a modified version, on
a publicly accessible server, gives the public access to the source
code of the modified version.
An older license, called the Affero General Public License and
published by Affero, was designed to accomplish similar goals. This is
a different license, not a version of the Affero GPL, but Affero has
released a new version of the Affero GPL which permits relicensing under
this license.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU Affero General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Remote Network Interaction; Use with the GNU General Public License.
Notwithstanding any other provision of this License, if you modify the
Program, your modified version must prominently offer all users
interacting with it remotely through a computer network (if your version
supports such interaction) an opportunity to receive the Corresponding
Source of your version by providing access to the Corresponding Source
from a network server at no charge, through some standard or customary
means of facilitating copying of software. This Corresponding Source
shall include the Corresponding Source for any work covered by version 3
of the GNU General Public License that is incorporated pursuant to the
following paragraph.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the work with which it is combined will remain governed by version
3 of the GNU General Public License.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU Affero General Public License from time to time. Such new versions
will be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU Affero General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU Affero General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU Affero General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If your software can interact with users remotely through a computer
network, you should also make sure that it provides a way for users to
get its source. For example, if your program is a web application, its
interface could display a "Source" link that leads users to an archive
of the code. There are many ways you could offer source, and different
solutions will be better for different programs; see section 13 for the
specific requirements.
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU AGPL, see
<https://www.gnu.org/licenses/>.
Location: /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages
Requires: aiohttp, anywidget, beautifulsoup4, ipywidgets, kaleido, matplotlib, mistune, nest-asyncio, numpy, openai, pandas, plotly, polars, python-dotenv, requests, scikit-learn, seaborn, segno, tabulate, tiktoken, tqdm
Required-by:
Note: you may need to restart the kernel to use updated packages.
If the version returned is lower than the version indicated in our production open-source code, restart your notebook and run:
You may need to restart your kernel after running the upgrade package for changes to be applied.
In this first notebook, you learned how to:
Now that the ValidMind Library is connected to your model in the ValidMind Library with the correct template applied, we can go ahead and start the development process: 2 — Start the development process
Copyright © 2023-2026 ValidMind Inc. All rights reserved.
Refer to LICENSE for details.
SPDX-License-Identifier: AGPL-3.0 AND ValidMind Commercial