validmind 2.0.7__py3-none-any.whl → 2.1.0__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.
- validmind/__init__.py +3 -3
- validmind/__version__.py +1 -1
- validmind/ai.py +7 -11
- validmind/api_client.py +29 -27
- validmind/client.py +10 -3
- validmind/datasets/credit_risk/__init__.py +11 -0
- validmind/datasets/credit_risk/datasets/lending_club_loan_data_2007_2014_clean.csv.gz +0 -0
- validmind/datasets/credit_risk/lending_club.py +394 -0
- validmind/logging.py +9 -2
- validmind/template.py +2 -2
- validmind/test_suites/__init__.py +4 -2
- validmind/tests/__init__.py +97 -50
- validmind/tests/data_validation/FeatureTargetCorrelationPlot.py +3 -1
- validmind/tests/data_validation/PiTCreditScoresHistogram.py +1 -1
- validmind/tests/data_validation/ScatterPlot.py +8 -2
- validmind/tests/decorator.py +138 -14
- validmind/tests/model_validation/BertScore.py +1 -1
- validmind/tests/model_validation/BertScoreAggregate.py +1 -1
- validmind/tests/model_validation/BleuScore.py +1 -1
- validmind/tests/model_validation/ClusterSizeDistribution.py +1 -1
- validmind/tests/model_validation/ContextualRecall.py +1 -1
- validmind/tests/model_validation/FeaturesAUC.py +110 -0
- validmind/tests/model_validation/MeteorScore.py +1 -1
- validmind/tests/model_validation/RegardHistogram.py +1 -1
- validmind/tests/model_validation/RegardScore.py +1 -1
- validmind/tests/model_validation/RegressionResidualsPlot.py +127 -0
- validmind/tests/model_validation/RougeMetrics.py +1 -1
- validmind/tests/model_validation/RougeMetricsAggregate.py +1 -1
- validmind/tests/model_validation/SelfCheckNLIScore.py +1 -1
- validmind/tests/model_validation/TokenDisparity.py +1 -1
- validmind/tests/model_validation/ToxicityHistogram.py +1 -1
- validmind/tests/model_validation/ToxicityScore.py +1 -1
- validmind/tests/model_validation/embeddings/ClusterDistribution.py +1 -1
- validmind/tests/model_validation/embeddings/CosineSimilarityDistribution.py +1 -3
- validmind/tests/model_validation/embeddings/DescriptiveAnalytics.py +1 -1
- validmind/tests/model_validation/embeddings/EmbeddingsVisualization2D.py +1 -1
- validmind/tests/model_validation/sklearn/ClassifierPerformance.py +15 -18
- validmind/tests/model_validation/sklearn/ClusterCosineSimilarity.py +1 -1
- validmind/tests/model_validation/sklearn/ClusterPerformance.py +2 -2
- validmind/tests/model_validation/sklearn/ConfusionMatrix.py +21 -3
- validmind/tests/model_validation/sklearn/MinimumAccuracy.py +1 -1
- validmind/tests/model_validation/sklearn/MinimumF1Score.py +1 -1
- validmind/tests/model_validation/sklearn/MinimumROCAUCScore.py +1 -1
- validmind/tests/model_validation/sklearn/ModelsPerformanceComparison.py +5 -4
- validmind/tests/model_validation/sklearn/OverfitDiagnosis.py +2 -2
- validmind/tests/model_validation/sklearn/ROCCurve.py +6 -12
- validmind/tests/model_validation/sklearn/RegressionErrors.py +2 -2
- validmind/tests/model_validation/sklearn/RegressionModelsPerformanceComparison.py +6 -4
- validmind/tests/model_validation/sklearn/RegressionR2Square.py +2 -2
- validmind/tests/model_validation/sklearn/SHAPGlobalImportance.py +27 -3
- validmind/tests/model_validation/sklearn/SilhouettePlot.py +1 -1
- validmind/tests/model_validation/sklearn/TrainingTestDegradation.py +2 -2
- validmind/tests/model_validation/sklearn/WeakspotsDiagnosis.py +2 -2
- validmind/tests/model_validation/statsmodels/CumulativePredictionProbabilities.py +140 -0
- validmind/tests/model_validation/statsmodels/GINITable.py +22 -45
- validmind/tests/model_validation/statsmodels/{LogisticRegPredictionHistogram.py → PredictionProbabilitiesHistogram.py} +67 -92
- validmind/tests/model_validation/statsmodels/RegressionModelForecastPlot.py +2 -2
- validmind/tests/model_validation/statsmodels/RegressionModelForecastPlotLevels.py +2 -2
- validmind/tests/model_validation/statsmodels/RegressionModelInsampleComparison.py +1 -1
- validmind/tests/model_validation/statsmodels/RegressionModelOutsampleComparison.py +1 -1
- validmind/tests/model_validation/statsmodels/RegressionModelSummary.py +1 -1
- validmind/tests/model_validation/statsmodels/RegressionModelsPerformance.py +1 -1
- validmind/tests/model_validation/statsmodels/RegressionPermutationFeatureImportance.py +128 -0
- validmind/tests/model_validation/statsmodels/ScorecardHistogram.py +70 -103
- validmind/tests/test_providers.py +14 -124
- validmind/unit_metrics/__init__.py +76 -69
- validmind/unit_metrics/classification/sklearn/Accuracy.py +14 -0
- validmind/unit_metrics/classification/sklearn/F1.py +13 -0
- validmind/unit_metrics/classification/sklearn/Precision.py +13 -0
- validmind/unit_metrics/classification/sklearn/ROC_AUC.py +13 -0
- validmind/unit_metrics/classification/sklearn/Recall.py +13 -0
- validmind/unit_metrics/composite.py +24 -71
- validmind/unit_metrics/regression/GiniCoefficient.py +20 -26
- validmind/unit_metrics/regression/HuberLoss.py +12 -16
- validmind/unit_metrics/regression/KolmogorovSmirnovStatistic.py +18 -24
- validmind/unit_metrics/regression/MeanAbsolutePercentageError.py +7 -13
- validmind/unit_metrics/regression/MeanBiasDeviation.py +5 -14
- validmind/unit_metrics/regression/QuantileLoss.py +6 -16
- validmind/unit_metrics/regression/sklearn/AdjustedRSquaredScore.py +12 -18
- validmind/unit_metrics/regression/sklearn/MeanAbsoluteError.py +6 -15
- validmind/unit_metrics/regression/sklearn/MeanSquaredError.py +5 -14
- validmind/unit_metrics/regression/sklearn/RSquaredScore.py +6 -15
- validmind/unit_metrics/regression/sklearn/RootMeanSquaredError.py +11 -14
- validmind/utils.py +18 -45
- validmind/vm_models/__init__.py +0 -2
- validmind/vm_models/dataset.py +255 -16
- validmind/vm_models/test/metric.py +1 -2
- validmind/vm_models/test/result_wrapper.py +12 -13
- validmind/vm_models/test/test.py +2 -1
- validmind/vm_models/test/threshold_test.py +1 -2
- validmind/vm_models/test_suite/summary.py +3 -3
- validmind/vm_models/test_suite/test_suite.py +2 -1
- {validmind-2.0.7.dist-info → validmind-2.1.0.dist-info}/METADATA +10 -6
- {validmind-2.0.7.dist-info → validmind-2.1.0.dist-info}/RECORD +97 -96
- validmind/tests/__types__.py +0 -62
- validmind/tests/model_validation/statsmodels/LogRegressionConfusionMatrix.py +0 -128
- validmind/tests/model_validation/statsmodels/LogisticRegCumulativeProb.py +0 -172
- validmind/tests/model_validation/statsmodels/ScorecardBucketHistogram.py +0 -181
- validmind/tests/model_validation/statsmodels/ScorecardProbabilitiesHistogram.py +0 -175
- validmind/unit_metrics/sklearn/classification/Accuracy.py +0 -22
- validmind/unit_metrics/sklearn/classification/F1.py +0 -24
- validmind/unit_metrics/sklearn/classification/Precision.py +0 -24
- validmind/unit_metrics/sklearn/classification/ROC_AUC.py +0 -22
- validmind/unit_metrics/sklearn/classification/Recall.py +0 -22
- validmind/vm_models/test/unit_metric.py +0 -88
- {validmind-2.0.7.dist-info → validmind-2.1.0.dist-info}/LICENSE +0 -0
- {validmind-2.0.7.dist-info → validmind-2.1.0.dist-info}/WHEEL +0 -0
- {validmind-2.0.7.dist-info → validmind-2.1.0.dist-info}/entry_points.txt +0 -0
@@ -6,10 +6,10 @@ from dataclasses import dataclass
|
|
6
6
|
from typing import List, Optional
|
7
7
|
|
8
8
|
import ipywidgets as widgets
|
9
|
+
import mistune
|
9
10
|
from IPython.display import display
|
10
11
|
|
11
12
|
from ...logging import get_logger
|
12
|
-
from ...utils import clean_docstring
|
13
13
|
from ..test.result_wrapper import FailedResultWrapper
|
14
14
|
from .test_suite import TestSuiteSection, TestSuiteTest
|
15
15
|
|
@@ -36,7 +36,7 @@ class TestSuiteSectionSummary:
|
|
36
36
|
self._build_summary()
|
37
37
|
|
38
38
|
def _add_description(self):
|
39
|
-
description = f'<div class="result">{
|
39
|
+
description = f'<div class="result">{mistune.html(self.description)}</div>'
|
40
40
|
self._widgets.append(widgets.HTML(value=description))
|
41
41
|
|
42
42
|
def _add_tests_summary(self):
|
@@ -101,7 +101,7 @@ class TestSuiteSummary:
|
|
101
101
|
self._widgets.append(widgets.HTML(value=results_link))
|
102
102
|
|
103
103
|
def _add_description(self):
|
104
|
-
description = f'<div class="result">{
|
104
|
+
description = f'<div class="result">{mistune.html(self.description)}</div>'
|
105
105
|
self._widgets.append(widgets.HTML(value=description))
|
106
106
|
|
107
107
|
def _add_sections_summary(self):
|
@@ -7,6 +7,7 @@ Base class for test suites and test suite sections
|
|
7
7
|
"""
|
8
8
|
|
9
9
|
from dataclasses import dataclass
|
10
|
+
from inspect import getdoc
|
10
11
|
from typing import ClassVar, List, Optional, Union
|
11
12
|
|
12
13
|
from ...logging import get_logger
|
@@ -154,7 +155,7 @@ class TestSuite:
|
|
154
155
|
|
155
156
|
@property
|
156
157
|
def description(self):
|
157
|
-
return self.
|
158
|
+
return getdoc(self).strip()
|
158
159
|
|
159
160
|
@property
|
160
161
|
def title(self):
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: validmind
|
3
|
-
Version: 2.0
|
3
|
+
Version: 2.1.0
|
4
4
|
Summary: ValidMind Developer Framework
|
5
5
|
License: Commercial License
|
6
6
|
Author: Andres Rodriguez
|
@@ -27,23 +27,27 @@ Requires-Dist: ipywidgets (>=8.0.6,<9.0.0)
|
|
27
27
|
Requires-Dist: kaleido (>=0.2.1,<0.3.0,!=0.2.1.post1)
|
28
28
|
Requires-Dist: langdetect (>=1.0.9,<2.0.0)
|
29
29
|
Requires-Dist: levenshtein (>=0.21.1,<0.22.0) ; extra == "all" or extra == "llm"
|
30
|
-
Requires-Dist:
|
30
|
+
Requires-Dist: llvmlite (>=0.42.0) ; python_version >= "3.12"
|
31
|
+
Requires-Dist: llvmlite ; python_version >= "3.8" and python_full_version <= "3.11.0"
|
31
32
|
Requires-Dist: matplotlib (<3.8.3)
|
33
|
+
Requires-Dist: mistune (>=3.0.2,<4.0.0)
|
32
34
|
Requires-Dist: nltk (>=3.8.1,<4.0.0)
|
33
35
|
Requires-Dist: numba (<0.59.0)
|
34
|
-
Requires-Dist: numpy (>=1.23.3,<2.0.0)
|
36
|
+
Requires-Dist: numpy (>=1.23.3,<2.0.0) ; python_version >= "3.8" and python_full_version <= "3.11.0"
|
37
|
+
Requires-Dist: numpy (>=1.26.0) ; python_version >= "3.12"
|
35
38
|
Requires-Dist: openai (>=1.3.7,<2.0.0) ; extra == "all" or extra == "llm"
|
36
|
-
Requires-Dist: pandas (
|
39
|
+
Requires-Dist: pandas (>=1.1,<2)
|
37
40
|
Requires-Dist: plotly (>=5.14.1,<6.0.0)
|
38
41
|
Requires-Dist: plotly-express (>=0.4.1,<0.5.0)
|
39
42
|
Requires-Dist: polars (>=0.20.15,<0.21.0)
|
40
43
|
Requires-Dist: pycocoevalcap (>=1.2,<2.0) ; extra == "all" or extra == "llm"
|
41
44
|
Requires-Dist: pypmml (>=0.9.17,<0.10.0)
|
42
45
|
Requires-Dist: python-dotenv (>=0.20.0,<0.21.0)
|
43
|
-
Requires-Dist: requests (>=2.27.1,<3.0.0)
|
44
46
|
Requires-Dist: rouge (>=1.0.1,<2.0.0)
|
45
47
|
Requires-Dist: rpy2 (>=3.5.10,<4.0.0) ; extra == "all" or extra == "r-support"
|
46
48
|
Requires-Dist: scikit-learn (>=1.0.2,<2.0.0)
|
49
|
+
Requires-Dist: scipy (>=1.12) ; python_version >= "3.12"
|
50
|
+
Requires-Dist: scipy ; python_version >= "3.8" and python_full_version <= "3.11.0"
|
47
51
|
Requires-Dist: scorecardpy (>=0.1.9.6,<0.2.0.0)
|
48
52
|
Requires-Dist: seaborn (>=0.11.2,<0.12.0)
|
49
53
|
Requires-Dist: selfcheckgpt (>=0.1.7,<0.2.0)
|
@@ -56,7 +60,7 @@ Requires-Dist: torch (>=1.10.0) ; extra == "all" or extra == "llm" or extra == "
|
|
56
60
|
Requires-Dist: torchmetrics (>=1.1.1,<2.0.0) ; extra == "all" or extra == "llm"
|
57
61
|
Requires-Dist: tqdm (>=4.64.0,<5.0.0)
|
58
62
|
Requires-Dist: transformers (>=4.32.0,<5.0.0) ; extra == "all" or extra == "llm" or extra == "transformers"
|
59
|
-
Requires-Dist: xgboost (>=1.5.2,<
|
63
|
+
Requires-Dist: xgboost (>=1.5.2,<3)
|
60
64
|
Requires-Dist: ydata-profiling (>=4.7.0,<5.0.0)
|
61
65
|
Description-Content-Type: text/markdown
|
62
66
|
|
@@ -1,8 +1,8 @@
|
|
1
|
-
validmind/__init__.py,sha256=
|
2
|
-
validmind/__version__.py,sha256=
|
3
|
-
validmind/ai.py,sha256=
|
4
|
-
validmind/api_client.py,sha256=
|
5
|
-
validmind/client.py,sha256=
|
1
|
+
validmind/__init__.py,sha256=XqPjCbFMvEYl0cIT42EZKP7DFMYDC7KDW6syo8MGkDg,3682
|
2
|
+
validmind/__version__.py,sha256=Xybt2skBZamGMNlLuOX1IG-h4uIxqUDGAO8MIGWrJac,22
|
3
|
+
validmind/ai.py,sha256=P3cO8FVj_nEhMj7FA5OalMah-lCptCjFC8Sr31fsrHo,6403
|
4
|
+
validmind/api_client.py,sha256=aZAwgg7U5IwfX__rmhRdAM6zD5skifuEUV4vvyoWp-U,15432
|
5
|
+
validmind/client.py,sha256=C_8KmuiteezpIfvc-D5lnkm8rQRlS70_iMVc9RMltx4,16818
|
6
6
|
validmind/client_config.py,sha256=58L6s6-9vFWC9vkSs_98CjV1YWmlksdhblJtPQxQsAk,1611
|
7
7
|
validmind/datasets/__init__.py,sha256=oYfcvW7BAyUgpghBOnTeGbQF6tpFAWg38rRirdLr8m8,262
|
8
8
|
validmind/datasets/classification/__init__.py,sha256=HlTOBLyb6IorRYmAhP3AIyX-l-NyemyDjV8BBOdrCrY,1787
|
@@ -11,6 +11,9 @@ validmind/datasets/classification/datasets/bank_customer_churn.csv,sha256=b0muNg
|
|
11
11
|
validmind/datasets/classification/datasets/taiwan_credit.csv,sha256=fe19VfV30li7rdydnXpbqC372JCdf_HvDc3mMlWNbXE,2897191
|
12
12
|
validmind/datasets/classification/taiwan_credit.py,sha256=nj6JyfcyAfaYgh60T3LdBZsCpzRBsMf0RjYMvedHzuQ,1469
|
13
13
|
validmind/datasets/cluster/digits.py,sha256=E600pX6QPrqndfr73kwZ1sTNk0hC5kNj4Fhs8zz8bQo,2097
|
14
|
+
validmind/datasets/credit_risk/__init__.py,sha256=5y_NKgWbCfPSw34dYEcgu9y2hici2pxidQqkm-emofs,270
|
15
|
+
validmind/datasets/credit_risk/datasets/lending_club_loan_data_2007_2014_clean.csv.gz,sha256=bAgdfmUxjYOdZMPvoHtKr_GLoXNAX04KUTfjn2L62eE,5493810
|
16
|
+
validmind/datasets/credit_risk/lending_club.py,sha256=oscdu1zmDytSU6dJwinl97si4LDdzMBTFUgiJialRmE,11403
|
14
17
|
validmind/datasets/nlp/__init__.py,sha256=lu2-SGOSECgrxhDtHdlh_FsbpsFtuZ4DbLSL1sww5nc,323
|
15
18
|
validmind/datasets/nlp/cnn_dailymail.py,sha256=9gAHFWQhSJJ2JF_zarc2oLErZwPtRyfvXV4molhVzXM,3471
|
16
19
|
validmind/datasets/nlp/datasets/Covid_19.csv,sha256=cwAJHgek3JWUhtZQIiC9-wRWycxbiod6nyZikf09iKE,11545066
|
@@ -48,7 +51,7 @@ validmind/datasets/regression/models/fred_loan_rates_model_5.pkl,sha256=FkNLHq9x
|
|
48
51
|
validmind/errors.py,sha256=jHj__AKOMiwIb7qSs2mxu3LSi0lyzFwSAt1gy2lpDaE,7993
|
49
52
|
validmind/html_templates/content_blocks.py,sha256=M5BGGXT90kqUrxynkB4DPC4BQziLWglB2oK2En6KP9s,1607
|
50
53
|
validmind/input_registry.py,sha256=zexO3x-vncaoWvQ6VfkvgDLn6x72e2BNel_jCbrVHSE,793
|
51
|
-
validmind/logging.py,sha256=
|
54
|
+
validmind/logging.py,sha256=Ui67RYoB1qbuHm_KX1aGj_8DoK_ljjUDGG6a1XJ4yoY,5041
|
52
55
|
validmind/models/__init__.py,sha256=SWfy_JTnifVCbl04SZg3vwSJpRX_kWtb5wQlSIhJ9T8,623
|
53
56
|
validmind/models/catboost.py,sha256=xw3m2iE4k4TL8FLi-hQy5ylIGG7ta4Q58bcQ_04BJbw,1036
|
54
57
|
validmind/models/foundation.py,sha256=pZVmIC1lpszQLluEOtnuvdVRoOf-j6XsjRfBZQXVITc,2269
|
@@ -58,8 +61,8 @@ validmind/models/r_model.py,sha256=GzlVeJgPNwtzcbyThjGyZ4T3vBJFOYDSh0aqRMsIDOQ,8
|
|
58
61
|
validmind/models/sklearn.py,sha256=pSg3eSQovxSD2cqcUDwQOXGseg0Bicsn_FXa9_URekE,2405
|
59
62
|
validmind/models/statsmodels.py,sha256=_8GYhO21-rs3QUE_YOFi1eGMMBIr-weJmxmCrw1HZxQ,1455
|
60
63
|
validmind/models/xgboost.py,sha256=joL0uyhE4bJfINHh-dMtPhQ5d1MfWfRMVD77XWmAUnY,951
|
61
|
-
validmind/template.py,sha256=
|
62
|
-
validmind/test_suites/__init__.py,sha256=
|
64
|
+
validmind/template.py,sha256=6k9IcnHwS5Dd4KQrUIpjQ83TZOI3YAhJML7GEB22ZtI,7907
|
65
|
+
validmind/test_suites/__init__.py,sha256=u_qMwPxpqgIkT7UOuE1qb0qDcNk0tXAVrUg1kGMqW2Q,7259
|
63
66
|
validmind/test_suites/classifier.py,sha256=0ZE3z5X_ZewTvmwQ3cVGJQh7dPgg0IlqcQshJJxCFWQ,4003
|
64
67
|
validmind/test_suites/cluster.py,sha256=Wc2NViwivjiuiJMwrnGbOJYeZ3ApN8usWlOPYZYWAgE,2276
|
65
68
|
validmind/test_suites/embeddings.py,sha256=sBQRMjlp7kzsvPkA0qkgmAr4yzUrHMmXSEfSHMkn-_s,1949
|
@@ -72,8 +75,7 @@ validmind/test_suites/summarization.py,sha256=unEpfk8_etLMuYAtSmBzlqrUpo0kd9Vc3S
|
|
72
75
|
validmind/test_suites/tabular_datasets.py,sha256=WE4eLzRCfiqAxRqXnZFRR3Lo_u-TI6KM6hmTbR8rg5o,1798
|
73
76
|
validmind/test_suites/text_data.py,sha256=YGVGBB05356jN9Gzcy5CHShRzo1fm5mKsZY7YBq0cYU,739
|
74
77
|
validmind/test_suites/time_series.py,sha256=msUyYySAe5VHJJp6z0k0cNt2ekMB8-XkxGER75Zs1hs,6724
|
75
|
-
validmind/tests/__init__.py,sha256=
|
76
|
-
validmind/tests/__types__.py,sha256=qpviIvN-OGmgd9Kmw0kZ6HVjYe-IuaSCygXgZyNv1-8,1603
|
78
|
+
validmind/tests/__init__.py,sha256=5V86X-H_z2Dx6gxD2-VnOBjE-pGqXesrm8wkBrgv3YE,15290
|
77
79
|
validmind/tests/data_validation/ACFandPACFPlot.py,sha256=__JowNXtc511g_g8VXc0IX7j6qBE5J_v7IoWUKmj_E8,4745
|
78
80
|
validmind/tests/data_validation/ANOVAOneWayTable.py,sha256=PEHFVJnFAK6Oy5RW1wJThEzri92THRgwQ45f6RXMGMI,6026
|
79
81
|
validmind/tests/data_validation/AutoAR.py,sha256=kulDh8i7p7CjenVvXS54kfZe53M-eXzQ7aHZylnA06M,6676
|
@@ -91,7 +93,7 @@ validmind/tests/data_validation/DefaultRatesbyRiskBandPlot.py,sha256=lrVeFrw4rRN
|
|
91
93
|
validmind/tests/data_validation/DescriptiveStatistics.py,sha256=oVjFO-mR5sMQwzGFrjN5UP9jugNy0nSRtNwPbcGthGk,6411
|
92
94
|
validmind/tests/data_validation/Duplicates.py,sha256=rDLxdNLGqfL-Yon04b8uFESazKtn7hqxsegvPfoRHBE,5639
|
93
95
|
validmind/tests/data_validation/EngleGrangerCoint.py,sha256=Rz8BaptMo79JS8XGrnCGnrMmZo994HBmVGKJCvBqfH0,5580
|
94
|
-
validmind/tests/data_validation/FeatureTargetCorrelationPlot.py,sha256=
|
96
|
+
validmind/tests/data_validation/FeatureTargetCorrelationPlot.py,sha256=wfYhyK-hhUHGxfWDAUqoorY2EXbDeLCbroPMi14vkzs,5036
|
95
97
|
validmind/tests/data_validation/HeatmapFeatureCorrelations.py,sha256=JAxx9JUmplFTcQtaFaCk9JCDCMLkDABMhSgj65ARAUc,5707
|
96
98
|
validmind/tests/data_validation/HighCardinality.py,sha256=4cjBNoWYUHVhl3TuRLrBa6tZ4AWJAOLgIjtk3JnrEZ4,5111
|
97
99
|
validmind/tests/data_validation/HighPearsonCorrelation.py,sha256=0W_nai0F169rH-rsQynEkozTUrFEnTkS0RaFjL-zodA,5582
|
@@ -103,10 +105,10 @@ validmind/tests/data_validation/MissingValues.py,sha256=gvLTy5DiBqp0VemOhVEUq3Bs
|
|
103
105
|
validmind/tests/data_validation/MissingValuesBarPlot.py,sha256=bTfMCab8gK0VXF1EZ18pTguZkFdfo1ZHhz2hmkFAyG4,6226
|
104
106
|
validmind/tests/data_validation/MissingValuesRisk.py,sha256=GzsGHFL-qMQxuqdu62SF4O5r8UDoUN5xv_b8drR-Afc,4110
|
105
107
|
validmind/tests/data_validation/PearsonCorrelationMatrix.py,sha256=dM6M8jjGHNL9umM1vcKwG5bP3BIW8Psle-_0naKg6iE,4747
|
106
|
-
validmind/tests/data_validation/PiTCreditScoresHistogram.py,sha256=
|
108
|
+
validmind/tests/data_validation/PiTCreditScoresHistogram.py,sha256=tH6DB9mlNsg87p2JIYhUaCEiRCrYh2JCFYnS4anoD44,5630
|
107
109
|
validmind/tests/data_validation/PiTPDHistogram.py,sha256=d37gdsUle_m7rzJEgvR735P7hZdzz2ly5YA1huwMbgc,5950
|
108
110
|
validmind/tests/data_validation/RollingStatsPlot.py,sha256=MqKooEL1cIRandoSN7sWhKgXDhdbIbCcBTVvc-FIp5k,5901
|
109
|
-
validmind/tests/data_validation/ScatterPlot.py,sha256=
|
111
|
+
validmind/tests/data_validation/ScatterPlot.py,sha256=57wfWhJY0c0l_iqVYq6DqrbHHNYdH-AJY_sPppLqeYI,4371
|
110
112
|
validmind/tests/data_validation/SeasonalDecompose.py,sha256=U56NXO1q9wnzCWnK3xCeklKPGVUxIOTzi-6cLrUkUsY,8903
|
111
113
|
validmind/tests/data_validation/Skewness.py,sha256=lygUUQomckvdX5__JGOn6Rx0kJRfyw-0gZOjqqN9Phk,4935
|
112
114
|
validmind/tests/data_validation/SpreadPlot.py,sha256=3FMhokxIexGzRoIlRElkkgpQRRdvnlyx0-tt8aK-wDY,4591
|
@@ -132,27 +134,29 @@ validmind/tests/data_validation/nlp/Punctuations.py,sha256=5WI3Uu9EpdJ2FWBY2qBXR
|
|
132
134
|
validmind/tests/data_validation/nlp/StopWords.py,sha256=YAwXyfoCLR8jLm7dlXknSpgUoN4JoBK3750hNByJ5FA,6131
|
133
135
|
validmind/tests/data_validation/nlp/TextDescription.py,sha256=27u4xpFX-FYuMcDVRkw3p1ajcCzd5TgaVkPIqOi8GJc,8718
|
134
136
|
validmind/tests/data_validation/nlp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
135
|
-
validmind/tests/decorator.py,sha256=
|
136
|
-
validmind/tests/model_validation/BertScore.py,sha256=
|
137
|
-
validmind/tests/model_validation/BertScoreAggregate.py,sha256=
|
138
|
-
validmind/tests/model_validation/BleuScore.py,sha256
|
139
|
-
validmind/tests/model_validation/ClusterSizeDistribution.py,sha256=
|
140
|
-
validmind/tests/model_validation/ContextualRecall.py,sha256=
|
141
|
-
validmind/tests/model_validation/
|
137
|
+
validmind/tests/decorator.py,sha256=d08RohEbcWSzUJvNukmRPD9ajTr_Xcpzgc1LQqvzeRY,9319
|
138
|
+
validmind/tests/model_validation/BertScore.py,sha256=IcYrorBjpm65Zhg7nwQpYTpmow9QZeW5EOB9wc4IQP0,4551
|
139
|
+
validmind/tests/model_validation/BertScoreAggregate.py,sha256=UVKZdQ0a0CDRLvCm5OkSw-ERnEoboJAgAWf3s70QKLU,3772
|
140
|
+
validmind/tests/model_validation/BleuScore.py,sha256=-EVViGcu40ZW6g8v4DTlE1K5q7XoCRuoagvsEgLBlXA,3839
|
141
|
+
validmind/tests/model_validation/ClusterSizeDistribution.py,sha256=IKcMBCBsasbi6i8LTqv0H6PUUsG8FXnBtc15uj209WY,4155
|
142
|
+
validmind/tests/model_validation/ContextualRecall.py,sha256=wYyjGu8wMdFfS8y59CB8XxWX2Yblh4GI2qmm1H14HpM,4792
|
143
|
+
validmind/tests/model_validation/FeaturesAUC.py,sha256=aJucUD5u9VxnLpE3klr49VvyvtqT5QGhYE5VNT4hE44,4657
|
144
|
+
validmind/tests/model_validation/MeteorScore.py,sha256=Ym8jaioq6qKlnvltYyHNZ1yDymV7VMGLqn5M-X3tsgQ,4387
|
142
145
|
validmind/tests/model_validation/ModelMetadata.py,sha256=F9ctmlIxngkHgOlggRl0WFLilh46SlM3vYfY9zkhtYk,3733
|
143
|
-
validmind/tests/model_validation/RegardHistogram.py,sha256=
|
144
|
-
validmind/tests/model_validation/RegardScore.py,sha256=
|
145
|
-
validmind/tests/model_validation/
|
146
|
-
validmind/tests/model_validation/
|
147
|
-
validmind/tests/model_validation/
|
148
|
-
validmind/tests/model_validation/
|
149
|
-
validmind/tests/model_validation/
|
150
|
-
validmind/tests/model_validation/
|
146
|
+
validmind/tests/model_validation/RegardHistogram.py,sha256=zkllYyWi18My7s-dq4aNPEUfDF3Ike5ma9QyQXxiep8,6151
|
147
|
+
validmind/tests/model_validation/RegardScore.py,sha256=3N_QcE6zfn1Oi_FxjyGYxseu1mu8mZovQTaUZTeb3As,6172
|
148
|
+
validmind/tests/model_validation/RegressionResidualsPlot.py,sha256=EQzJn9wH_1pztHr2JI26Um3E9KzHmu6o76o4ffbXZj4,5025
|
149
|
+
validmind/tests/model_validation/RougeMetrics.py,sha256=XeenuungQUquTDqpLx34XwIqmc7_uO5MoQyOCahDCEo,5793
|
150
|
+
validmind/tests/model_validation/RougeMetricsAggregate.py,sha256=A3RwyCZ_btNpEsIM-9p5wg529C7lVrMFOKHbHkaZXgI,5204
|
151
|
+
validmind/tests/model_validation/SelfCheckNLIScore.py,sha256=dE7X22unmCGwg5E0Fh5zo3R6VhNBX83tQNyEp6wmnzc,5477
|
152
|
+
validmind/tests/model_validation/TokenDisparity.py,sha256=SnJC9mGywLt0HDxDge83uVJ-0z8qybb7OoedUiaTncc,5456
|
153
|
+
validmind/tests/model_validation/ToxicityHistogram.py,sha256=V1-SkHqp3-JlLV9c4pO-FulvTSwtThQIrOlQc6gDVSc,5099
|
154
|
+
validmind/tests/model_validation/ToxicityScore.py,sha256=IWzFMisP7BiM2Tuya4RJkdAbfvHbfsbVunBK8Dgfl20,5562
|
151
155
|
validmind/tests/model_validation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
152
|
-
validmind/tests/model_validation/embeddings/ClusterDistribution.py,sha256=
|
153
|
-
validmind/tests/model_validation/embeddings/CosineSimilarityDistribution.py,sha256=
|
154
|
-
validmind/tests/model_validation/embeddings/DescriptiveAnalytics.py,sha256=
|
155
|
-
validmind/tests/model_validation/embeddings/EmbeddingsVisualization2D.py,sha256=
|
156
|
+
validmind/tests/model_validation/embeddings/ClusterDistribution.py,sha256=8V2mE_V3S3cIBk29MB0xPqgla1mxiGJcXZ1m99ds3ck,3552
|
157
|
+
validmind/tests/model_validation/embeddings/CosineSimilarityDistribution.py,sha256=B3quw4ZCWVyhDBHbVp637JoVTpSAROJfUwY-ECLOTAo,3459
|
158
|
+
validmind/tests/model_validation/embeddings/DescriptiveAnalytics.py,sha256=hLOcJ3lGigyA2VYAQunKB8dkBzh5TORFawg8TZIlG94,4247
|
159
|
+
validmind/tests/model_validation/embeddings/EmbeddingsVisualization2D.py,sha256=HxXrkp6OKfGgzuRKWzhAGXYAI8VjYIpLWg62nXHOLVw,4342
|
156
160
|
validmind/tests/model_validation/embeddings/StabilityAnalysis.py,sha256=L8nx-ihORWr9sAPLXcUwzgek9wfauQLaQkO4fCEtAMc,4185
|
157
161
|
validmind/tests/model_validation/embeddings/StabilityAnalysisKeyword.py,sha256=qXqGaK8OVcP6h_iEZOf_-5XtbOGpiU00RyI535deAm0,3907
|
158
162
|
validmind/tests/model_validation/embeddings/StabilityAnalysisRandomNoise.py,sha256=N20bQgBP0AUt3EASZHofQUWbE3N5ix04-r6cXS7YFcg,5672
|
@@ -160,68 +164,66 @@ validmind/tests/model_validation/embeddings/StabilityAnalysisSynonyms.py,sha256=
|
|
160
164
|
validmind/tests/model_validation/embeddings/StabilityAnalysisTranslation.py,sha256=mvAmv3PcysITo48GbMS-F_tHUAX_wmS173jrBhBB6mc,4573
|
161
165
|
validmind/tests/model_validation/sklearn/AdjustedMutualInformation.py,sha256=iUt8PJd7Q-nhfDkU0siZY5Gip_uzSCqwOjpd_WBuv2I,2892
|
162
166
|
validmind/tests/model_validation/sklearn/AdjustedRandIndex.py,sha256=Mb03a6R37GagRuy269TE8ZgaMaF3vngcH3-Um6SZYmg,2767
|
163
|
-
validmind/tests/model_validation/sklearn/ClassifierPerformance.py,sha256=
|
164
|
-
validmind/tests/model_validation/sklearn/ClusterCosineSimilarity.py,sha256=
|
165
|
-
validmind/tests/model_validation/sklearn/ClusterPerformance.py,sha256=
|
167
|
+
validmind/tests/model_validation/sklearn/ClassifierPerformance.py,sha256=bbZkuGEm_D_zZf3hBeqjw9DrDKeKoLQiwfg2Cjd7gZY,5945
|
168
|
+
validmind/tests/model_validation/sklearn/ClusterCosineSimilarity.py,sha256=bktc1cEkayjwFd846FgkUwCXChCppcJ7XnbWLauREGo,5485
|
169
|
+
validmind/tests/model_validation/sklearn/ClusterPerformance.py,sha256=Rq2OXSx6DgbUrR9VP8ncUvCK-BFTzxTrMMlLKMQyu7M,5369
|
166
170
|
validmind/tests/model_validation/sklearn/ClusterPerformanceMetrics.py,sha256=iFbLvZkiYUDa9Lul1jX85TfrkwUAIkOhGTUrRlV3U4Y,8604
|
167
171
|
validmind/tests/model_validation/sklearn/CompletenessScore.py,sha256=Uj_hTTTqRLHDJ-pjajfuun_2Anq7W0GQpwPsAhdWq24,2559
|
168
|
-
validmind/tests/model_validation/sklearn/ConfusionMatrix.py,sha256=
|
172
|
+
validmind/tests/model_validation/sklearn/ConfusionMatrix.py,sha256=Bm9fsw9nD1KurbBbXf0Jph0MN7_-7GRiydiTTfDgiU4,5776
|
169
173
|
validmind/tests/model_validation/sklearn/FowlkesMallowsScore.py,sha256=hL7hfvdeZ_jR9ktxMH9NI-hwvLsl478iQDajOXUuocM,3049
|
170
174
|
validmind/tests/model_validation/sklearn/HomogeneityScore.py,sha256=ykBkNCNm1HRyMoU2x5hK20tuKbU0vYrwj4huc4x7v6w,2753
|
171
175
|
validmind/tests/model_validation/sklearn/HyperParametersTuning.py,sha256=YGJ38Px-RRIkWVHavLr_FNm6sod_k_t6U32BLmIFMTg,4660
|
172
176
|
validmind/tests/model_validation/sklearn/KMeansClustersOptimization.py,sha256=o5ScxbbwW0BziLOVW2hxgj91C0fY5KVanU0tyVBNWBs,5960
|
173
|
-
validmind/tests/model_validation/sklearn/MinimumAccuracy.py,sha256=
|
174
|
-
validmind/tests/model_validation/sklearn/MinimumF1Score.py,sha256=
|
175
|
-
validmind/tests/model_validation/sklearn/MinimumROCAUCScore.py,sha256=
|
176
|
-
validmind/tests/model_validation/sklearn/ModelsPerformanceComparison.py,sha256=
|
177
|
-
validmind/tests/model_validation/sklearn/OverfitDiagnosis.py,sha256=
|
177
|
+
validmind/tests/model_validation/sklearn/MinimumAccuracy.py,sha256=MAkVBawefPT_ST5odD3Pyqg-Jbfj1HcmNUkVGwFYcNk,5337
|
178
|
+
validmind/tests/model_validation/sklearn/MinimumF1Score.py,sha256=5QLwdsFkuT-k2QkVR6CZw3gPb6RFrgJe8VtZkqma1eg,4678
|
179
|
+
validmind/tests/model_validation/sklearn/MinimumROCAUCScore.py,sha256=0KMdAHZOnY_PpoWSNZxmudClqQ469JV_V_vTM3FXAC8,4891
|
180
|
+
validmind/tests/model_validation/sklearn/ModelsPerformanceComparison.py,sha256=sUKPQCOrc8r5jCzWyU1n_Cuj9bY4uD8B8aoe-pUoGzY,6297
|
181
|
+
validmind/tests/model_validation/sklearn/OverfitDiagnosis.py,sha256=dnyk2MR4YZSLGm378NqEW5l4tkS4HcRbNc1PqYE96UI,14156
|
178
182
|
validmind/tests/model_validation/sklearn/PermutationFeatureImportance.py,sha256=APnrI-jXTew4nq4CkCqAkIcNS0uwWegxSwvhiHN5kV0,5038
|
179
183
|
validmind/tests/model_validation/sklearn/PopulationStabilityIndex.py,sha256=4X3tvbzl5X-hF23kqqAQlMSSHhLltVTFeBwODF_cz00,10242
|
180
184
|
validmind/tests/model_validation/sklearn/PrecisionRecallCurve.py,sha256=XA3_5uXvqJ7rawyK8_i8oB59cpZwh8T1FU9c-PTMY3Q,4401
|
181
|
-
validmind/tests/model_validation/sklearn/ROCCurve.py,sha256=
|
182
|
-
validmind/tests/model_validation/sklearn/RegressionErrors.py,sha256=
|
183
|
-
validmind/tests/model_validation/sklearn/RegressionModelsPerformanceComparison.py,sha256=
|
184
|
-
validmind/tests/model_validation/sklearn/RegressionR2Square.py,sha256
|
185
|
+
validmind/tests/model_validation/sklearn/ROCCurve.py,sha256=llDy61r921sIcoTZk4tXhjM50sOO90h_zsEKxa3Y4wA,5785
|
186
|
+
validmind/tests/model_validation/sklearn/RegressionErrors.py,sha256=SBxFPZ1-C_ObpLeol7ghf5cdJBimNljYTlFsfohagtA,5980
|
187
|
+
validmind/tests/model_validation/sklearn/RegressionModelsPerformanceComparison.py,sha256=RIup0L4cXycyWfU4GY9J7BuX88OoJ9eSs6ruT4Ho1vU,5539
|
188
|
+
validmind/tests/model_validation/sklearn/RegressionR2Square.py,sha256=-EWxr6T6y59whYDDaDeenduHMaYoOpc8AVwe-X0j83o,4969
|
185
189
|
validmind/tests/model_validation/sklearn/RobustnessDiagnosis.py,sha256=JQTWfdocIHYYv69nzbC0M0GAh6ldUMfQ4TKK9jUnhCI,13780
|
186
|
-
validmind/tests/model_validation/sklearn/SHAPGlobalImportance.py,sha256=
|
187
|
-
validmind/tests/model_validation/sklearn/SilhouettePlot.py,sha256=
|
188
|
-
validmind/tests/model_validation/sklearn/TrainingTestDegradation.py,sha256=
|
190
|
+
validmind/tests/model_validation/sklearn/SHAPGlobalImportance.py,sha256=iGx_y-6NrzptmEzTKpKmUPz_bwS6ewXEuwOSM1LRQM4,8650
|
191
|
+
validmind/tests/model_validation/sklearn/SilhouettePlot.py,sha256=TznxbLhwybNbht6hUg4MSKxX3TI7zJp75tQH0svWon0,6237
|
192
|
+
validmind/tests/model_validation/sklearn/TrainingTestDegradation.py,sha256=Gy2I67FFu1q_Ny92RAiXyZ_l6TZEY0_X_MMNHy7pqc4,7273
|
189
193
|
validmind/tests/model_validation/sklearn/VMeasure.py,sha256=x2cdcN_Wh_hnfAsF715QgWBPbhZMi533PO-No84iEJ4,2772
|
190
|
-
validmind/tests/model_validation/sklearn/WeakspotsDiagnosis.py,sha256=
|
194
|
+
validmind/tests/model_validation/sklearn/WeakspotsDiagnosis.py,sha256=5Ishn16wtBsfmlnlj9mufaElNQ6uGfI9hakvvAVq7os,14227
|
191
195
|
validmind/tests/model_validation/sklearn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
192
196
|
validmind/tests/model_validation/statsmodels/ADF.py,sha256=97lutdezxrdsFB1rkTESx2uSp8RHPRhEhucrs2ZyR04,4042
|
193
197
|
validmind/tests/model_validation/statsmodels/ADFTest.py,sha256=pNuH0699hyI7533iuMMf2C3FiVb-TM3fSEsZuGdSGJA,4039
|
194
198
|
validmind/tests/model_validation/statsmodels/AutoARIMA.py,sha256=mb-QlmiYDaOWJNneUcgL27km3dGNaqIuP6Bw_rG4Emc,5172
|
195
199
|
validmind/tests/model_validation/statsmodels/BoxPierce.py,sha256=3xhBDYemI07MK-DKO788Vc2q-ST7sycmqr7HN1inU-E,3581
|
200
|
+
validmind/tests/model_validation/statsmodels/CumulativePredictionProbabilities.py,sha256=_l8aPSS_IgGypt3A3nyd3Zd54W8JRvK-t3Rvc7-LQrc,6389
|
196
201
|
validmind/tests/model_validation/statsmodels/DFGLSArch.py,sha256=SjmQYMazR4QzfpCwwhxty_JvJaUU88hcdqH0uFz3tlE,3365
|
197
202
|
validmind/tests/model_validation/statsmodels/DurbinWatsonTest.py,sha256=dkdMH0dfFCbHacpFCL_7KBUzHiwmV5DYhsJlV4_k9dI,2957
|
198
203
|
validmind/tests/model_validation/statsmodels/FeatureImportanceAndSignificance.py,sha256=ZOZucyM6YbWInqS_flSpgC2saOVDPdrcvUYWZ_gk9Go,7199
|
199
|
-
validmind/tests/model_validation/statsmodels/GINITable.py,sha256=
|
204
|
+
validmind/tests/model_validation/statsmodels/GINITable.py,sha256=QUbvTuxm8l0vL7OkVqLmiI21gaDEZ35SA4wikxK93YM,5753
|
200
205
|
validmind/tests/model_validation/statsmodels/JarqueBera.py,sha256=G2Jyry_knx3h5daErRUNZO5JP63M9OurUSuCQBVEke4,3362
|
201
206
|
validmind/tests/model_validation/statsmodels/KPSS.py,sha256=tP6Xzp7oZ_p1ktIV3g8bG4CA4YTrXt7hrTdvnfCUf4M,3313
|
202
207
|
validmind/tests/model_validation/statsmodels/KolmogorovSmirnov.py,sha256=RXsSi7FeJeUl8Q0QXvacQ8r9HR4hVtRiGPoMrRLtXjg,4371
|
203
208
|
validmind/tests/model_validation/statsmodels/LJungBox.py,sha256=PTPSW8IT5b8lHV66vQRtjbz7VWPcXCn7PGz6YOK9j0w,3309
|
204
209
|
validmind/tests/model_validation/statsmodels/Lilliefors.py,sha256=Gmxw2r4Qsa8kVE-5MCkqE3UJZdR9eGMYTvg-D7s2Mp8,3997
|
205
|
-
validmind/tests/model_validation/statsmodels/LogRegressionConfusionMatrix.py,sha256=MEN1gPkrUjcEtRcxxGoiH9G63VyKggHDQKdzlY2M1W0,5339
|
206
|
-
validmind/tests/model_validation/statsmodels/LogisticRegCumulativeProb.py,sha256=DO3HBhekqi0oyKfbC2j-ktXTJe_o8s63UUt5ySCSH80,7155
|
207
|
-
validmind/tests/model_validation/statsmodels/LogisticRegPredictionHistogram.py,sha256=Mvi88U6hFQfFwi45uajXTg0r2mEaoxh8GPOU3uWx90w,6859
|
208
210
|
validmind/tests/model_validation/statsmodels/PDRatingClassPlot.py,sha256=EqsAG2vpDzBxb-0iGBKegtF25U2nuw8VlQVAWvAnXFs,6064
|
209
211
|
validmind/tests/model_validation/statsmodels/PhillipsPerronArch.py,sha256=Z1wogft3oIJHE795vNUMa1r5r-t0yLm19rJRLKmLFAA,3133
|
212
|
+
validmind/tests/model_validation/statsmodels/PredictionProbabilitiesHistogram.py,sha256=6HSzbV9oSPZg7olFtnpheTxAD7hFdPISbhOKtmU0QbY,6394
|
210
213
|
validmind/tests/model_validation/statsmodels/RegressionCoeffsPlot.py,sha256=zWOzmEcdsQMzGzT4nCpSSQLQcdc0BERju-xgLBBGC4Y,5657
|
211
214
|
validmind/tests/model_validation/statsmodels/RegressionFeatureSignificance.py,sha256=TGz8ei7pG31tLKjzqNiBNO-UbzGWCabv2rWX-DjiJ4Y,5494
|
212
|
-
validmind/tests/model_validation/statsmodels/RegressionModelForecastPlot.py,sha256=
|
213
|
-
validmind/tests/model_validation/statsmodels/RegressionModelForecastPlotLevels.py,sha256=
|
214
|
-
validmind/tests/model_validation/statsmodels/RegressionModelInsampleComparison.py,sha256=
|
215
|
-
validmind/tests/model_validation/statsmodels/RegressionModelOutsampleComparison.py,sha256=
|
215
|
+
validmind/tests/model_validation/statsmodels/RegressionModelForecastPlot.py,sha256=6WlwIoUTQKP8IMuqKtS0AVvM49ubLUmOWYIK3DoHjeo,6580
|
216
|
+
validmind/tests/model_validation/statsmodels/RegressionModelForecastPlotLevels.py,sha256=fERW8xCHVGLkJVEMVmHdCrhyBhlNf08Bi22BxyNSXeg,8328
|
217
|
+
validmind/tests/model_validation/statsmodels/RegressionModelInsampleComparison.py,sha256=4fJixhDEbMdZOg8EOxNJe3J5H6_PiC1QFg2hWIuauu4,6474
|
218
|
+
validmind/tests/model_validation/statsmodels/RegressionModelOutsampleComparison.py,sha256=YrFnY3Vy_0L6uQ_1drz-EUNjgqVaQgPtGohf_pFIJRY,6283
|
216
219
|
validmind/tests/model_validation/statsmodels/RegressionModelSensitivityPlot.py,sha256=q30wFH7QRZKriVMXBmZVE2K30kjcb6zX4IVl1NHT2kA,7320
|
217
|
-
validmind/tests/model_validation/statsmodels/RegressionModelSummary.py,sha256=
|
220
|
+
validmind/tests/model_validation/statsmodels/RegressionModelSummary.py,sha256=IkWo8tBh7np_4xTy5cm8SHoXEYggwjk0jiFw3wg1YKA,4350
|
218
221
|
validmind/tests/model_validation/statsmodels/RegressionModelsCoeffs.py,sha256=XTirM2uYbl-Idf1MooaTPZcrN1s5g-nibHUz5SdYfBg,4592
|
219
|
-
validmind/tests/model_validation/statsmodels/RegressionModelsPerformance.py,sha256=
|
222
|
+
validmind/tests/model_validation/statsmodels/RegressionModelsPerformance.py,sha256=oY57hquPFXsfrzmOxCvY66CfK3CVAsF9W_XbpMaSaQo,5443
|
223
|
+
validmind/tests/model_validation/statsmodels/RegressionPermutationFeatureImportance.py,sha256=hrWFViq7poX_G2-AwGffRQnwN9Vr42e4DfZKP-_gsRo,5044
|
220
224
|
validmind/tests/model_validation/statsmodels/ResidualsVisualInspection.py,sha256=ROF3y_akn0cxo6sA38aWElkleg0bcvQfttPc1pjJaHc,5771
|
221
225
|
validmind/tests/model_validation/statsmodels/RunsTest.py,sha256=TJdixri2vrrA4HUUpTYveoVzr7V9lcH6CJnPTLxSqms,3684
|
222
|
-
validmind/tests/model_validation/statsmodels/
|
223
|
-
validmind/tests/model_validation/statsmodels/ScorecardHistogram.py,sha256=UfiGDiOuraGz8vu9R3cw132oxahLqte7jEpNoeW6Ses,7073
|
224
|
-
validmind/tests/model_validation/statsmodels/ScorecardProbabilitiesHistogram.py,sha256=-SfsY5gZU4w-LmWdAHzKizU4tAqZipZcrX-7AzDhDEI,7140
|
226
|
+
validmind/tests/model_validation/statsmodels/ScorecardHistogram.py,sha256=uESuMD8UA_BPRjnIbsnHUQUCzTSWxGG6646QRW1wMH8,6300
|
225
227
|
validmind/tests/model_validation/statsmodels/ShapiroWilk.py,sha256=W8_EARepPA0CpApy0w7cLcbnP7ZegBjntGSUOcuyrqQ,3243
|
226
228
|
validmind/tests/model_validation/statsmodels/ZivotAndrewsArch.py,sha256=4QrZImKZYVLKrmUgjnBTldtIqXf8-tyz9CiNqMYtj_w,3291
|
227
229
|
validmind/tests/model_validation/statsmodels/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -235,46 +237,45 @@ validmind/tests/prompt_validation/Robustness.py,sha256=VIQotugWQ32Q1kr1kacBuqk-q
|
|
235
237
|
validmind/tests/prompt_validation/Specificity.py,sha256=v823rZAr9a810Q_RlgH7FqPPxXZ00hDJApkFaJJ8mgk,6116
|
236
238
|
validmind/tests/prompt_validation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
237
239
|
validmind/tests/prompt_validation/ai_powered_test.py,sha256=pogmrOR2fTY34Tx5TXIs5Smjz09mdh5Kp4NifrmPrFY,2975
|
238
|
-
validmind/tests/test_providers.py,sha256=
|
239
|
-
validmind/unit_metrics/__init__.py,sha256=
|
240
|
-
validmind/unit_metrics/
|
241
|
-
validmind/unit_metrics/
|
242
|
-
validmind/unit_metrics/
|
243
|
-
validmind/unit_metrics/
|
244
|
-
validmind/unit_metrics/
|
245
|
-
validmind/unit_metrics/
|
246
|
-
validmind/unit_metrics/regression/
|
247
|
-
validmind/unit_metrics/regression/
|
248
|
-
validmind/unit_metrics/regression/
|
249
|
-
validmind/unit_metrics/regression/
|
250
|
-
validmind/unit_metrics/regression/
|
251
|
-
validmind/unit_metrics/regression/
|
252
|
-
validmind/unit_metrics/sklearn/
|
253
|
-
validmind/unit_metrics/sklearn/
|
254
|
-
validmind/unit_metrics/sklearn/
|
255
|
-
validmind/unit_metrics/sklearn/
|
256
|
-
validmind/unit_metrics/sklearn/
|
257
|
-
validmind/utils.py,sha256=
|
258
|
-
validmind/vm_models/__init__.py,sha256=
|
259
|
-
validmind/vm_models/dataset.py,sha256=
|
240
|
+
validmind/tests/test_providers.py,sha256=1tYn_sWNqifFpOp8eNvcVyJzxBjhHV5Py4FxO8opPZA,4944
|
241
|
+
validmind/unit_metrics/__init__.py,sha256=gPrZWA8hYuV7fGR2sQ5FqzSWU_4l0xkKgDq2mox2Prw,8368
|
242
|
+
validmind/unit_metrics/classification/sklearn/Accuracy.py,sha256=2Ra_OpKceY01h1dAFCqRFAwe--K2oVbCUiYjM5AH_nQ,480
|
243
|
+
validmind/unit_metrics/classification/sklearn/F1.py,sha256=Uiq5sPyNpALhApTkmLUhh76mF91bLCABB5OVHOlbmGo,437
|
244
|
+
validmind/unit_metrics/classification/sklearn/Precision.py,sha256=8zO5VDZhfT8R2VFYiV-CzsZwhsTwVAKca4nhD-qALLw,458
|
245
|
+
validmind/unit_metrics/classification/sklearn/ROC_AUC.py,sha256=5-i1xhrLg7Ix4sk7pBKDBtlqBCNRD365LnTvsekSVYs,452
|
246
|
+
validmind/unit_metrics/classification/sklearn/Recall.py,sha256=0WG3A6K9M1UmbWQKoS_wwLfq-cXVDDTIA1ZpaJNyKp8,449
|
247
|
+
validmind/unit_metrics/composite.py,sha256=3bf8oUPCevOixJIHsc_y0WTb7mG1B1Wt54RTyyx7QK0,7603
|
248
|
+
validmind/unit_metrics/regression/GiniCoefficient.py,sha256=ebh1rOob8mEmQp0EpXcneAXjc4AIfm6O3Y0_mnTahKA,984
|
249
|
+
validmind/unit_metrics/regression/HuberLoss.py,sha256=JAUxKFpXp1NtQKEJMZlGgxDlk8pFT1tY3ZcxNQPDhHM,680
|
250
|
+
validmind/unit_metrics/regression/KolmogorovSmirnovStatistic.py,sha256=DRHuFH3DqDMy56tzkN8ETwt36FCu1m-nGxK0OJCPMDk,981
|
251
|
+
validmind/unit_metrics/regression/MeanAbsolutePercentageError.py,sha256=u7dOSwSnxYsszp-0uyYwVVvMDTh9jKbWUh1gi8pbczM,471
|
252
|
+
validmind/unit_metrics/regression/MeanBiasDeviation.py,sha256=TCjnGGOSqgPYcOU8MpMZgYkYQbXKXekQNzOVIFEQ5ZA,395
|
253
|
+
validmind/unit_metrics/regression/QuantileLoss.py,sha256=9WITHNHCy-RFVZiUp-bSDrKsePKYbb0a7o13Ohvhvas,470
|
254
|
+
validmind/unit_metrics/regression/sklearn/AdjustedRSquaredScore.py,sha256=rhFpUMFI1mUaB8dGnNz_vO79VmdUIkJVRS-f1cB-6l0,636
|
255
|
+
validmind/unit_metrics/regression/sklearn/MeanAbsoluteError.py,sha256=LCNgpDw6FBHUuMZfDkJj0VEI7g3miH8xucrMQQ0Qgio,491
|
256
|
+
validmind/unit_metrics/regression/sklearn/MeanSquaredError.py,sha256=7UQnDTTO7yRRyMe3Zac9ZyjEbbD8pW_8WnZwHdVB_8U,463
|
257
|
+
validmind/unit_metrics/regression/sklearn/RSquaredScore.py,sha256=h9U5ndtnJfNNtKPZIo5n3KRp-m4akQcEo0t1iSwjVzY,420
|
258
|
+
validmind/unit_metrics/regression/sklearn/RootMeanSquaredError.py,sha256=_5IQIU9jNfmTE4NLJvaRWXbudRGV2PS7nYF5e4fkSMY,556
|
259
|
+
validmind/utils.py,sha256=8vJutsXoSi9v3_0UznWEvSm-m-TGgLv33rTcuZtsqw8,12876
|
260
|
+
validmind/vm_models/__init__.py,sha256=QjrOZpqDNJlW8cH2D0xTkPAgX9UadS_ITNHgJ4NxrFs,1160
|
261
|
+
validmind/vm_models/dataset.py,sha256=aNDR0tkqZUipTZG21ajkvJ7DumhWNT_h6E2X-binc1w,43308
|
260
262
|
validmind/vm_models/figure.py,sha256=iSrvPcCG5sQrMkX1Fh6c5utRzaroh3bc6IlnGDOK_Eg,6651
|
261
263
|
validmind/vm_models/model.py,sha256=f6hAy1J-UfVxLsSCu4VjpGyL-UnJWMivqkBB2Uhd2uU,4823
|
262
|
-
validmind/vm_models/test/metric.py,sha256=
|
264
|
+
validmind/vm_models/test/metric.py,sha256=C2AjlSOC0N72ucAaMdH3EMHXnvZ8jXlGSQwEs3S1N1g,3911
|
263
265
|
validmind/vm_models/test/metric_result.py,sha256=Bak4GDrMlNq5NtgP5exwlPsKZgz3tWgtC6jZqtHjvqM,1987
|
264
266
|
validmind/vm_models/test/output_template.py,sha256=njqCAMyLxwadkCWhACVskyL9-psTgmUysaeeirTVAX4,1500
|
265
267
|
validmind/vm_models/test/result_summary.py,sha256=QJcIKJUeBf5wW3lyue6ctsi1jKSyoiAIfmjudGJiJtc,2028
|
266
|
-
validmind/vm_models/test/result_wrapper.py,sha256=
|
267
|
-
validmind/vm_models/test/test.py,sha256=
|
268
|
-
validmind/vm_models/test/threshold_test.py,sha256=
|
268
|
+
validmind/vm_models/test/result_wrapper.py,sha256=Fkj2KFBjy_fRiBtOLJmnplXhLn2D3cnRrQhwlopowkg,13938
|
269
|
+
validmind/vm_models/test/test.py,sha256=434PqhPcbwfCmNjYVwHGMG-rViIatb9-1nmxkdZF8Xo,3104
|
270
|
+
validmind/vm_models/test/threshold_test.py,sha256=Iy84PLsuabhZSPlxVQZ_kAo_FTqxmZ8AeN9yQDO5wMI,4270
|
269
271
|
validmind/vm_models/test/threshold_test_result.py,sha256=EXP-g_e3NsnpkvNgYew030qVUoY6ZTHyuuFUXaq-BuM,1954
|
270
|
-
validmind/vm_models/test/unit_metric.py,sha256=w25r8ls-91z8gLA1wmSJN13z5DVMOdpk9cNJnBeIs3k,2556
|
271
272
|
validmind/vm_models/test_context.py,sha256=URm6YvK6ReRevngIIVSPmV2tdc4rRZaWbB6hlRKsOj4,9027
|
272
273
|
validmind/vm_models/test_suite/runner.py,sha256=U93TauwLNEbAgJIzBZ9k9ip9NnlTt0gACHVgfO7J9BI,6754
|
273
|
-
validmind/vm_models/test_suite/summary.py,sha256=
|
274
|
+
validmind/vm_models/test_suite/summary.py,sha256=roSzR-wWs6_eoKq-yDA-cMi5pA0K3H7cpR2TUCG0uog,4555
|
274
275
|
validmind/vm_models/test_suite/test.py,sha256=cIa-6_YkFp7Io4wBkr09aFNmljmUFSagV4JreLd1Q6Y,5285
|
275
|
-
validmind/vm_models/test_suite/test_suite.py,sha256=
|
276
|
-
validmind-2.0.
|
277
|
-
validmind-2.0.
|
278
|
-
validmind-2.0.
|
279
|
-
validmind-2.0.
|
280
|
-
validmind-2.0.
|
276
|
+
validmind/vm_models/test_suite/test_suite.py,sha256=Cns2wL54v0T5Mv5_HJb3kMeaa4rtycdqT8KxK9_rWEU,6279
|
277
|
+
validmind-2.1.0.dist-info/LICENSE,sha256=XonPUfwjvrC5Ombl3y-ko0Wubb1xdG_7nzvIbkZRKHw,35772
|
278
|
+
validmind-2.1.0.dist-info/METADATA,sha256=wId7ww5qTi3rRptAQIQc4BYkTRxi5Zq0oBH8VeRDyDs,3826
|
279
|
+
validmind-2.1.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
280
|
+
validmind-2.1.0.dist-info/entry_points.txt,sha256=HuW7YyOv9u_OEWpViQXtv0nfoI67uieJHawKWA4Hv9A,76
|
281
|
+
validmind-2.1.0.dist-info/RECORD,,
|
validmind/tests/__types__.py
DELETED
@@ -1,62 +0,0 @@
|
|
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
|
-
"""All Tests for ValidMind"""
|
6
|
-
|
7
|
-
from typing import Any, Dict, Protocol
|
8
|
-
|
9
|
-
|
10
|
-
class ExternalTest(Protocol):
|
11
|
-
"""Protocol for user-defined tests"""
|
12
|
-
|
13
|
-
test_type: str
|
14
|
-
|
15
|
-
def description(self) -> str:
|
16
|
-
"""Return the test description (optional)
|
17
|
-
|
18
|
-
If this method is not implemented, the test description will be
|
19
|
-
automatically generated from the docstring of the test class.
|
20
|
-
|
21
|
-
Returns:
|
22
|
-
str: The test description
|
23
|
-
"""
|
24
|
-
...
|
25
|
-
|
26
|
-
def run(self) -> Dict[str, Any]:
|
27
|
-
"""Run the test and return the results
|
28
|
-
|
29
|
-
Returns:
|
30
|
-
dict: The test results object to be saved
|
31
|
-
"""
|
32
|
-
...
|
33
|
-
|
34
|
-
def summary(self, test_results: Dict[str, Any]) -> Dict[str, Any]:
|
35
|
-
"""Summarize the test results
|
36
|
-
|
37
|
-
Args:
|
38
|
-
test_results (dict): The test results object
|
39
|
-
|
40
|
-
Returns:
|
41
|
-
dict: The test summary object to be displayed
|
42
|
-
"""
|
43
|
-
...
|
44
|
-
|
45
|
-
|
46
|
-
class ExternalTestProvider(Protocol):
|
47
|
-
"""Protocol for user-defined test providers"""
|
48
|
-
|
49
|
-
def load_test(self, test_id: str) -> ExternalTest:
|
50
|
-
"""Load the test by test ID
|
51
|
-
|
52
|
-
Args:
|
53
|
-
test_id (str): The test ID (does not contain the namespace under which
|
54
|
-
the test is registered)
|
55
|
-
|
56
|
-
Returns:
|
57
|
-
ExternalTest: The test object
|
58
|
-
|
59
|
-
Raises:
|
60
|
-
FileNotFoundError: If the test is not found
|
61
|
-
"""
|
62
|
-
...
|
@@ -1,128 +0,0 @@
|
|
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
|
-
from dataclasses import dataclass
|
6
|
-
|
7
|
-
import numpy as np
|
8
|
-
import plotly.figure_factory as ff
|
9
|
-
from sklearn import metrics
|
10
|
-
|
11
|
-
from validmind.vm_models import Figure, Metric
|
12
|
-
|
13
|
-
|
14
|
-
@dataclass
|
15
|
-
class LogRegressionConfusionMatrix(Metric):
|
16
|
-
"""
|
17
|
-
Generates a confusion matrix for logistic regression model performance, utilizing thresholded probabilities for
|
18
|
-
classification assessments.
|
19
|
-
|
20
|
-
**Purpose**: The Logistic Regression Confusion Matrix is a metric used to measure the performance of a logistic
|
21
|
-
regression classification model. This metric is particularly useful for scenarios where a model's predictions are
|
22
|
-
formulated by thresholding probabilities. The main advantage of this approach is that it includes true positives,
|
23
|
-
true negatives, false positives, and false negatives in its assessment, providing a more comprehensive overview of
|
24
|
-
the model's effectiveness in distinguishing between correct and incorrect classifications.
|
25
|
-
|
26
|
-
**Test Mechanism**: The methodology behind the Logistic Regression Confusion Matrix uses the
|
27
|
-
`sklearn.metrics.confusion_matrix` function from the Python library to generate a matrix. This matrix is created by
|
28
|
-
comparing the model's predicted probabilities, which are initially converted to binary predictions using a
|
29
|
-
predetermined cut-off threshold (default is 0.5), against the actual classes. The matrix's design consists of the
|
30
|
-
predicted class labels forming the x-axis, and the actual class labels forming the y-axis, with each cell
|
31
|
-
containing the record of true positives, true negatives, false positives, and false negatives respectively.
|
32
|
-
|
33
|
-
**Signs of High Risk**:
|
34
|
-
- A significant number of false positives and false negatives, indicating that the model is incorrectly classifying
|
35
|
-
instances.
|
36
|
-
- The counts of true positives and true negatives being substantially lower than projected, positioning this as a
|
37
|
-
potential high-risk indicator.
|
38
|
-
|
39
|
-
**Strengths**:
|
40
|
-
- Simple, intuitive, and provides a comprehensive understanding of the model's performance.
|
41
|
-
- Provides a detailed breakdown of error types, improving transparency.
|
42
|
-
- Offers flexible adaptation for diverse prediction scenarios by allowing adjustments to the cut-off threshold, and
|
43
|
-
enabling exploration of trade-offs between precision (minimizing false positives) and recall (minimizing false
|
44
|
-
negatives).
|
45
|
-
|
46
|
-
**Limitations**:
|
47
|
-
- Acceptable performance on majority classes but potential poor performance on minority classes in imbalanced
|
48
|
-
datasets, as the confusion matrix may supply misleading results.
|
49
|
-
- Lack of insight into the severity of the mistakes and the cost trade-off between different types of
|
50
|
-
misclassification.
|
51
|
-
- Selection of the cut-off threshold can significantly alter the interpretation, and a poorly chosen threshold may
|
52
|
-
lead to erroneous conclusions.
|
53
|
-
"""
|
54
|
-
|
55
|
-
name = "log_regression_confusion_matrix"
|
56
|
-
required_inputs = ["model", "dataset"]
|
57
|
-
metadata = {
|
58
|
-
"task_types": ["classification"],
|
59
|
-
"tags": ["visualization", "model_performance", "logistic_regression"],
|
60
|
-
}
|
61
|
-
|
62
|
-
default_params = {
|
63
|
-
"cut_off_threshold": 0.5, # Add a cut_off_threshold parameter
|
64
|
-
}
|
65
|
-
|
66
|
-
def run(self):
|
67
|
-
cut_off_threshold = self.default_parameters["cut_off_threshold"]
|
68
|
-
|
69
|
-
y_true = self.inputs.dataset.y
|
70
|
-
y_labels = np.unique(y_true)
|
71
|
-
y_labels.sort()
|
72
|
-
|
73
|
-
y_pred_prob = self.inputs.model.predict_proba(self.inputs.dataset.x)
|
74
|
-
y_pred = np.where(y_pred_prob > cut_off_threshold, 1, 0)
|
75
|
-
y_true = y_true.astype(y_pred.dtype)
|
76
|
-
|
77
|
-
cm = metrics.confusion_matrix(y_true, y_pred, labels=y_labels)
|
78
|
-
tn, fp, fn, tp = cm.ravel()
|
79
|
-
|
80
|
-
# Custom text to display on the heatmap cells
|
81
|
-
text = [
|
82
|
-
[
|
83
|
-
f"<b>True Negatives (TN)</b><br />{tn}",
|
84
|
-
f"<b>False Positives (FP)</b><br />{fp}",
|
85
|
-
],
|
86
|
-
[
|
87
|
-
f"<b>False Negatives (FN)</b><br />{fn}",
|
88
|
-
f"<b>True Positives (TP)</b><br />{tp}",
|
89
|
-
],
|
90
|
-
]
|
91
|
-
|
92
|
-
fig = ff.create_annotated_heatmap(
|
93
|
-
[[tn, fp], [fn, tp]],
|
94
|
-
x=[0, 1],
|
95
|
-
y=[0, 1],
|
96
|
-
colorscale="Blues",
|
97
|
-
annotation_text=text,
|
98
|
-
)
|
99
|
-
# Reverse the xaxis so that 1 is on the left
|
100
|
-
fig["layout"]["xaxis"]["autorange"] = "reversed"
|
101
|
-
|
102
|
-
fig["data"][0][
|
103
|
-
"hovertemplate"
|
104
|
-
] = "True Label:%{y}<br>Predicted Label:%{x}<br>Count:%{z}<extra></extra>"
|
105
|
-
|
106
|
-
fig.update_layout(
|
107
|
-
xaxis=dict(title="Predicted label", constrain="domain"),
|
108
|
-
yaxis=dict(title="True label", scaleanchor="x", scaleratio=1),
|
109
|
-
autosize=False,
|
110
|
-
width=600,
|
111
|
-
height=600,
|
112
|
-
)
|
113
|
-
|
114
|
-
return self.cache_results(
|
115
|
-
metric_value={
|
116
|
-
"tn": tn,
|
117
|
-
"fp": fp,
|
118
|
-
"fn": fn,
|
119
|
-
"tp": tp,
|
120
|
-
},
|
121
|
-
figures=[
|
122
|
-
Figure(
|
123
|
-
for_object=self,
|
124
|
-
key="confusion_matrix",
|
125
|
-
figure=fig,
|
126
|
-
)
|
127
|
-
],
|
128
|
-
)
|