validmind 2.5.15__py3-none-any.whl → 2.5.19__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 (52) hide show
  1. validmind/__version__.py +1 -1
  2. validmind/ai/test_descriptions.py +54 -112
  3. validmind/ai/test_result_description/config.yaml +29 -0
  4. validmind/ai/test_result_description/context.py +73 -0
  5. validmind/ai/test_result_description/image_processing.py +124 -0
  6. validmind/ai/test_result_description/system.jinja +39 -0
  7. validmind/ai/test_result_description/user.jinja +25 -0
  8. validmind/datasets/credit_risk/__init__.py +1 -0
  9. validmind/datasets/credit_risk/datasets/lending_club_biased.csv.gz +0 -0
  10. validmind/datasets/credit_risk/lending_club_bias.py +142 -0
  11. validmind/errors.py +17 -0
  12. validmind/tests/__types__.py +19 -10
  13. validmind/tests/{model_validation/statsmodels → data_validation}/BoxPierce.py +20 -24
  14. validmind/tests/data_validation/ChiSquaredFeaturesTable.py +4 -1
  15. validmind/tests/{model_validation/statsmodels → data_validation}/JarqueBera.py +22 -30
  16. validmind/tests/{model_validation/statsmodels → data_validation}/LJungBox.py +23 -27
  17. validmind/tests/data_validation/ProtectedClassesCombination.py +205 -0
  18. validmind/tests/data_validation/ProtectedClassesDescription.py +130 -0
  19. validmind/tests/data_validation/ProtectedClassesDisparity.py +141 -0
  20. validmind/tests/data_validation/ProtectedClassesThresholdOptimizer.py +180 -0
  21. validmind/tests/{model_validation/statsmodels → data_validation}/RunsTest.py +17 -20
  22. validmind/tests/{model_validation/statsmodels → data_validation}/ShapiroWilk.py +20 -22
  23. validmind/tests/data_validation/nlp/Hashtags.py +15 -20
  24. validmind/tests/data_validation/nlp/TextDescription.py +3 -1
  25. validmind/tests/load.py +21 -5
  26. validmind/tests/model_validation/ContextualRecall.py +3 -0
  27. validmind/tests/model_validation/ragas/AnswerCorrectness.py +12 -5
  28. validmind/tests/model_validation/ragas/AnswerRelevance.py +12 -6
  29. validmind/tests/model_validation/ragas/AnswerSimilarity.py +12 -6
  30. validmind/tests/model_validation/ragas/AspectCritique.py +22 -17
  31. validmind/tests/model_validation/ragas/ContextEntityRecall.py +12 -6
  32. validmind/tests/model_validation/ragas/ContextPrecision.py +12 -6
  33. validmind/tests/model_validation/ragas/ContextRecall.py +12 -6
  34. validmind/tests/model_validation/ragas/ContextUtilization.py +161 -0
  35. validmind/tests/model_validation/ragas/Faithfulness.py +12 -6
  36. validmind/tests/model_validation/ragas/NoiseSensitivity.py +158 -0
  37. validmind/tests/model_validation/sklearn/FeatureImportance.py +3 -3
  38. validmind/tests/model_validation/sklearn/PermutationFeatureImportance.py +1 -1
  39. validmind/tests/model_validation/sklearn/RegressionR2Square.py +1 -2
  40. validmind/tests/model_validation/sklearn/SHAPGlobalImportance.py +59 -0
  41. validmind/tests/model_validation/statsmodels/DurbinWatsonTest.py +40 -20
  42. validmind/tests/model_validation/statsmodels/PredictionProbabilitiesHistogram.py +0 -1
  43. validmind/tests/model_validation/statsmodels/RegressionCoeffs.py +1 -1
  44. validmind/utils.py +4 -0
  45. validmind/vm_models/test/metric.py +1 -0
  46. validmind/vm_models/test/result_wrapper.py +50 -26
  47. validmind/vm_models/test/threshold_test.py +1 -0
  48. {validmind-2.5.15.dist-info → validmind-2.5.19.dist-info}/METADATA +4 -3
  49. {validmind-2.5.15.dist-info → validmind-2.5.19.dist-info}/RECORD +52 -39
  50. {validmind-2.5.15.dist-info → validmind-2.5.19.dist-info}/WHEEL +1 -1
  51. {validmind-2.5.15.dist-info → validmind-2.5.19.dist-info}/LICENSE +0 -0
  52. {validmind-2.5.15.dist-info → validmind-2.5.19.dist-info}/entry_points.txt +0 -0
@@ -78,6 +78,7 @@ class SHAPGlobalImportance(Metric):
78
78
  default_params = {
79
79
  "kernel_explainer_samples": 10,
80
80
  "tree_or_linear_explainer_samples": 200,
81
+ "class_of_interest": None,
81
82
  }
82
83
 
83
84
  def _generate_shap_plot(self, type_, shap_values, x_test):
@@ -107,6 +108,7 @@ class SHAPGlobalImportance(Metric):
107
108
  shap_values / max_shap_value * 100
108
109
  ) # scaling factor to make the top feature 100%
109
110
  summary_plot_extra_args = {"plot_type": "bar"}
111
+
110
112
  shap.summary_plot(
111
113
  shap_values, x_test, show=False, **summary_plot_extra_args
112
114
  )
@@ -192,6 +194,10 @@ class SHAPGlobalImportance(Metric):
192
194
 
193
195
  shap_values = explainer.shap_values(shap_sample)
194
196
 
197
+ # Select the SHAP values for the specified class (classification) or for the regression output.
198
+ class_of_interest = self.params["class_of_interest"]
199
+ shap_values = _select_shap_values(shap_values, class_of_interest)
200
+
195
201
  figures = [
196
202
  self._generate_shap_plot("mean", shap_values, shap_sample),
197
203
  self._generate_shap_plot("summary", shap_values, shap_sample),
@@ -214,3 +220,56 @@ class SHAPGlobalImportance(Metric):
214
220
  for fig_num, type_ in enumerate(["mean", "summary"], start=1):
215
221
  assert isinstance(self.result.figures[fig_num - 1], Figure)
216
222
  assert self.result.figures[fig_num - 1].metadata["type"] == type_
223
+
224
+
225
+ def _select_shap_values(shap_values, class_of_interest=None):
226
+ """
227
+ Selects SHAP values for binary or multiclass classification. For regression models,
228
+ returns the SHAP values directly as there are no classes.
229
+
230
+ Parameters:
231
+ -----------
232
+ shap_values : list or numpy.ndarray
233
+ The SHAP values returned by the SHAP explainer. For multiclass classification,
234
+ this will be a list where each element corresponds to a class. For regression,
235
+ this will be a single array of SHAP values.
236
+
237
+ class_of_interest : int, optional
238
+ The class index for which to retrieve SHAP values. If None (default), the function
239
+ will assume binary classification and use class 1 by default.
240
+
241
+ Returns:
242
+ --------
243
+ numpy.ndarray
244
+ The SHAP values for the specified class (classification) or for the regression output.
245
+
246
+ Raises:
247
+ -------
248
+ ValueError
249
+ If class_of_interest is specified and is out of bounds for the number of classes.
250
+ """
251
+ # Check if we are dealing with a multiclass classification
252
+ if isinstance(shap_values, list):
253
+ num_classes = len(shap_values)
254
+
255
+ # Default to class 1 for binary classification
256
+ if num_classes == 2 and class_of_interest is None:
257
+ logger.info(
258
+ "Binary classification detected: using SHAP values for class 1 (positive class)."
259
+ )
260
+ return shap_values[1]
261
+ else:
262
+ # Multiclass classification: use the specified class_of_interest
263
+ if class_of_interest is not None and 0 <= class_of_interest < num_classes:
264
+ logger.info(
265
+ f"Multiclass classification: using SHAP values for class {class_of_interest}."
266
+ )
267
+ return shap_values[class_of_interest]
268
+ else:
269
+ raise ValueError(
270
+ f"Invalid class_of_interest: {class_of_interest}. Must be between 0 and {num_classes - 1}."
271
+ )
272
+ else:
273
+ # For regression, return the SHAP values as they are
274
+ logger.info("Regression model detected: returning SHAP values as-is.")
275
+ return shap_values
@@ -2,15 +2,15 @@
2
2
  # See the LICENSE file in the root of this repository for details.
3
3
  # SPDX-License-Identifier: AGPL-3.0 AND ValidMind Commercial
4
4
 
5
- from dataclasses import dataclass
6
-
5
+ import pandas as pd
7
6
  from statsmodels.stats.stattools import durbin_watson
8
7
 
9
- from validmind.vm_models import Metric
8
+ from validmind import tags, tasks
10
9
 
11
10
 
12
- @dataclass
13
- class DurbinWatsonTest(Metric):
11
+ @tasks("regression")
12
+ @tags("time_series_data", "forecasting", "statistical_test", "statsmodels")
13
+ def DurbinWatsonTest(dataset, model, threshold=[1.5, 2.5]):
14
14
  """
15
15
  Assesses autocorrelation in time series data features using the Durbin-Watson statistic.
16
16
 
@@ -49,18 +49,38 @@ class DurbinWatsonTest(Metric):
49
49
  to detect higher-order autocorrelation.
50
50
  """
51
51
 
52
- name = "durbin_watson"
53
- required_inputs = ["dataset"]
54
- tasks = ["regression"]
55
- tags = ["time_series_data", "forecasting", "statistical_test", "statsmodels"]
56
-
57
- def run(self):
58
- """
59
- Calculates DB for each of the dataset features
60
- """
61
- x_train = self.inputs.dataset.df
62
- dw_values = {}
63
- for col in x_train.columns:
64
- dw_values[col] = durbin_watson(x_train[col].values)
65
-
66
- return self.cache_results(dw_values)
52
+ # Validate threshold values
53
+ if not (0 < threshold[0] < threshold[1] < 4):
54
+ raise ValueError(
55
+ "Invalid threshold. It should be in the form [a, b] where 0 < a < b < 4."
56
+ )
57
+
58
+ # Check if threshold values are around 2
59
+ if abs(2 - threshold[0]) > 1 or abs(2 - threshold[1]) > 1:
60
+ raise ValueError(
61
+ "Threshold values should be around 2 for meaningful Durbin-Watson test results."
62
+ )
63
+
64
+ y_true = dataset.y
65
+ y_pred = dataset.y_pred(model)
66
+ residuals = y_true - y_pred
67
+
68
+ dw_statistic = durbin_watson(residuals)
69
+
70
+ def get_autocorrelation(dw_value, threshold):
71
+ if dw_value < threshold[0]:
72
+ return "Positive autocorrelation"
73
+ elif dw_value > threshold[1]:
74
+ return "Negative autocorrelation"
75
+ else:
76
+ return "No autocorrelation"
77
+
78
+ results = pd.DataFrame(
79
+ {
80
+ "dw_statistic": [dw_statistic],
81
+ "threshold": [str(threshold)],
82
+ "autocorrelation": [get_autocorrelation(dw_statistic, threshold)],
83
+ }
84
+ )
85
+
86
+ return results
@@ -6,7 +6,6 @@
6
6
  import plotly.graph_objects as go
7
7
  from matplotlib import cm
8
8
 
9
-
10
9
  from validmind import tags, tasks
11
10
 
12
11
 
@@ -7,8 +7,8 @@ import pandas as pd
7
7
  import plotly.graph_objects as go
8
8
  from scipy import stats
9
9
 
10
- from validmind.errors import SkipTestError
11
10
  from validmind import tags, tasks
11
+ from validmind.errors import SkipTestError
12
12
 
13
13
 
14
14
  @tags("tabular_data", "visualization", "model_training")
validmind/utils.py CHANGED
@@ -175,6 +175,10 @@ def format_records(df):
175
175
  continue
176
176
  not_zero = df[col][df[col] != 0]
177
177
  min_number = not_zero.min()
178
+ if math.isnan(min_number) or math.isinf(min_number):
179
+ df[col] = df[col].round(DEFAULT_SMALL_NUMBER_DECIMALS)
180
+ continue
181
+
178
182
  _, min_scale = precision_and_scale(min_number)
179
183
 
180
184
  if min_number >= 10:
@@ -77,6 +77,7 @@ class Metric(Test):
77
77
 
78
78
  self.result = MetricResultWrapper(
79
79
  result_id=self.test_id,
80
+ result_description=self.description(),
80
81
  result_metadata=[
81
82
  (
82
83
  get_description_metadata(
@@ -128,6 +128,8 @@ class ResultWrapper(ABC):
128
128
  # id of the result, can be set by the subclass. This helps
129
129
  # looking up results later on
130
130
  result_id: str = None
131
+ # Text description from test or metric (docstring usually)
132
+ result_description: str = None
131
133
  # Text metadata about the result, can include description, etc.
132
134
  result_metadata: List[dict] = None
133
135
  # Output template to use for rendering the result
@@ -300,38 +302,60 @@ class MetricResultWrapper(ResultWrapper):
300
302
  return VBox(vbox_children)
301
303
 
302
304
  def _get_filtered_summary(self):
303
- """Check if the metric summary has columns from input datasets"""
304
- dataset_columns = set()
305
-
306
- for input in self.inputs:
307
- input_id = input if isinstance(input, str) else input.input_id
308
- input_obj = input_registry.get(input_id)
309
- if isinstance(input_obj, VMDataset):
310
- dataset_columns.update(input_obj.columns)
311
-
312
- for table in [*self.metric.summary.results]:
313
- columns = set()
305
+ """Check if the metric summary has columns from input datasets with matching row counts."""
306
+ dataset_columns = self._get_dataset_columns()
307
+ filtered_results = []
308
+
309
+ for table in self.metric.summary.results:
310
+ table_columns = self._get_table_columns(table)
311
+ sensitive_columns = self._find_sensitive_columns(
312
+ dataset_columns, table_columns
313
+ )
314
314
 
315
- if isinstance(table.data, pd.DataFrame):
316
- columns.update(table.data.columns)
317
- elif isinstance(table.data, list):
318
- columns.update(table.data[0].keys())
315
+ if sensitive_columns:
316
+ self._log_sensitive_data_warning(sensitive_columns)
319
317
  else:
320
- raise ValueError("Invalid data type in summary table")
318
+ filtered_results.append(table)
321
319
 
322
- if bool(columns.intersection(dataset_columns)):
323
- logger.warning(
324
- "Sensitive data in metric summary table. Not logging to API automatically."
325
- " Pass `unsafe=True` to result.log() method to override manually."
326
- )
327
- logger.warning(
328
- f"The following columns are present in the table: {columns}"
329
- f" and also present in the dataset: {dataset_columns}"
320
+ self.metric.summary.results = filtered_results
321
+ return self.metric.summary
322
+
323
+ def _get_dataset_columns(self):
324
+ dataset_columns = {}
325
+ for input_item in self.inputs:
326
+ input_id = (
327
+ input_item if isinstance(input_item, str) else input_item.input_id
328
+ )
329
+ input_obj = input_registry.get(input_id)
330
+ if isinstance(input_obj, VMDataset):
331
+ dataset_columns.update(
332
+ {col: len(input_obj.df) for col in input_obj.columns}
330
333
  )
334
+ return dataset_columns
331
335
 
332
- self.metric.summary.results.remove(table)
336
+ def _get_table_columns(self, table):
337
+ if isinstance(table.data, pd.DataFrame):
338
+ return {col: len(table.data) for col in table.data.columns}
339
+ elif isinstance(table.data, list) and table.data:
340
+ return {col: len(table.data) for col in table.data[0].keys()}
341
+ else:
342
+ raise ValueError("Invalid data type in summary table")
333
343
 
334
- return self.metric.summary
344
+ def _find_sensitive_columns(self, dataset_columns, table_columns):
345
+ return [
346
+ col
347
+ for col, row_count in table_columns.items()
348
+ if col in dataset_columns and row_count == dataset_columns[col]
349
+ ]
350
+
351
+ def _log_sensitive_data_warning(self, sensitive_columns):
352
+ logger.warning(
353
+ "Sensitive data in metric summary table. Not logging to API automatically. "
354
+ "Pass `unsafe=True` to result.log() method to override manually."
355
+ )
356
+ logger.warning(
357
+ f"The following columns are present in the table with matching row counts: {sensitive_columns}"
358
+ )
335
359
 
336
360
  async def log_async(
337
361
  self, section_id: str = None, position: int = None, unsafe=False
@@ -80,6 +80,7 @@ class ThresholdTest(Test):
80
80
 
81
81
  self.result = ThresholdTestResultWrapper(
82
82
  result_id=self.test_id,
83
+ result_description=self.description(),
83
84
  result_metadata=[
84
85
  get_description_metadata(
85
86
  test_id=self.test_id,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: validmind
3
- Version: 2.5.15
3
+ Version: 2.5.19
4
4
  Summary: ValidMind Developer Framework
5
5
  License: Commercial License
6
6
  Author: Andres Rodriguez
@@ -20,6 +20,7 @@ Requires-Dist: aiohttp[speedups]
20
20
  Requires-Dist: arch
21
21
  Requires-Dist: bert-score (>=0.3.13)
22
22
  Requires-Dist: catboost
23
+ Requires-Dist: datasets (>=2.10.0,<3.0.0)
23
24
  Requires-Dist: evaluate
24
25
  Requires-Dist: ipywidgets
25
26
  Requires-Dist: kaleido (>=0.2.1,!=0.2.1.post1)
@@ -34,13 +35,13 @@ Requires-Dist: nltk (>=3.8.1,<4.0.0)
34
35
  Requires-Dist: numba (<0.59.0)
35
36
  Requires-Dist: numpy
36
37
  Requires-Dist: openai (>=1)
37
- Requires-Dist: pandas (>=1.1,<2)
38
+ Requires-Dist: pandas (>=1.1,<=2.0.3)
38
39
  Requires-Dist: plotly
39
40
  Requires-Dist: plotly-express
40
41
  Requires-Dist: polars
41
42
  Requires-Dist: pycocoevalcap (>=1.2,<2.0) ; extra == "all" or extra == "llm"
42
43
  Requires-Dist: python-dotenv
43
- Requires-Dist: ragas (>=0.1.7) ; extra == "all" or extra == "llm"
44
+ Requires-Dist: ragas (>=0.1.19) ; extra == "all" or extra == "llm"
44
45
  Requires-Dist: rouge (>=1)
45
46
  Requires-Dist: rpy2 (>=3.5.10,<4.0.0) ; extra == "all" or extra == "r-support"
46
47
  Requires-Dist: scikit-learn
@@ -1,6 +1,11 @@
1
1
  validmind/__init__.py,sha256=UfmzPwUCdUWbWq3zPqqmq4jw0_kfl3hX4U72p_seE4I,3700
2
- validmind/__version__.py,sha256=qgFHmD6ZAzPyQ9rsBrXMEWRnucitXPf_Op0NhrlY0Is,23
3
- validmind/ai/test_descriptions.py,sha256=Pbfbgo-w4Q2iweOVXUs9ltibD9avqPQExd84J1awPF4,10231
2
+ validmind/__version__.py,sha256=_2cKtG-ZR8Z0nSHFPo_JNxXI6FCvHE4pVUbtlYKUQfI,23
3
+ validmind/ai/test_descriptions.py,sha256=BUJz-aZ3eu_i4LI16P8MD1ek_GfeB263CWks9T6W3Iw,7419
4
+ validmind/ai/test_result_description/config.yaml,sha256=E1gPd-uv-MzdrWZA_rP6LSk8pVmkYijx6v78hZ8ceL0,787
5
+ validmind/ai/test_result_description/context.py,sha256=tIdhPsrphomeTXdDcFE04kPYKbDNDPy2K8Xxg-dWWo0,2331
6
+ validmind/ai/test_result_description/image_processing.py,sha256=JNaO1zyM9293WWuyzUp1meQQbHuut0XN4kKUGzQTwYY,4061
7
+ validmind/ai/test_result_description/system.jinja,sha256=BjMvZCC3UXEH8p3VPpnHtGjhnqnbNcEG2_kYZ_QZrgg,2358
8
+ validmind/ai/test_result_description/user.jinja,sha256=kyWJK9RcBKvtPf6O2rEzCAHAdUFEIlAwK-exLhtoPRI,630
4
9
  validmind/ai/utils.py,sha256=TEXII_S5CpkpczzSyHwTlqLcPMLnPBJWEBR6QFMKh1U,3421
5
10
  validmind/api_client.py,sha256=arMEyVMNTlHnbThOTVhXV2BvKy7JlBKKv-pcG-ICigU,19228
6
11
  validmind/client.py,sha256=Fi9WmDTt6J3KWJDpvkXy8CnSn00Xqwqf2qcV2rCTx8Y,18910
@@ -12,9 +17,11 @@ validmind/datasets/classification/datasets/bank_customer_churn.csv,sha256=b0muNg
12
17
  validmind/datasets/classification/datasets/taiwan_credit.csv,sha256=fe19VfV30li7rdydnXpbqC372JCdf_HvDc3mMlWNbXE,2897191
13
18
  validmind/datasets/classification/taiwan_credit.py,sha256=nj6JyfcyAfaYgh60T3LdBZsCpzRBsMf0RjYMvedHzuQ,1469
14
19
  validmind/datasets/cluster/digits.py,sha256=E600pX6QPrqndfr73kwZ1sTNk0hC5kNj4Fhs8zz8bQo,2097
15
- validmind/datasets/credit_risk/__init__.py,sha256=5y_NKgWbCfPSw34dYEcgu9y2hici2pxidQqkm-emofs,270
20
+ validmind/datasets/credit_risk/__init__.py,sha256=vK0wyUcA2mpjasNR-EaBj_0MdPhJw5KK8xlrKj_xl68,295
21
+ validmind/datasets/credit_risk/datasets/lending_club_biased.csv.gz,sha256=PdsyEqHtfShtfl_xoNWva2Ofyfx5hmrLhowPka4hLew,6266192
16
22
  validmind/datasets/credit_risk/datasets/lending_club_loan_data_2007_2014_clean.csv.gz,sha256=bAgdfmUxjYOdZMPvoHtKr_GLoXNAX04KUTfjn2L62eE,5493810
17
23
  validmind/datasets/credit_risk/lending_club.py,sha256=oscdu1zmDytSU6dJwinl97si4LDdzMBTFUgiJialRmE,11403
24
+ validmind/datasets/credit_risk/lending_club_bias.py,sha256=8_Xf1qxCTUPv1wYHYkjabO2WtQsfVudJ6eje3phQUrc,4461
18
25
  validmind/datasets/llm/rag/__init__.py,sha256=v8BygB6rGECoMIXv2_I1lVUAfPJ_gVo0GgVKhzk60h4,264
19
26
  validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_1.csv,sha256=8Ae8TD5Yh6rQ67HMCu7iKipj5tyOOhzylZqLppAeKzs,24095
20
27
  validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_2.csv,sha256=PV7eD-h_KWwLzboCPCAEg2LD4XMVO3tS1cWpu18V6Ok,24520
@@ -57,7 +64,7 @@ validmind/datasets/regression/models/fred_loan_rates_model_2.pkl,sha256=J1ukMdeF
57
64
  validmind/datasets/regression/models/fred_loan_rates_model_3.pkl,sha256=IogZPcUQc1F_v11fR6KWT-nRt5JzvK5f7p4Hrw7vLps,40063
58
65
  validmind/datasets/regression/models/fred_loan_rates_model_4.pkl,sha256=cSxhpcrI4hCbxCwZwE2-nr7KObbWpDii3NzpECoXmmM,48292
59
66
  validmind/datasets/regression/models/fred_loan_rates_model_5.pkl,sha256=FkNLHq9xkPMbYks_vyMjFL371mw9SQYbP1iX9lY4Ljo,60343
60
- validmind/errors.py,sha256=qy7Gp6Uom5J6WmLw-CpE5zaTN96SiN7kJjDGBaJdoxY,8023
67
+ validmind/errors.py,sha256=GiOrZR1c11E5eJtPs-HkKnvRcfKNNfuFhYCAV9uWtVQ,8589
61
68
  validmind/html_templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
62
69
  validmind/html_templates/content_blocks.py,sha256=LTsv2Hr_drUUZVLEfY2JcT4z0M-45RGYy2sFInt1VKY,3998
63
70
  validmind/input_registry.py,sha256=8C_mrhgLT72hwbt_lo3ZwXb5NCyIcSuCQI1HdJ3bK2A,1042
@@ -86,7 +93,7 @@ validmind/test_suites/tabular_datasets.py,sha256=WE4eLzRCfiqAxRqXnZFRR3Lo_u-TI6K
86
93
  validmind/test_suites/text_data.py,sha256=YGVGBB05356jN9Gzcy5CHShRzo1fm5mKsZY7YBq0cYU,739
87
94
  validmind/test_suites/time_series.py,sha256=3hzWc9gXHBf8aMecD-1YYGFS5RI1o8A-eor9akeBzSU,4403
88
95
  validmind/tests/__init__.py,sha256=niYvgTHmjS5E42mJMCrzq1vP8PTKCWxVsqSkAaw2wsE,1036
89
- validmind/tests/__types__.py,sha256=JyemVNGUiftQ93yu9VKaoxlFUAzzYPYUP3l_TavaXrg,9420
96
+ validmind/tests/__types__.py,sha256=hpNSChkR53muc_IgNuCT5grYeU0PLbpXujmFji4fAlM,9955
90
97
  validmind/tests/_store.py,sha256=G604L9g-XIJz8u7BLbHVVVcbx96tDYjAAciaF7wJoiM,2743
91
98
  validmind/tests/data_validation/ACFandPACFPlot.py,sha256=gnEo0wbtXioK6XYo1KWgMTTX_c_dn61Y613T7tkOYnI,4897
92
99
  validmind/tests/data_validation/ADF.py,sha256=a_LF0TV14c-B-wLtZW7buX_9mtWIpIYkcqOoSaOIl9Q,5053
@@ -95,7 +102,8 @@ validmind/tests/data_validation/AutoMA.py,sha256=_O-Io05ZnJvZLJ9tLFWXRFjyGbO7ULi
95
102
  validmind/tests/data_validation/AutoSeasonality.py,sha256=dmYNoKVuuJPVELK-xAy1NNNobApeLlpMk7dDp7nXNAo,7982
96
103
  validmind/tests/data_validation/AutoStationarity.py,sha256=E_IgRNkd6DkxuLMBoaTDF-c2peGGMCPO6ltOaZ5lcS0,7841
97
104
  validmind/tests/data_validation/BivariateScatterPlots.py,sha256=IFOihmr8Kf96Cvgs-HzDjMWKERZ26GYH8D_yzw0C3So,3330
98
- validmind/tests/data_validation/ChiSquaredFeaturesTable.py,sha256=GSTyeFnljsHEE5F7r10N-ZaqeBGdzbx0KxvBV1TTQ8o,3941
105
+ validmind/tests/data_validation/BoxPierce.py,sha256=XdWf4vqdirQc3GdK19lfUtpG06QuFy42wkl6loxQLt8,3432
106
+ validmind/tests/data_validation/ChiSquaredFeaturesTable.py,sha256=il0L9AwlI2ukk1MOVECu7tddsbJTFD1m8vK2-tpvBTA,4077
99
107
  validmind/tests/data_validation/ClassImbalance.py,sha256=10ZyWMy4KUAsDo5bifqNE9Wsu1PlpSpsxw0NY0BjHWo,6884
100
108
  validmind/tests/data_validation/DFGLSArch.py,sha256=_Ri9A-d9sesn1hhqzMQczkdDzkiVtGQcwOxiNd6nOf0,5364
101
109
  validmind/tests/data_validation/DatasetDescription.py,sha256=KSHe3nZUoaiJNBcIeS8CC8VVr--YR802_SEgJcYMyxI,11387
@@ -109,15 +117,23 @@ validmind/tests/data_validation/HighPearsonCorrelation.py,sha256=gY-qeddWAxXR79I
109
117
  validmind/tests/data_validation/IQROutliersBarPlot.py,sha256=CeR8fqo2YhIWTqQSyE2fD5_uMnuXQfk4UN5XC_GQp0I,6276
110
118
  validmind/tests/data_validation/IQROutliersTable.py,sha256=QfXsSMFoggL835aKJo-DBHZt_mjqA9V-hf-jx_4ApsA,5489
111
119
  validmind/tests/data_validation/IsolationForestOutliers.py,sha256=lWBn08eAuSNcLJWTNocfn8O9T6L47zlHWGDMuunPlrw,4847
120
+ validmind/tests/data_validation/JarqueBera.py,sha256=KnUfQLrhV3KKqyGOA49pwxRLQ6wl6txjkxO1pqXFKS4,3159
112
121
  validmind/tests/data_validation/KPSS.py,sha256=qdNLHtdDO7zIUhwjmNjUL1pc_IBYzn5kx3Nr5M7IDJ0,4959
122
+ validmind/tests/data_validation/LJungBox.py,sha256=8ujAg7ZcEYquYxHEqBZkD8otBnSpu6OH3kkyKVsX_c4,2895
113
123
  validmind/tests/data_validation/LaggedCorrelationHeatmap.py,sha256=sdrDkCgtjymxqkfr0v1SZWHyd7nCpvbmosznwi9StpA,6016
114
124
  validmind/tests/data_validation/MissingValues.py,sha256=hrAD6YhI5_tmQEcAddYmI3vWEWbIs2Q6R8N1sUAh_Iw,4048
115
125
  validmind/tests/data_validation/MissingValuesBarPlot.py,sha256=Zp7cMLb7iAAC2ZbEFMBmTP4hAxKuRejL__24309mKe8,6210
116
126
  validmind/tests/data_validation/PearsonCorrelationMatrix.py,sha256=GB8Ca8UT4ARBV7Oeha53UL0aTOrvUrwrwsJHKYeEL74,3797
117
127
  validmind/tests/data_validation/PhillipsPerronArch.py,sha256=_YN_RVr0vOrb117XgxOl3W3YPcxfPNcTI_kf0r3CI38,4867
128
+ validmind/tests/data_validation/ProtectedClassesCombination.py,sha256=YIZSgjnWKtDy5GmBsBdMiYZar6p9r2waBPSnmNEgNBA,6695
129
+ validmind/tests/data_validation/ProtectedClassesDescription.py,sha256=j1ymn-gRZUBVRR3BML2PytyFfOGGFGlcoAveMzTn04M,5203
130
+ validmind/tests/data_validation/ProtectedClassesDisparity.py,sha256=lK62HoyHsFt7EU9bzafnU--H77wDzFyZ3cmCVN-ZSEs,5422
131
+ validmind/tests/data_validation/ProtectedClassesThresholdOptimizer.py,sha256=w8ntA8eupshLS4-nQV8yqKwtmoQWwQ_b9KJUashvWSI,5914
118
132
  validmind/tests/data_validation/RollingStatsPlot.py,sha256=St9LAWSawZ7YmNrCOzVH4Oi_tu6iYvi1WPS9R6ePRQU,5888
133
+ validmind/tests/data_validation/RunsTest.py,sha256=0xbi4K86m-qL1nxQPeZIp_HWo3NiDv6MPGaeRhvL6I8,3475
119
134
  validmind/tests/data_validation/ScatterPlot.py,sha256=WeyeAq3QMY_OpzssY5S07a4Y46qiad6h2NunSVCYrQo,3423
120
135
  validmind/tests/data_validation/SeasonalDecompose.py,sha256=fYdN2Kj-WoOE-fOJKDAgGrmZZPlNRgMj-2bgpsenRfI,9454
136
+ validmind/tests/data_validation/ShapiroWilk.py,sha256=AhqJwbmKAy8lpac5ELM_hKt_60PA3DCUqO8kCgnVgQE,3132
121
137
  validmind/tests/data_validation/Skewness.py,sha256=B0lmASCEEJI3-BzPVhUNr6qf-XWc0QHwqeYEig9pvUY,4515
122
138
  validmind/tests/data_validation/SpreadPlot.py,sha256=7bABKP6sSyh0eqn4k8f6e0045-y8yzv4lFgS-7YxY64,4343
123
139
  validmind/tests/data_validation/TabularCategoricalBarPlots.py,sha256=hYDWqG5TJOVuPVhzNTf2mGu2rYPTK_qAaiqDJkj9ecY,4132
@@ -139,23 +155,23 @@ validmind/tests/data_validation/WOEBinTable.py,sha256=E8s4bWKQKuywSCn-2oRwVliWb0
139
155
  validmind/tests/data_validation/ZivotAndrewsArch.py,sha256=sI2dc7bFyscAAQTi1eeAgWAiAC3qKxePK8epZmcMBX0,5006
140
156
  validmind/tests/data_validation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
141
157
  validmind/tests/data_validation/nlp/CommonWords.py,sha256=Vt0TcWOo2ndATxa7SIl6PcFT2SPELsBFx_QGIeENJRE,4149
142
- validmind/tests/data_validation/nlp/Hashtags.py,sha256=uJGZ6XgzDSx3HPd4pcALPa4ZnRgi4jPL2KAsNpq4Os4,4270
158
+ validmind/tests/data_validation/nlp/Hashtags.py,sha256=NOgPg0V_E8O34YDlyviIjGxSjacVYHk_IuXb-z7n2QI,4178
143
159
  validmind/tests/data_validation/nlp/LanguageDetection.py,sha256=axbhQeOOPmmFFhxV0b605qress5cVv--XlvK_CVRU6E,3055
144
160
  validmind/tests/data_validation/nlp/Mentions.py,sha256=oDKDUAOA7r3E3HOV4UI5Q84aNIcoAiMMnjkjgJgKpqs,4594
145
161
  validmind/tests/data_validation/nlp/PolarityAndSubjectivity.py,sha256=ypIYPw3GJYngYzkj-d6Q4m_2YiQTSjAKJOJkwQ0y49g,2996
146
162
  validmind/tests/data_validation/nlp/Punctuations.py,sha256=ESV9yl276Qubm1UYP9b_7zD33JX5g3BayZpTwqqlHiM,3681
147
163
  validmind/tests/data_validation/nlp/Sentiment.py,sha256=AgKMyXU0gzMX6j2p1YYQY3zcW92jeTl9ScSZMJtkS7c,2780
148
164
  validmind/tests/data_validation/nlp/StopWords.py,sha256=vr-nSIYxp-IX0xrIMbmMiY2Jj8pwjibXfLBPaAEZpMQ,6079
149
- validmind/tests/data_validation/nlp/TextDescription.py,sha256=E82XOqfFSS7rxaQHy2amkJNEktQOT8uLm9s_jtE4wd0,8037
165
+ validmind/tests/data_validation/nlp/TextDescription.py,sha256=cYGILdpglV7fWMl_cG2HxfKKmnB7R5swBP3wRYDDbas,8071
150
166
  validmind/tests/data_validation/nlp/Toxicity.py,sha256=-t51-sh8S5vkHeQHK8nRveqC0HqSh_C7xJBsGkOXW_o,2541
151
167
  validmind/tests/data_validation/nlp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
152
168
  validmind/tests/decorator.py,sha256=vPcECxNZTYEkeaaZKGiuKOOuJYs0H344Bg5XcFmvei0,11276
153
- validmind/tests/load.py,sha256=Bzr2DhOx4wRNNo0OpZTeEdedzRdnO-KPJk_E1ArnjGo,8766
169
+ validmind/tests/load.py,sha256=b4F4tw8KsufmEeJtJtWqidP3E2BKs48pYkRJVRpRMzQ,9500
154
170
  validmind/tests/metadata.py,sha256=wAfWWD3s1GAlWsabjUUfoKlnAQhOn17Rym4y-gC4iCE,1370
155
171
  validmind/tests/model_validation/BertScore.py,sha256=q-zdZazfVdgzr7Fgf4a4veEDblycwbepEkyG1RI5mKc,5279
156
172
  validmind/tests/model_validation/BleuScore.py,sha256=eRK39XpbXXgXFpm5PFzj34U_ekHUMFW4G0sYWeZpy8g,4921
157
173
  validmind/tests/model_validation/ClusterSizeDistribution.py,sha256=URML_uRs7KIaubLz49X2i_Dv5yCDOJ4hD8ADJWxV9dA,3795
158
- validmind/tests/model_validation/ContextualRecall.py,sha256=bSit7pu1wRyPB3-lL1MtzwYw1U4iavtFKpGQdiwIyY4,5044
174
+ validmind/tests/model_validation/ContextualRecall.py,sha256=5X8BerhosRRY-K_MqLs15forokWDA3he-teQTufGGVs,5113
159
175
  validmind/tests/model_validation/FeaturesAUC.py,sha256=NrL4aw8IvmkHxjMqrQ3mvued994ze41N1iCvU4RHI1U,4733
160
176
  validmind/tests/model_validation/MeteorScore.py,sha256=YhX2hBpT32QGkSrpidv-H-4HkQEwRMeU5Il6cMuCSwY,5114
161
177
  validmind/tests/model_validation/ModelMetadata.py,sha256=UiDANMTqAy0DURnnTzImYNS-3Z8sE4yFjg1c2S5YFS8,2521
@@ -184,14 +200,16 @@ validmind/tests/model_validation/embeddings/StabilityAnalysisRandomNoise.py,sha2
184
200
  validmind/tests/model_validation/embeddings/StabilityAnalysisSynonyms.py,sha256=BzQeWSjhfP3qZ_sk9WHc3v-m_mH61oJBoWNNVnj9PoY,4181
185
201
  validmind/tests/model_validation/embeddings/StabilityAnalysisTranslation.py,sha256=bJspUwA6PyIpmLAQ_o5E_CE6t6QhvpU6qzIdk8qZWEQ,4620
186
202
  validmind/tests/model_validation/embeddings/TSNEComponentsPairwisePlots.py,sha256=7b-VONVp8yu5lG_U-h7VKb2k9edXbVai9W7TkiozQPc,4578
187
- validmind/tests/model_validation/ragas/AnswerCorrectness.py,sha256=Qbi2nLCo_XdaGdhry6V8kUg4NsRHd9V771IyoVHQfhs,5150
188
- validmind/tests/model_validation/ragas/AnswerRelevance.py,sha256=lIuZ6rZlT-BjT008Ph5MuXBZfg9SdUgo09D64oOosOo,5009
189
- validmind/tests/model_validation/ragas/AnswerSimilarity.py,sha256=5vX-zSx8KI4bUtQrrEVC__kN1yN-cRvL99OddHMKyy8,4469
190
- validmind/tests/model_validation/ragas/AspectCritique.py,sha256=7NM4rLde8b1d6Dffd0WT_LDrRqmb-ENtFefy88irQ_w,6520
191
- validmind/tests/model_validation/ragas/ContextEntityRecall.py,sha256=-l4hDhRhsKrfRlnTv_39LtXQ37PIvOXNTP_bwy2lwwQ,4924
192
- validmind/tests/model_validation/ragas/ContextPrecision.py,sha256=d-m5U-1PNHVdWn3E9l9Cn0jD1Z_X3DZwbx1sIe0J9LI,4642
193
- validmind/tests/model_validation/ragas/ContextRecall.py,sha256=0k7-4McTYN5EBwD--GuCu3ZDAiifD8P3b9L6CkAl-ug,4579
194
- validmind/tests/model_validation/ragas/Faithfulness.py,sha256=PKi63VJRo67WNFfjZCa72ujkKGMKWOrJwxXS73nSFmo,4537
203
+ validmind/tests/model_validation/ragas/AnswerCorrectness.py,sha256=D9g-h6YLOsAB8E22_HLr579hYZzRETVJkky9GhkH0Rg,5350
204
+ validmind/tests/model_validation/ragas/AnswerRelevance.py,sha256=UN2HlQ9Hm-NPOrPqb8FpLyYmp2oMBsFzv6bwBjKSufQ,5206
205
+ validmind/tests/model_validation/ragas/AnswerSimilarity.py,sha256=sMwIYQjxhlYa6M9SuwxYZe_-72Y_B2EupStQ6f4MTmk,4667
206
+ validmind/tests/model_validation/ragas/AspectCritique.py,sha256=XasimDgkhSeiPur1N7_AOAlBzQmFCwGhtDvGBvWom2A,6630
207
+ validmind/tests/model_validation/ragas/ContextEntityRecall.py,sha256=-lGAMQ0aF6UP9ga26-Rdj0NOesPyH8tFCGO6tsvxYWc,5125
208
+ validmind/tests/model_validation/ragas/ContextPrecision.py,sha256=k4X21H3_n9w_Z7uGSyRTrWa0QLJoQ43S_ntrFZeKue0,4840
209
+ validmind/tests/model_validation/ragas/ContextRecall.py,sha256=MmqG7GEqxxTXNw5MjuIERsVayZB9vwx2AAGJIwLpR6g,4774
210
+ validmind/tests/model_validation/ragas/ContextUtilization.py,sha256=3hxjRTNND3bGJPlGLrEGd36w-_YtK-Wj4v3NRKOmxnc,6156
211
+ validmind/tests/model_validation/ragas/Faithfulness.py,sha256=6_PZfJXhelG7B6uYJ14DmqOveXclK3KRckajhF2Cbwg,4731
212
+ validmind/tests/model_validation/ragas/NoiseSensitivity.py,sha256=CqRaB1DEfaEz5QNCAJxyfn0sC9C9_o0-fPWggppHsCA,5738
195
213
  validmind/tests/model_validation/ragas/utils.py,sha256=VCc3NcNLIwrYQ7RvuJ1ev4XhI86TKDVNzI8o12aHFHc,3363
196
214
  validmind/tests/model_validation/sklearn/AdjustedMutualInformation.py,sha256=ayGZ2IVJxSFVhR_Vnb2xp8dHpMXzvAg8fK_uuBUgOLU,2832
197
215
  validmind/tests/model_validation/sklearn/AdjustedRandIndex.py,sha256=bvXwgLQFQy7LvgXV5pL8vq5uizPFT5fmewLF0bQrwIE,2679
@@ -201,7 +219,7 @@ validmind/tests/model_validation/sklearn/ClusterPerformance.py,sha256=UOLfJkOHYB
201
219
  validmind/tests/model_validation/sklearn/ClusterPerformanceMetrics.py,sha256=lh_AnIR2VELVlFlkok-fW0BEOIId1JZMdX0rF6flaMc,8383
202
220
  validmind/tests/model_validation/sklearn/CompletenessScore.py,sha256=mhLcmE309u5mbwppa7PBegeH9_SK-1zvXrsR2SS3K4w,2510
203
221
  validmind/tests/model_validation/sklearn/ConfusionMatrix.py,sha256=CMfMVWXnlHnzjaBpEzrMrDI1W-xmUhIfUi1SPMaXGm0,5873
204
- validmind/tests/model_validation/sklearn/FeatureImportance.py,sha256=yuqksyOlh-8ohzSZnSA7b81v6xNtlvRPTJ1Xuzqh1wQ,3482
222
+ validmind/tests/model_validation/sklearn/FeatureImportance.py,sha256=krS-Lnw3yh0XaPVKqjf7dy65y3GE-BGZ8sUcVP2ln_o,3480
205
223
  validmind/tests/model_validation/sklearn/FowlkesMallowsScore.py,sha256=rMijOpZ8LqugWNFzD-aMcX26TShqyG-L9xC_H2SmokE,2991
206
224
  validmind/tests/model_validation/sklearn/HomogeneityScore.py,sha256=Okkn1OJom4MK9vkMOQS2PsdgQ8bKunXnw5xSjVIWhB4,2712
207
225
  validmind/tests/model_validation/sklearn/HyperParametersTuning.py,sha256=COdHaNXlkQI3YL1ZFtwx65I9bp4PZEdJ1RcgbJGRX1I,4404
@@ -211,42 +229,37 @@ validmind/tests/model_validation/sklearn/MinimumF1Score.py,sha256=4UKyrT-Bwn6aS-
211
229
  validmind/tests/model_validation/sklearn/MinimumROCAUCScore.py,sha256=WNr5Pfc61st9mE1089sPmtfnXmJjXBEldocyzwIu4Lw,5071
212
230
  validmind/tests/model_validation/sklearn/ModelsPerformanceComparison.py,sha256=WziKMHh-HrOuo7ARb-tVGy94fkXmjIJpAGq5wT60Mn0,6142
213
231
  validmind/tests/model_validation/sklearn/OverfitDiagnosis.py,sha256=xU6tO8cdJKf9Rg-_kvtbZpBeV6z7ZEM9jY2TX338MTk,13542
214
- validmind/tests/model_validation/sklearn/PermutationFeatureImportance.py,sha256=M7fOkxhE6k33iQx8v__3qHam1QbDtmwyEf56yMIIjBY,4851
232
+ validmind/tests/model_validation/sklearn/PermutationFeatureImportance.py,sha256=l5R8UVaR04NktuY2rwAwGs9Fbqe73U8BEq75pPnU8hw,4839
215
233
  validmind/tests/model_validation/sklearn/PopulationStabilityIndex.py,sha256=v_7PT72-TplO1IeUZ84tfapzVdfvLMbopATUOm1RxQI,10068
216
234
  validmind/tests/model_validation/sklearn/PrecisionRecallCurve.py,sha256=o568TQtOzyxT0-B25tMhLnnxCekwXrzIGnAzch9igyI,4373
217
235
  validmind/tests/model_validation/sklearn/ROCCurve.py,sha256=1KKqEJpNBLuPEWafS37Rsgj8azYOkeudMgfOgNwneEc,5825
218
236
  validmind/tests/model_validation/sklearn/RegressionErrors.py,sha256=qj6l5RQGG7E6aOcaFxO8WReEEdJKfXrNp7wecWuCSaI,3713
219
237
  validmind/tests/model_validation/sklearn/RegressionErrorsComparison.py,sha256=em0NPWZVKq-nqdbFiiifQcsONGd8xek0_kwdtx6HXjE,3609
220
238
  validmind/tests/model_validation/sklearn/RegressionPerformance.py,sha256=BoK3PTQNbJBtV-nHnlf7pc39Jhf_nV7AGE3FaO0w7L8,5610
221
- validmind/tests/model_validation/sklearn/RegressionR2Square.py,sha256=E1Q_WItjdsfq57Yum4UT1POPmx0bsbOJP6HHUYl-HCQ,3101
239
+ validmind/tests/model_validation/sklearn/RegressionR2Square.py,sha256=jttavnKU1LqmTeTBbmGFH5qxP5Ag_TERYHoAb7ggeBQ,3100
222
240
  validmind/tests/model_validation/sklearn/RegressionR2SquareComparison.py,sha256=TfBL_Mnk4hWWkXXB8OHzboWYuGk0e_gHmIDscKzLx9M,3377
223
241
  validmind/tests/model_validation/sklearn/RobustnessDiagnosis.py,sha256=nS_vDWqcJfb0wrr5lhIAUHOiJUNLtJE8bmZ-T8aRjuo,14326
224
- validmind/tests/model_validation/sklearn/SHAPGlobalImportance.py,sha256=ZxfymqJOo6Zg5iLQ2Z9DPrSypBWJs4mux8kxuINi5ek,8884
242
+ validmind/tests/model_validation/sklearn/SHAPGlobalImportance.py,sha256=1ea14RM8pUgNiRv_N1AjOYglvqZi-sGnNkvhH1Nhcns,11322
225
243
  validmind/tests/model_validation/sklearn/SilhouettePlot.py,sha256=-5tm21WpvjryeEli1TnWzAhM_eG5tfpsTPAm-J8Af-Q,6191
226
244
  validmind/tests/model_validation/sklearn/TrainingTestDegradation.py,sha256=t8o6KRytwX_e8nlsZYXgX0xBAi8BO5wbuNystcNwDrE,7166
227
245
  validmind/tests/model_validation/sklearn/VMeasure.py,sha256=MH7sN5UZ4VqK3YCL_xTK_VcXRg6_ae5Srm_1lFmgxiE,2729
228
246
  validmind/tests/model_validation/sklearn/WeakspotsDiagnosis.py,sha256=rR8uyOrjCtwevvSHM5mASfOKkwpYkOPKIbythv4UOdg,14127
229
247
  validmind/tests/model_validation/sklearn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
230
248
  validmind/tests/model_validation/statsmodels/AutoARIMA.py,sha256=G13cl2WHLJH4d_3DY4mKTkY5UHtyE3gKg9zHwFTFooE,5136
231
- validmind/tests/model_validation/statsmodels/BoxPierce.py,sha256=m86fAy6c6QFbpDp7hMqb6O60a2t1p3_dN7dkpefDS3U,3537
232
249
  validmind/tests/model_validation/statsmodels/CumulativePredictionProbabilities.py,sha256=hXn0vBL-tvMR28sao1wnrnMEPl8gbl7eBYO6uW1WA-s,4625
233
- validmind/tests/model_validation/statsmodels/DurbinWatsonTest.py,sha256=oUepuPkLm0vszekXvvDzWtgjg9mCv53RT_e57WzzThM,2927
250
+ validmind/tests/model_validation/statsmodels/DurbinWatsonTest.py,sha256=wY36j1-bzEUyXwmymQILXHLiI-tIKze0gI8dOMkYyyI,3632
234
251
  validmind/tests/model_validation/statsmodels/GINITable.py,sha256=voBMdMDMxfzEsolBCKDJIXUC64DV3CR5xtw35uudjT0,4276
235
- validmind/tests/model_validation/statsmodels/JarqueBera.py,sha256=FLaLQhQZyrN75v5wvdnwxgK8PnOgrOpoR0xAUYp6kB8,3294
236
252
  validmind/tests/model_validation/statsmodels/KolmogorovSmirnov.py,sha256=cHelOkjkZDUgffEl9Nz-uD_TFzJhc0ojNO0MexvQqjk,3804
237
- validmind/tests/model_validation/statsmodels/LJungBox.py,sha256=vj7Q1DLiIATcony-gy0A4i5i5V9uhYPWdo9b4OZKH0c,3024
238
253
  validmind/tests/model_validation/statsmodels/Lilliefors.py,sha256=1vOHrdmFg6IRZX5ysv5f4yaqQbYv_dQGjgiUSSqW_ag,3950
239
- validmind/tests/model_validation/statsmodels/PredictionProbabilitiesHistogram.py,sha256=2boHDFw4RuoKeyLXrdyx7ulotzwPtu6sxEgEtiplr4w,4110
240
- validmind/tests/model_validation/statsmodels/RegressionCoeffs.py,sha256=Hysaat2febNh4-FdHZom0oVokjlwPmQa3JpoK2ohxQM,4175
254
+ validmind/tests/model_validation/statsmodels/PredictionProbabilitiesHistogram.py,sha256=-c-FBs0QgXipWV-YQymXem9HdPx8-Fr-Yjwr4LAOm9k,4109
255
+ validmind/tests/model_validation/statsmodels/RegressionCoeffs.py,sha256=NH6Qi-1fFxIO2kzma6NhVm8U7JWkYA_gKAXsasgZIX0,4175
241
256
  validmind/tests/model_validation/statsmodels/RegressionFeatureSignificance.py,sha256=GZpmDfIguYBDT5pXK6JfAqDvWmO0ADhOjNQ4EW7oin4,5572
242
257
  validmind/tests/model_validation/statsmodels/RegressionModelForecastPlot.py,sha256=w5HVx6wIFBIFjNXR0J6qWOrqVGyGwMY6ZW5vvfIql6k,6538
243
258
  validmind/tests/model_validation/statsmodels/RegressionModelForecastPlotLevels.py,sha256=F20DQaotT_SafEbcvR9FxvRkkY4kImthJYwXnzR4EIg,7725
244
259
  validmind/tests/model_validation/statsmodels/RegressionModelSensitivityPlot.py,sha256=T6xqo3AW3b4aF7uPhuhkoOoq3jJIJ6p4L9Thk_4PS2g,6964
245
260
  validmind/tests/model_validation/statsmodels/RegressionModelSummary.py,sha256=s3Of1qvLa8Ct1XcPEYGBEh0fqhAYaVJR-QONktwslaU,3656
246
261
  validmind/tests/model_validation/statsmodels/RegressionPermutationFeatureImportance.py,sha256=rU6L4198YCJiulWSNYdbbPaIwVVb48AuD5GJ0l_zWhc,4822
247
- validmind/tests/model_validation/statsmodels/RunsTest.py,sha256=1mYYQsYfJLvZTJX7sKL5obGtye5nkG-9o_lpavskuvo,3562
248
262
  validmind/tests/model_validation/statsmodels/ScorecardHistogram.py,sha256=0hnB6icasRKT_Cl0YxMEpIuaUKgi5scXHmV_nP9RmkI,4650
249
- validmind/tests/model_validation/statsmodels/ShapiroWilk.py,sha256=RJbSqdlE0MLo2-bc1XkB1q29I7ih_Rd0rEkcHtE9qwQ,3256
250
263
  validmind/tests/model_validation/statsmodels/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
251
264
  validmind/tests/model_validation/statsmodels/statsutils.py,sha256=s1J7lHJ4kAcp_gGI0LAsaIFxbSqPrqXanxgtDI_Kig0,495
252
265
  validmind/tests/ongoing_monitoring/FeatureDrift.py,sha256=qsBoolRGgW6sdUa8F-c4gsf6liFTyO4hCY-2lJv7YNY,6234
@@ -283,7 +296,7 @@ validmind/unit_metrics/regression/MeanSquaredError.py,sha256=e_4pE33pR_dCSUOfUHV
283
296
  validmind/unit_metrics/regression/QuantileLoss.py,sha256=TYyulr5_zSdheH5LDDs6YY9tgnheFlqTySFgAzhTOqw,455
284
297
  validmind/unit_metrics/regression/RSquaredScore.py,sha256=TJNHFGUoykFxywsnpBysl0qRkOPeKXhm5Az6C3eHrag,394
285
298
  validmind/unit_metrics/regression/RootMeanSquaredError.py,sha256=0r60JaoQIzIE5u99io2G89hWvyrjOmXGmUjLnt61w9g,530
286
- validmind/utils.py,sha256=DYUB3nig6MJwct5dymhy7Gt9apwzPVipKAWxSrm0-tg,15849
299
+ validmind/utils.py,sha256=U8gZ_tqkTlqWoqdoyvhhRq0Q8c97W293wPrHNBvpAC4,15999
287
300
  validmind/vm_models/__init__.py,sha256=V5DH-E1Rkvl-HQEkilppVCHBag9MQXkzyoORLW3LSGQ,1210
288
301
  validmind/vm_models/dataset/__init__.py,sha256=U4CxZjdoc0dd9u2AqBl5PJh1UVbzXWNrmundmjLF-qE,346
289
302
  validmind/vm_models/dataset/dataset.py,sha256=idgALhpMdBAl-VlgcxtBXw4QRG48LJ5I8jwnoO9lYHI,25765
@@ -291,21 +304,21 @@ validmind/vm_models/dataset/utils.py,sha256=VMcPEgwW9oW5D0MCa_MqXCq_sEzzsLLRmS4R
291
304
  validmind/vm_models/figure.py,sha256=YEbb9-BOpQvJRnf-gN8tgo40-UPRC552-nCVnNZi4qY,6817
292
305
  validmind/vm_models/input.py,sha256=qLdqz_bktr4v0YcPha2vFdDvmkC-btT1pH9zBIkt1OY,1046
293
306
  validmind/vm_models/model.py,sha256=Dewux_jTgUAXPgHW6ZtJTa8WvH0WkWsryO43DI9HkMU,6409
294
- validmind/vm_models/test/metric.py,sha256=DvXMju36JzxArXNWimq3SSrSUoIHkyvDbuhbgBOKxkk,3357
307
+ validmind/vm_models/test/metric.py,sha256=2aUXipqkCqzlh7kKk-rkB0yqtWQMzgjYn8-cBOd_TUs,3408
295
308
  validmind/vm_models/test/metric_result.py,sha256=Bak4GDrMlNq5NtgP5exwlPsKZgz3tWgtC6jZqtHjvqM,1987
296
309
  validmind/vm_models/test/output_template.py,sha256=njqCAMyLxwadkCWhACVskyL9-psTgmUysaeeirTVAX4,1500
297
310
  validmind/vm_models/test/result_summary.py,sha256=QJcIKJUeBf5wW3lyue6ctsi1jKSyoiAIfmjudGJiJtc,2028
298
- validmind/vm_models/test/result_wrapper.py,sha256=P6rnX6vAiHpIQWEQpSvnt7ygbl6vLPBxfSEfUZ0P12Q,16388
311
+ validmind/vm_models/test/result_wrapper.py,sha256=4oKVLa3WRtxopnT0G7xjLvgT9agOPXSq6EPvKfZe9ak,17336
299
312
  validmind/vm_models/test/test.py,sha256=2Wbte09E4l7fUXwfQije0LQbPeSuh2Wpbyt4ddwyVks,3419
300
- validmind/vm_models/test/threshold_test.py,sha256=xSadM5t9Z-XZjkxu7LKmeljy2bdwTwXrUh-mkdePdLM,3740
313
+ validmind/vm_models/test/threshold_test.py,sha256=LeGCcEc0PZk9uNhe7ykZETLwQdeuVfvR-XH4LKfWAI8,3791
301
314
  validmind/vm_models/test/threshold_test_result.py,sha256=EXP-g_e3NsnpkvNgYew030qVUoY6ZTHyuuFUXaq-BuM,1954
302
315
  validmind/vm_models/test_context.py,sha256=SGqoF_OeFC7Fj1jg5CPO1LOpfB7mA1FPwm61SYP8f2o,9475
303
316
  validmind/vm_models/test_suite/runner.py,sha256=aewxadRfoOPH48jes2Gtb3Ju_FWFfVM_9ARIAJHD4wA,6982
304
317
  validmind/vm_models/test_suite/summary.py,sha256=GQRNe2ZvvqjQN0yKmaN7ohAUjRFQIN4YYUYxfOuWN6M,4682
305
318
  validmind/vm_models/test_suite/test.py,sha256=_GfbK36l98SjzgVcucmp0OKBJKqMW3neO7SqJ3EWeps,5049
306
319
  validmind/vm_models/test_suite/test_suite.py,sha256=Cns2wL54v0T5Mv5_HJb3kMeaa4rtycdqT8KxK9_rWEU,6279
307
- validmind-2.5.15.dist-info/LICENSE,sha256=XonPUfwjvrC5Ombl3y-ko0Wubb1xdG_7nzvIbkZRKHw,35772
308
- validmind-2.5.15.dist-info/METADATA,sha256=WdG0HbDE8HG4XRGx2B70_EkiSajaYhxIr37QL6mpPTs,4243
309
- validmind-2.5.15.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
310
- validmind-2.5.15.dist-info/entry_points.txt,sha256=HuW7YyOv9u_OEWpViQXtv0nfoI67uieJHawKWA4Hv9A,76
311
- validmind-2.5.15.dist-info/RECORD,,
320
+ validmind-2.5.19.dist-info/LICENSE,sha256=XonPUfwjvrC5Ombl3y-ko0Wubb1xdG_7nzvIbkZRKHw,35772
321
+ validmind-2.5.19.dist-info/METADATA,sha256=K72IHQi3hLGuQHDMkvi90X5VY5ULsPyRYMQfpieOKPs,4291
322
+ validmind-2.5.19.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
323
+ validmind-2.5.19.dist-info/entry_points.txt,sha256=HuW7YyOv9u_OEWpViQXtv0nfoI67uieJHawKWA4Hv9A,76
324
+ validmind-2.5.19.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.9.0
2
+ Generator: poetry-core 1.9.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any