validmind 2.3.1__py3-none-any.whl → 2.3.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. validmind/__init__.py +2 -1
  2. validmind/__version__.py +1 -1
  3. validmind/datasets/regression/fred_timeseries.py +272 -0
  4. validmind/test_suites/__init__.py +0 -2
  5. validmind/tests/__init__.py +7 -7
  6. validmind/tests/__types__.py +180 -0
  7. validmind/tests/data_validation/SeasonalDecompose.py +68 -40
  8. validmind/tests/data_validation/TimeSeriesDescription.py +74 -0
  9. validmind/tests/data_validation/TimeSeriesDescriptiveStatistics.py +76 -0
  10. validmind/tests/data_validation/TimeSeriesHistogram.py +29 -45
  11. validmind/tests/data_validation/TimeSeriesOutliers.py +30 -41
  12. validmind/tests/decorator.py +12 -0
  13. validmind/tests/model_validation/ModelMetadataComparison.py +59 -0
  14. validmind/tests/model_validation/ModelPredictionResiduals.py +103 -0
  15. validmind/tests/model_validation/TimeSeriesPredictionWithCI.py +131 -0
  16. validmind/tests/model_validation/TimeSeriesPredictionsPlot.py +76 -0
  17. validmind/tests/model_validation/TimeSeriesR2SquareBySegments.py +103 -0
  18. validmind/tests/model_validation/sklearn/FeatureImportanceComparison.py +83 -0
  19. validmind/tests/model_validation/sklearn/PermutationFeatureImportance.py +1 -1
  20. validmind/tests/model_validation/sklearn/RegressionErrorsComparison.py +76 -0
  21. validmind/tests/model_validation/sklearn/RegressionR2SquareComparison.py +63 -0
  22. validmind/utils.py +34 -0
  23. {validmind-2.3.1.dist-info → validmind-2.3.5.dist-info}/METADATA +70 -36
  24. {validmind-2.3.1.dist-info → validmind-2.3.5.dist-info}/RECORD +28 -16
  25. /validmind/datasets/regression/datasets/{lending_club_loan_rates.csv → leanding_club_loan_rates.csv} +0 -0
  26. {validmind-2.3.1.dist-info → validmind-2.3.5.dist-info}/LICENSE +0 -0
  27. {validmind-2.3.1.dist-info → validmind-2.3.5.dist-info}/WHEEL +0 -0
  28. {validmind-2.3.1.dist-info → validmind-2.3.5.dist-info}/entry_points.txt +0 -0
validmind/__init__.py CHANGED
@@ -60,7 +60,7 @@ from .client import ( # noqa: E402
60
60
  run_documentation_tests,
61
61
  run_test_suite,
62
62
  )
63
- from .tests.decorator import metric, tags, tasks
63
+ from .tests.decorator import metric, tags, tasks, test
64
64
  from .utils import run_async # noqa: E402
65
65
 
66
66
 
@@ -112,6 +112,7 @@ __all__ = [ # noqa
112
112
  "run_test_suite",
113
113
  "tags",
114
114
  "tasks",
115
+ "test",
115
116
  "tests",
116
117
  "test_suites",
117
118
  "vm_models",
validmind/__version__.py CHANGED
@@ -1 +1 @@
1
- __version__ = "2.3.1"
1
+ __version__ = "2.3.5"
@@ -0,0 +1,272 @@
1
+ # Copyright © 2023-2024 ValidMind Inc. All rights reserved.
2
+ # See the LICENSE file in the root of this repository for details.
3
+ # SPDX-License-Identifier: AGPL-3.0 AND ValidMind Commercial
4
+
5
+ import os
6
+
7
+ import pandas as pd
8
+
9
+ current_path = os.path.dirname(os.path.abspath(__file__))
10
+ mortgage30us_path = os.path.join(current_path, "datasets", "fred", "MORTGAGE30US.csv")
11
+ fedfunds_path = os.path.join(current_path, "datasets", "fred", "FEDFUNDS.csv")
12
+ gs10_path = os.path.join(current_path, "datasets", "fred", "GS10.csv")
13
+ unrate_path = os.path.join(current_path, "datasets", "fred", "UNRATE.csv")
14
+
15
+ target_column = "MORTGAGE30US"
16
+ feature_columns = ["FEDFUNDS", "GS10", "UNRATE"]
17
+
18
+
19
+ def get_common_date_range(dfs):
20
+ start_dates = [df.index.min() for df in dfs]
21
+ end_dates = [df.index.max() for df in dfs]
22
+
23
+ common_start_date = max(start_dates)
24
+ common_end_date = min(end_dates)
25
+
26
+ return common_start_date, common_end_date
27
+
28
+
29
+ def align_date_range(dfs, start_date, end_date):
30
+ return [df.loc[start_date:end_date] for df in dfs]
31
+
32
+
33
+ def load_data():
34
+ mortgage30us = pd.read_csv(
35
+ mortgage30us_path, parse_dates=["DATE"], index_col="DATE"
36
+ )
37
+ fedfunds = pd.read_csv(fedfunds_path, parse_dates=["DATE"], index_col="DATE")
38
+ gs10 = pd.read_csv(gs10_path, parse_dates=["DATE"], index_col="DATE")
39
+ unrate = pd.read_csv(unrate_path, parse_dates=["DATE"], index_col="DATE")
40
+
41
+ # Resample mortgage30us to monthly frequency
42
+ mortgage30us = mortgage30us.resample("MS").last()
43
+
44
+ # Get the common date range
45
+ common_start_date, common_end_date = get_common_date_range(
46
+ [mortgage30us, fedfunds, gs10, unrate]
47
+ )
48
+
49
+ # Align the date range for all dataframes
50
+ mortgage30us, fedfunds, gs10, unrate = align_date_range(
51
+ [mortgage30us, fedfunds, gs10, unrate], common_start_date, common_end_date
52
+ )
53
+
54
+ # Combine into a single DataFrame
55
+ df = pd.concat([mortgage30us, fedfunds, gs10, unrate], axis=1, join="inner")
56
+ df.columns = [target_column] + feature_columns
57
+
58
+ return df
59
+
60
+
61
+ # Convert data back to levels
62
+ def convert_to_levels(diff_df, original_df, target_column):
63
+ """
64
+ Convert differenced data back to original levels.
65
+ """
66
+ previous_values = original_df[target_column].shift(1).dropna()
67
+ levels_df = diff_df.add(previous_values, axis=0)
68
+ return levels_df
69
+
70
+
71
+ def get_demo_test_config(test_suite=None):
72
+
73
+ default_config = {}
74
+
75
+ default_config["validmind.data_validation.TimeSeriesDescription"] = {
76
+ "inputs": {
77
+ "dataset": "raw_ds",
78
+ }
79
+ }
80
+ default_config["validmind.data_validation.TimeSeriesLinePlot"] = {
81
+ "inputs": {
82
+ "dataset": "raw_ds",
83
+ }
84
+ }
85
+ default_config["validmind.data_validation.TimeSeriesMissingValues"] = {
86
+ "inputs": {
87
+ "dataset": "raw_ds",
88
+ }
89
+ }
90
+ default_config["validmind.data_validation.SeasonalDecompose"] = {
91
+ "inputs": {
92
+ "dataset": "raw_ds",
93
+ }
94
+ }
95
+ default_config[
96
+ "validmind.data_validation.TimeSeriesDescriptiveStatistics:train_diff_data"
97
+ ] = {
98
+ "inputs": {
99
+ "dataset": "train_diff_ds",
100
+ }
101
+ }
102
+ default_config[
103
+ "validmind.data_validation.TimeSeriesDescriptiveStatistics:test_diff_data"
104
+ ] = {
105
+ "inputs": {
106
+ "dataset": "test_diff_ds",
107
+ }
108
+ }
109
+ default_config["validmind.data_validation.TimeSeriesOutliers:train_diff_data"] = {
110
+ "inputs": {
111
+ "dataset": "train_diff_ds",
112
+ },
113
+ "params": {"zscore_threshold": 4},
114
+ }
115
+ default_config["validmind.data_validation.TimeSeriesOutliers:test_diff_data"] = {
116
+ "inputs": {
117
+ "dataset": "test_diff_ds",
118
+ },
119
+ "params": {"zscore_threshold": 4},
120
+ }
121
+ default_config["validmind.data_validation.TimeSeriesHistogram:train_diff_data"] = {
122
+ "inputs": {
123
+ "dataset": "train_diff_ds",
124
+ },
125
+ "params": {"nbins": 100},
126
+ }
127
+ default_config["validmind.data_validation.TimeSeriesHistogram:test_diff_data"] = {
128
+ "inputs": {
129
+ "dataset": "test_diff_ds",
130
+ },
131
+ "params": {"nbins": 100},
132
+ }
133
+ default_config["validmind.data_validation.DatasetSplit"] = {
134
+ "inputs": {
135
+ "datasets": ["train_diff_ds", "test_diff_ds"],
136
+ }
137
+ }
138
+ default_config["validmind.model_validation.ModelMetadataComparison"] = {
139
+ "inputs": {
140
+ "models": ["random_forests_model", "gradient_boosting_model"],
141
+ }
142
+ }
143
+ default_config[
144
+ "validmind.model_validation.sklearn.RegressionErrorsComparison:train_data"
145
+ ] = {
146
+ "inputs": {
147
+ "datasets": ["train_ds", "train_ds"],
148
+ "models": ["random_forests_model", "gradient_boosting_model"],
149
+ }
150
+ }
151
+ default_config[
152
+ "validmind.model_validation.sklearn.RegressionErrorsComparison:test_data"
153
+ ] = {
154
+ "inputs": {
155
+ "datasets": ["test_ds", "test_ds"],
156
+ "models": ["random_forests_model", "gradient_boosting_model"],
157
+ }
158
+ }
159
+ default_config[
160
+ "validmind.model_validation.sklearn.RegressionR2SquareComparison:train_data"
161
+ ] = {
162
+ "inputs": {
163
+ "datasets": ["train_ds", "train_ds"],
164
+ "models": ["random_forests_model", "gradient_boosting_model"],
165
+ }
166
+ }
167
+ default_config[
168
+ "validmind.model_validation.sklearn.RegressionR2SquareComparison:test_data"
169
+ ] = {
170
+ "inputs": {
171
+ "datasets": ["test_ds", "test_ds"],
172
+ "models": ["random_forests_model", "gradient_boosting_model"],
173
+ }
174
+ }
175
+ default_config[
176
+ "validmind.model_validation.TimeSeriesR2SquareBySegments:train_data"
177
+ ] = {
178
+ "inputs": {
179
+ "datasets": ["train_ds", "train_ds"],
180
+ "models": ["random_forests_model", "gradient_boosting_model"],
181
+ }
182
+ }
183
+ default_config[
184
+ "validmind.model_validation.TimeSeriesR2SquareBySegments:test_data"
185
+ ] = {
186
+ "inputs": {
187
+ "datasets": ["test_ds", "test_ds"],
188
+ "models": ["random_forests_model", "gradient_boosting_model"],
189
+ },
190
+ "params": {
191
+ "segments": {
192
+ "start_date": ["2012-11-01", "2018-02-01"],
193
+ "end_date": ["2018-01-01", "2023-03-01"],
194
+ }
195
+ },
196
+ }
197
+ default_config[
198
+ "validmind.model_validation.TimeSeriesPredictionsPlot:train_data"
199
+ ] = {
200
+ "inputs": {
201
+ "datasets": ["train_ds", "train_ds"],
202
+ "models": ["random_forests_model", "gradient_boosting_model"],
203
+ }
204
+ }
205
+ default_config["validmind.model_validation.TimeSeriesPredictionsPlot:test_data"] = {
206
+ "inputs": {
207
+ "datasets": ["test_ds", "test_ds"],
208
+ "models": ["random_forests_model", "gradient_boosting_model"],
209
+ }
210
+ }
211
+ default_config[
212
+ "validmind.model_validation.TimeSeriesPredictionWithCI:random_forests_model"
213
+ ] = {
214
+ "inputs": {
215
+ "dataset": "test_ds",
216
+ "model": "random_forests_model",
217
+ }
218
+ }
219
+ default_config[
220
+ "validmind.model_validation.TimeSeriesPredictionWithCI:gradient_boosting_model"
221
+ ] = {
222
+ "inputs": {
223
+ "dataset": "test_ds",
224
+ "model": "gradient_boosting_model",
225
+ }
226
+ }
227
+ default_config["validmind.model_validation.ModelPredictionResiduals:train_data"] = {
228
+ "inputs": {
229
+ "datasets": ["train_ds", "train_ds"],
230
+ "models": ["random_forests_model", "gradient_boosting_model"],
231
+ }
232
+ }
233
+ default_config["validmind.model_validation.ModelPredictionResiduals:test_data"] = {
234
+ "inputs": {
235
+ "datasets": ["test_ds", "test_ds"],
236
+ "models": ["random_forests_model", "gradient_boosting_model"],
237
+ }
238
+ }
239
+ default_config[
240
+ "validmind.model_validation.sklearn.FeatureImportanceComparison:train_data"
241
+ ] = {
242
+ "inputs": {
243
+ "datasets": ["train_ds", "train_ds"],
244
+ "models": ["random_forests_model", "gradient_boosting_model"],
245
+ }
246
+ }
247
+ default_config[
248
+ "validmind.model_validation.sklearn.FeatureImportanceComparison:test_data"
249
+ ] = {
250
+ "inputs": {
251
+ "datasets": ["test_ds", "test_ds"],
252
+ "models": ["random_forests_model", "gradient_boosting_model"],
253
+ }
254
+ }
255
+ default_config[
256
+ "validmind.model_validation.sklearn.PermutationFeatureImportance:random_forests_model"
257
+ ] = {
258
+ "inputs": {
259
+ "dataset": "test_ds",
260
+ "model": "random_forests_model",
261
+ }
262
+ }
263
+ default_config[
264
+ "validmind.model_validation.sklearn.PermutationFeatureImportance:gradient_boosting_model"
265
+ ] = {
266
+ "inputs": {
267
+ "dataset": "test_ds",
268
+ "model": "gradient_boosting_model",
269
+ }
270
+ }
271
+
272
+ return default_config
@@ -182,7 +182,6 @@ def describe_suite(test_suite_id: str, verbose=False):
182
182
  "Test Suite Section": "",
183
183
  "Test ID": item,
184
184
  "Test Name": test.__name__,
185
- "Test Type": test.test_type,
186
185
  }
187
186
  )
188
187
  elif isinstance(item, dict):
@@ -195,7 +194,6 @@ def describe_suite(test_suite_id: str, verbose=False):
195
194
  "Test Suite Section": item["section_id"],
196
195
  "Test ID": test_id,
197
196
  "Test Name": test_id_to_name(test_id),
198
- "Test Type": test.test_type,
199
197
  }
200
198
  )
201
199
  else:
@@ -30,7 +30,9 @@ from ..utils import (
30
30
  test_id_to_name,
31
31
  )
32
32
  from ..vm_models import TestContext, TestInput
33
- from .decorator import metric, tags, tasks
33
+ from .__types__ import TestID
34
+ from .decorator import tags, tasks
35
+ from .decorator import test as test_decorator
34
36
  from .test_providers import LocalTestProvider, TestProvider
35
37
 
36
38
  logger = get_logger(__name__)
@@ -84,7 +86,6 @@ def _pretty_list_tests(tests, truncate=True):
84
86
  {
85
87
  "ID": test_id,
86
88
  "Name": test_id_to_name(test_id),
87
- "Test Type": __test_classes[test_id].test_type,
88
89
  "Description": _test_description(__test_classes[test_id], truncate),
89
90
  "Required Inputs": __test_classes[test_id].required_inputs,
90
91
  "Params": __test_classes[test_id].default_params or {},
@@ -340,7 +341,7 @@ def load_test(test_id: str, reload=False):
340
341
  # if its a function, we decorate it and then load the class
341
342
  # TODO: simplify this as we move towards all functional metrics
342
343
  # "_" is used here so it doesn't conflict with other test ids
343
- metric("_")(test)
344
+ test_decorator("_")(test)
344
345
  test = __custom_tests["_"]
345
346
 
346
347
  test.test_id = f"{test_id}:{result_id}" if result_id else test_id
@@ -348,7 +349,7 @@ def load_test(test_id: str, reload=False):
348
349
  return test
349
350
 
350
351
 
351
- def describe_test(test_id: str = None, raw: bool = False, show: bool = True):
352
+ def describe_test(test_id: TestID = None, raw: bool = False, show: bool = True):
352
353
  """Get or show details about the test
353
354
 
354
355
  This function can be used to see test details including the test name, description,
@@ -365,7 +366,6 @@ def describe_test(test_id: str = None, raw: bool = False, show: bool = True):
365
366
  details = {
366
367
  "ID": test_id,
367
368
  "Name": test_id_to_name(test_id),
368
- "Test Type": test.test_type,
369
369
  "Required Inputs": test.required_inputs,
370
370
  "Params": test.default_params or {},
371
371
  "Description": inspect.getdoc(test).strip() or "",
@@ -407,7 +407,7 @@ def describe_test(test_id: str = None, raw: bool = False, show: bool = True):
407
407
 
408
408
 
409
409
  def run_test(
410
- test_id: str = None,
410
+ test_id: TestID = None,
411
411
  name: str = None,
412
412
  unit_metrics: list = None,
413
413
  params: dict = None,
@@ -451,7 +451,7 @@ def run_test(
451
451
 
452
452
  if unit_metrics:
453
453
  metric_id_name = "".join(word[0].upper() + word[1:] for word in name.split())
454
- test_id = f"validmind.composite_metric.{metric_id_name}"
454
+ test_id = f"validmind.composite_test.{metric_id_name}"
455
455
 
456
456
  error, TestClass = load_composite_metric(
457
457
  unit_metrics=unit_metrics, metric_name=metric_id_name
@@ -0,0 +1,180 @@
1
+ # Copyright © 2023-2024 ValidMind Inc. All rights reserved.
2
+ # See the LICENSE file in the root of this repository for details.
3
+ # SPDX-License-Identifier: AGPL-3.0 AND ValidMind Commercial
4
+
5
+ """Literal types for test IDs.
6
+
7
+ This module is auto-generated by running `make generate-test-id-types`.
8
+ Should not be modified manually.
9
+ """
10
+
11
+ from typing import Literal
12
+
13
+ TestID = Literal[
14
+ "validmind.prompt_validation.Bias",
15
+ "validmind.prompt_validation.Clarity",
16
+ "validmind.prompt_validation.Specificity",
17
+ "validmind.prompt_validation.Robustness",
18
+ "validmind.prompt_validation.NegativeInstruction",
19
+ "validmind.prompt_validation.Conciseness",
20
+ "validmind.prompt_validation.Delimitation",
21
+ "validmind.model_validation.ModelPredictionResiduals",
22
+ "validmind.model_validation.BertScore",
23
+ "validmind.model_validation.TimeSeriesPredictionsPlot",
24
+ "validmind.model_validation.RegardScore",
25
+ "validmind.model_validation.BleuScore",
26
+ "validmind.model_validation.TimeSeriesPredictionWithCI",
27
+ "validmind.model_validation.RegressionResidualsPlot",
28
+ "validmind.model_validation.FeaturesAUC",
29
+ "validmind.model_validation.ContextualRecall",
30
+ "validmind.model_validation.MeteorScore",
31
+ "validmind.model_validation.RougeScore",
32
+ "validmind.model_validation.ModelMetadata",
33
+ "validmind.model_validation.ClusterSizeDistribution",
34
+ "validmind.model_validation.TokenDisparity",
35
+ "validmind.model_validation.ToxicityScore",
36
+ "validmind.model_validation.ModelMetadataComparison",
37
+ "validmind.model_validation.TimeSeriesR2SquareBySegments",
38
+ "validmind.model_validation.embeddings.CosineSimilarityComparison",
39
+ "validmind.model_validation.embeddings.EmbeddingsVisualization2D",
40
+ "validmind.model_validation.embeddings.StabilityAnalysisRandomNoise",
41
+ "validmind.model_validation.embeddings.TSNEComponentsPairwisePlots",
42
+ "validmind.model_validation.embeddings.CosineSimilarityDistribution",
43
+ "validmind.model_validation.embeddings.PCAComponentsPairwisePlots",
44
+ "validmind.model_validation.embeddings.CosineSimilarityHeatmap",
45
+ "validmind.model_validation.embeddings.StabilityAnalysisTranslation",
46
+ "validmind.model_validation.embeddings.EuclideanDistanceComparison",
47
+ "validmind.model_validation.embeddings.ClusterDistribution",
48
+ "validmind.model_validation.embeddings.EuclideanDistanceHeatmap",
49
+ "validmind.model_validation.embeddings.StabilityAnalysis",
50
+ "validmind.model_validation.embeddings.StabilityAnalysisKeyword",
51
+ "validmind.model_validation.embeddings.StabilityAnalysisSynonyms",
52
+ "validmind.model_validation.embeddings.DescriptiveAnalytics",
53
+ "validmind.model_validation.ragas.ContextEntityRecall",
54
+ "validmind.model_validation.ragas.Faithfulness",
55
+ "validmind.model_validation.ragas.AspectCritique",
56
+ "validmind.model_validation.ragas.AnswerSimilarity",
57
+ "validmind.model_validation.ragas.AnswerCorrectness",
58
+ "validmind.model_validation.ragas.ContextRecall",
59
+ "validmind.model_validation.ragas.ContextRelevancy",
60
+ "validmind.model_validation.ragas.ContextPrecision",
61
+ "validmind.model_validation.ragas.AnswerRelevance",
62
+ "validmind.model_validation.sklearn.RegressionModelsPerformanceComparison",
63
+ "validmind.model_validation.sklearn.AdjustedMutualInformation",
64
+ "validmind.model_validation.sklearn.SilhouettePlot",
65
+ "validmind.model_validation.sklearn.RobustnessDiagnosis",
66
+ "validmind.model_validation.sklearn.AdjustedRandIndex",
67
+ "validmind.model_validation.sklearn.SHAPGlobalImportance",
68
+ "validmind.model_validation.sklearn.ConfusionMatrix",
69
+ "validmind.model_validation.sklearn.HomogeneityScore",
70
+ "validmind.model_validation.sklearn.CompletenessScore",
71
+ "validmind.model_validation.sklearn.OverfitDiagnosis",
72
+ "validmind.model_validation.sklearn.ClusterPerformanceMetrics",
73
+ "validmind.model_validation.sklearn.PermutationFeatureImportance",
74
+ "validmind.model_validation.sklearn.FowlkesMallowsScore",
75
+ "validmind.model_validation.sklearn.MinimumROCAUCScore",
76
+ "validmind.model_validation.sklearn.ClusterCosineSimilarity",
77
+ "validmind.model_validation.sklearn.PrecisionRecallCurve",
78
+ "validmind.model_validation.sklearn.ClassifierPerformance",
79
+ "validmind.model_validation.sklearn.VMeasure",
80
+ "validmind.model_validation.sklearn.MinimumF1Score",
81
+ "validmind.model_validation.sklearn.ROCCurve",
82
+ "validmind.model_validation.sklearn.RegressionR2Square",
83
+ "validmind.model_validation.sklearn.RegressionErrors",
84
+ "validmind.model_validation.sklearn.ClusterPerformance",
85
+ "validmind.model_validation.sklearn.FeatureImportanceComparison",
86
+ "validmind.model_validation.sklearn.TrainingTestDegradation",
87
+ "validmind.model_validation.sklearn.RegressionErrorsComparison",
88
+ "validmind.model_validation.sklearn.HyperParametersTuning",
89
+ "validmind.model_validation.sklearn.KMeansClustersOptimization",
90
+ "validmind.model_validation.sklearn.ModelsPerformanceComparison",
91
+ "validmind.model_validation.sklearn.WeakspotsDiagnosis",
92
+ "validmind.model_validation.sklearn.RegressionR2SquareComparison",
93
+ "validmind.model_validation.sklearn.PopulationStabilityIndex",
94
+ "validmind.model_validation.sklearn.MinimumAccuracy",
95
+ "validmind.model_validation.statsmodels.RegressionModelsCoeffs",
96
+ "validmind.model_validation.statsmodels.BoxPierce",
97
+ "validmind.model_validation.statsmodels.RegressionCoeffsPlot",
98
+ "validmind.model_validation.statsmodels.RegressionModelSensitivityPlot",
99
+ "validmind.model_validation.statsmodels.RegressionModelForecastPlotLevels",
100
+ "validmind.model_validation.statsmodels.ScorecardHistogram",
101
+ "validmind.model_validation.statsmodels.LJungBox",
102
+ "validmind.model_validation.statsmodels.JarqueBera",
103
+ "validmind.model_validation.statsmodels.KolmogorovSmirnov",
104
+ "validmind.model_validation.statsmodels.ShapiroWilk",
105
+ "validmind.model_validation.statsmodels.CumulativePredictionProbabilities",
106
+ "validmind.model_validation.statsmodels.RegressionFeatureSignificance",
107
+ "validmind.model_validation.statsmodels.RegressionModelSummary",
108
+ "validmind.model_validation.statsmodels.Lilliefors",
109
+ "validmind.model_validation.statsmodels.RunsTest",
110
+ "validmind.model_validation.statsmodels.RegressionPermutationFeatureImportance",
111
+ "validmind.model_validation.statsmodels.PredictionProbabilitiesHistogram",
112
+ "validmind.model_validation.statsmodels.AutoARIMA",
113
+ "validmind.model_validation.statsmodels.GINITable",
114
+ "validmind.model_validation.statsmodels.RegressionModelForecastPlot",
115
+ "validmind.model_validation.statsmodels.DurbinWatsonTest",
116
+ "validmind.data_validation.MissingValuesRisk",
117
+ "validmind.data_validation.IQROutliersTable",
118
+ "validmind.data_validation.BivariateFeaturesBarPlots",
119
+ "validmind.data_validation.Skewness",
120
+ "validmind.data_validation.Duplicates",
121
+ "validmind.data_validation.MissingValuesBarPlot",
122
+ "validmind.data_validation.DatasetDescription",
123
+ "validmind.data_validation.ZivotAndrewsArch",
124
+ "validmind.data_validation.ScatterPlot",
125
+ "validmind.data_validation.TimeSeriesOutliers",
126
+ "validmind.data_validation.TabularCategoricalBarPlots",
127
+ "validmind.data_validation.AutoStationarity",
128
+ "validmind.data_validation.DescriptiveStatistics",
129
+ "validmind.data_validation.TimeSeriesDescription",
130
+ "validmind.data_validation.ANOVAOneWayTable",
131
+ "validmind.data_validation.TargetRateBarPlots",
132
+ "validmind.data_validation.PearsonCorrelationMatrix",
133
+ "validmind.data_validation.FeatureTargetCorrelationPlot",
134
+ "validmind.data_validation.TabularNumericalHistograms",
135
+ "validmind.data_validation.IsolationForestOutliers",
136
+ "validmind.data_validation.ChiSquaredFeaturesTable",
137
+ "validmind.data_validation.HighCardinality",
138
+ "validmind.data_validation.MissingValues",
139
+ "validmind.data_validation.PhillipsPerronArch",
140
+ "validmind.data_validation.RollingStatsPlot",
141
+ "validmind.data_validation.TabularDescriptionTables",
142
+ "validmind.data_validation.AutoMA",
143
+ "validmind.data_validation.UniqueRows",
144
+ "validmind.data_validation.TooManyZeroValues",
145
+ "validmind.data_validation.HighPearsonCorrelation",
146
+ "validmind.data_validation.ACFandPACFPlot",
147
+ "validmind.data_validation.BivariateHistograms",
148
+ "validmind.data_validation.WOEBinTable",
149
+ "validmind.data_validation.HeatmapFeatureCorrelations",
150
+ "validmind.data_validation.TimeSeriesFrequency",
151
+ "validmind.data_validation.DatasetSplit",
152
+ "validmind.data_validation.SpreadPlot",
153
+ "validmind.data_validation.TimeSeriesLinePlot",
154
+ "validmind.data_validation.KPSS",
155
+ "validmind.data_validation.AutoSeasonality",
156
+ "validmind.data_validation.BivariateScatterPlots",
157
+ "validmind.data_validation.EngleGrangerCoint",
158
+ "validmind.data_validation.TimeSeriesMissingValues",
159
+ "validmind.data_validation.TimeSeriesHistogram",
160
+ "validmind.data_validation.LaggedCorrelationHeatmap",
161
+ "validmind.data_validation.SeasonalDecompose",
162
+ "validmind.data_validation.WOEBinPlots",
163
+ "validmind.data_validation.ClassImbalance",
164
+ "validmind.data_validation.IQROutliersBarPlot",
165
+ "validmind.data_validation.DFGLSArch",
166
+ "validmind.data_validation.TimeSeriesDescriptiveStatistics",
167
+ "validmind.data_validation.AutoAR",
168
+ "validmind.data_validation.TabularDateTimeHistograms",
169
+ "validmind.data_validation.ADF",
170
+ "validmind.data_validation.nlp.Toxicity",
171
+ "validmind.data_validation.nlp.PolarityAndSubjectivity",
172
+ "validmind.data_validation.nlp.Punctuations",
173
+ "validmind.data_validation.nlp.Sentiment",
174
+ "validmind.data_validation.nlp.CommonWords",
175
+ "validmind.data_validation.nlp.Hashtags",
176
+ "validmind.data_validation.nlp.LanguageDetection",
177
+ "validmind.data_validation.nlp.Mentions",
178
+ "validmind.data_validation.nlp.TextDescription",
179
+ "validmind.data_validation.nlp.StopWords",
180
+ ]