validmind 2.0.1__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 +6 -3
- validmind/__version__.py +1 -1
- validmind/ai.py +193 -0
- validmind/api_client.py +45 -31
- validmind/client.py +33 -6
- validmind/datasets/classification/customer_churn.py +2 -2
- 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/datasets/nlp/__init__.py +5 -0
- validmind/datasets/nlp/cnn_dailymail.py +98 -0
- validmind/datasets/nlp/datasets/cnn_dailymail_100_with_predictions.csv +255 -0
- validmind/datasets/nlp/datasets/cnn_dailymail_500_with_predictions.csv +1277 -0
- validmind/datasets/nlp/datasets/sentiments_with_predictions.csv +4847 -0
- validmind/errors.py +11 -1
- validmind/logging.py +9 -2
- validmind/models/huggingface.py +2 -2
- validmind/models/pytorch.py +3 -3
- validmind/models/sklearn.py +4 -4
- validmind/template.py +2 -2
- validmind/test_suites/__init__.py +4 -2
- validmind/tests/__init__.py +130 -45
- validmind/tests/data_validation/DatasetDescription.py +0 -1
- 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/data_validation/nlp/StopWords.py +1 -6
- validmind/tests/data_validation/nlp/TextDescription.py +20 -9
- validmind/tests/decorator.py +313 -0
- 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 +92 -0
- validmind/tests/model_validation/RegardHistogram.py +6 -7
- validmind/tests/model_validation/RegardScore.py +4 -6
- validmind/tests/model_validation/RegressionResidualsPlot.py +127 -0
- validmind/tests/model_validation/RougeMetrics.py +7 -5
- validmind/tests/model_validation/RougeMetricsAggregate.py +1 -1
- validmind/tests/model_validation/SelfCheckNLIScore.py +112 -0
- 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 +17 -22
- validmind/tests/model_validation/embeddings/EmbeddingsVisualization2D.py +1 -1
- validmind/tests/model_validation/sklearn/ClassifierPerformance.py +16 -17
- 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 +55 -5
- validmind/tests/model_validation/sklearn/SilhouettePlot.py +1 -1
- validmind/tests/model_validation/sklearn/TrainingTestDegradation.py +11 -5
- 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 +2 -2
- validmind/tests/model_validation/statsmodels/RegressionPermutationFeatureImportance.py +128 -0
- validmind/tests/model_validation/statsmodels/ScorecardHistogram.py +70 -103
- validmind/tests/prompt_validation/ai_powered_test.py +2 -0
- validmind/tests/test_providers.py +14 -124
- validmind/unit_metrics/__init__.py +75 -70
- 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 +228 -0
- validmind/unit_metrics/regression/GiniCoefficient.py +33 -0
- validmind/unit_metrics/regression/HuberLoss.py +23 -0
- validmind/unit_metrics/regression/KolmogorovSmirnovStatistic.py +30 -0
- validmind/unit_metrics/regression/MeanAbsolutePercentageError.py +16 -0
- validmind/unit_metrics/regression/MeanBiasDeviation.py +13 -0
- validmind/unit_metrics/regression/QuantileLoss.py +15 -0
- validmind/unit_metrics/regression/sklearn/AdjustedRSquaredScore.py +21 -0
- validmind/unit_metrics/regression/sklearn/MeanAbsoluteError.py +13 -0
- validmind/unit_metrics/regression/sklearn/MeanSquaredError.py +13 -0
- validmind/unit_metrics/regression/sklearn/RSquaredScore.py +13 -0
- validmind/unit_metrics/regression/sklearn/RootMeanSquaredError.py +20 -0
- validmind/utils.py +20 -31
- validmind/vm_models/__init__.py +0 -2
- validmind/vm_models/dataset.py +623 -29
- validmind/vm_models/figure.py +52 -17
- validmind/vm_models/test/metric.py +33 -31
- validmind/vm_models/test/output_template.py +0 -27
- validmind/vm_models/test/result_wrapper.py +68 -36
- validmind/vm_models/test/test.py +4 -2
- validmind/vm_models/test/threshold_test.py +24 -14
- validmind/vm_models/test_context.py +7 -0
- validmind/vm_models/test_suite/runner.py +1 -1
- validmind/vm_models/test_suite/summary.py +3 -3
- validmind/vm_models/test_suite/test.py +1 -1
- validmind/vm_models/test_suite/test_suite.py +2 -1
- {validmind-2.0.1.dist-info → validmind-2.1.0.dist-info}/METADATA +18 -18
- {validmind-2.0.1.dist-info → validmind-2.1.0.dist-info}/RECORD +116 -94
- validmind-2.1.0.dist-info/entry_points.txt +3 -0
- 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 -20
- validmind/unit_metrics/sklearn/classification/F1.py +0 -22
- validmind/unit_metrics/sklearn/classification/Precision.py +0 -22
- validmind/unit_metrics/sklearn/classification/ROC_AUC.py +0 -20
- validmind/unit_metrics/sklearn/classification/Recall.py +0 -20
- validmind/vm_models/test/unit_metric.py +0 -88
- {validmind-2.0.1.dist-info → validmind-2.1.0.dist-info}/LICENSE +0 -0
- {validmind-2.0.1.dist-info → validmind-2.1.0.dist-info}/WHEEL +0 -0
@@ -1,16 +1,17 @@
|
|
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
|
7
7
|
Author-email: andres@validmind.ai
|
8
|
-
Requires-Python: >=3.8,<3.
|
8
|
+
Requires-Python: >=3.8,<3.12
|
9
9
|
Classifier: License :: Other/Proprietary License
|
10
10
|
Classifier: Programming Language :: Python :: 3
|
11
11
|
Classifier: Programming Language :: Python :: 3.8
|
12
12
|
Classifier: Programming Language :: Python :: 3.9
|
13
13
|
Classifier: Programming Language :: Python :: 3.10
|
14
|
+
Classifier: Programming Language :: Python :: 3.11
|
14
15
|
Provides-Extra: all
|
15
16
|
Provides-Extra: llm
|
16
17
|
Provides-Extra: pytorch
|
@@ -21,36 +22,35 @@ Requires-Dist: arch (>=5.4.0,<6.0.0)
|
|
21
22
|
Requires-Dist: bert-score (>=0.3.13,<0.4.0)
|
22
23
|
Requires-Dist: catboost (>=1.2,<2.0)
|
23
24
|
Requires-Dist: click (>=8.0.4,<9.0.0)
|
24
|
-
Requires-Dist: datasets (>=2.14.5,<3.0.0) ; extra == "all" or extra == "llm"
|
25
|
-
Requires-Dist: dython (>=0.7.1,<0.8.0)
|
26
25
|
Requires-Dist: evaluate (>=0.4.0,<0.5.0)
|
27
|
-
Requires-Dist: ipython (==7.34.0)
|
28
26
|
Requires-Dist: ipywidgets (>=8.0.6,<9.0.0)
|
29
|
-
Requires-Dist:
|
30
|
-
Requires-Dist: kaleido (==0.2.1)
|
27
|
+
Requires-Dist: kaleido (>=0.2.1,<0.3.0,!=0.2.1.post1)
|
31
28
|
Requires-Dist: langdetect (>=1.0.9,<2.0.0)
|
32
29
|
Requires-Dist: levenshtein (>=0.21.1,<0.22.0) ; extra == "all" or extra == "llm"
|
33
|
-
Requires-Dist:
|
34
|
-
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"
|
32
|
+
Requires-Dist: matplotlib (<3.8.3)
|
33
|
+
Requires-Dist: mistune (>=3.0.2,<4.0.0)
|
35
34
|
Requires-Dist: nltk (>=3.8.1,<4.0.0)
|
36
|
-
Requires-Dist:
|
35
|
+
Requires-Dist: numba (<0.59.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"
|
37
38
|
Requires-Dist: openai (>=1.3.7,<2.0.0) ; extra == "all" or extra == "llm"
|
38
|
-
Requires-Dist: pandas (
|
39
|
-
Requires-Dist: pandas-profiling (>=3.6.6,<4.0.0)
|
40
|
-
Requires-Dist: pdoc (>=13.1.1,<14.0.0)
|
39
|
+
Requires-Dist: pandas (>=1.1,<2)
|
41
40
|
Requires-Dist: plotly (>=5.14.1,<6.0.0)
|
42
41
|
Requires-Dist: plotly-express (>=0.4.1,<0.5.0)
|
42
|
+
Requires-Dist: polars (>=0.20.15,<0.21.0)
|
43
43
|
Requires-Dist: pycocoevalcap (>=1.2,<2.0) ; extra == "all" or extra == "llm"
|
44
|
-
Requires-Dist: pydantic (>=1.9.1,<2.0.0)
|
45
44
|
Requires-Dist: pypmml (>=0.9.17,<0.10.0)
|
46
45
|
Requires-Dist: python-dotenv (>=0.20.0,<0.21.0)
|
47
|
-
Requires-Dist: requests (>=2.27.1,<3.0.0)
|
48
46
|
Requires-Dist: rouge (>=1.0.1,<2.0.0)
|
49
47
|
Requires-Dist: rpy2 (>=3.5.10,<4.0.0) ; extra == "all" or extra == "r-support"
|
50
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"
|
51
51
|
Requires-Dist: scorecardpy (>=0.1.9.6,<0.2.0.0)
|
52
52
|
Requires-Dist: seaborn (>=0.11.2,<0.12.0)
|
53
|
-
Requires-Dist:
|
53
|
+
Requires-Dist: selfcheckgpt (>=0.1.7,<0.2.0)
|
54
54
|
Requires-Dist: sentry-sdk (>=1.24.0,<2.0.0)
|
55
55
|
Requires-Dist: shap (>=0.42.0,<0.43.0)
|
56
56
|
Requires-Dist: statsmodels (>=0.13.5,<0.14.0)
|
@@ -60,8 +60,8 @@ Requires-Dist: torch (>=1.10.0) ; extra == "all" or extra == "llm" or extra == "
|
|
60
60
|
Requires-Dist: torchmetrics (>=1.1.1,<2.0.0) ; extra == "all" or extra == "llm"
|
61
61
|
Requires-Dist: tqdm (>=4.64.0,<5.0.0)
|
62
62
|
Requires-Dist: transformers (>=4.32.0,<5.0.0) ; extra == "all" or extra == "llm" or extra == "transformers"
|
63
|
-
Requires-Dist:
|
64
|
-
Requires-Dist:
|
63
|
+
Requires-Dist: xgboost (>=1.5.2,<3)
|
64
|
+
Requires-Dist: ydata-profiling (>=4.7.0,<5.0.0)
|
65
65
|
Description-Content-Type: text/markdown
|
66
66
|
|
67
67
|
# ValidMind Developer Framework
|
@@ -1,17 +1,25 @@
|
|
1
|
-
validmind/__init__.py,sha256=
|
2
|
-
validmind/__version__.py,sha256=
|
3
|
-
validmind/
|
4
|
-
validmind/
|
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
|
5
6
|
validmind/client_config.py,sha256=58L6s6-9vFWC9vkSs_98CjV1YWmlksdhblJtPQxQsAk,1611
|
6
7
|
validmind/datasets/__init__.py,sha256=oYfcvW7BAyUgpghBOnTeGbQF6tpFAWg38rRirdLr8m8,262
|
7
8
|
validmind/datasets/classification/__init__.py,sha256=HlTOBLyb6IorRYmAhP3AIyX-l-NyemyDjV8BBOdrCrY,1787
|
8
|
-
validmind/datasets/classification/customer_churn.py,sha256=
|
9
|
+
validmind/datasets/classification/customer_churn.py,sha256=pqw6wjMF7KIDgUKX2KLm3IcIV7QdS2mmRAV_EhWwKLM,3802
|
9
10
|
validmind/datasets/classification/datasets/bank_customer_churn.csv,sha256=b0muNg38DpowgKjhBCSti7k_j1tDJMy2tydz3tAEAL4,545707
|
10
11
|
validmind/datasets/classification/datasets/taiwan_credit.csv,sha256=fe19VfV30li7rdydnXpbqC372JCdf_HvDc3mMlWNbXE,2897191
|
11
12
|
validmind/datasets/classification/taiwan_credit.py,sha256=nj6JyfcyAfaYgh60T3LdBZsCpzRBsMf0RjYMvedHzuQ,1469
|
12
13
|
validmind/datasets/cluster/digits.py,sha256=E600pX6QPrqndfr73kwZ1sTNk0hC5kNj4Fhs8zz8bQo,2097
|
13
|
-
validmind/datasets/
|
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
|
17
|
+
validmind/datasets/nlp/__init__.py,sha256=lu2-SGOSECgrxhDtHdlh_FsbpsFtuZ4DbLSL1sww5nc,323
|
18
|
+
validmind/datasets/nlp/cnn_dailymail.py,sha256=9gAHFWQhSJJ2JF_zarc2oLErZwPtRyfvXV4molhVzXM,3471
|
14
19
|
validmind/datasets/nlp/datasets/Covid_19.csv,sha256=cwAJHgek3JWUhtZQIiC9-wRWycxbiod6nyZikf09iKE,11545066
|
20
|
+
validmind/datasets/nlp/datasets/cnn_dailymail_100_with_predictions.csv,sha256=MSaj0RJ1lbgePDTfpmgganzit64FQ846J1qjm8PJtfI,426676
|
21
|
+
validmind/datasets/nlp/datasets/cnn_dailymail_500_with_predictions.csv,sha256=bR8Z-m43lngaFW983ECJwSKea3GlfhZDYfPC0MDJMec,2246787
|
22
|
+
validmind/datasets/nlp/datasets/sentiments_with_predictions.csv,sha256=zwYI-XjUy72XqD0om-cMVYMrEUsL36u4rPAwsicoQtg,754686
|
15
23
|
validmind/datasets/nlp/twitter_covid_19.py,sha256=PtBOh6pri6pVQKpR0ivQfXy4Wcom40G9-dyYgcv0jFI,878
|
16
24
|
validmind/datasets/regression/__init__.py,sha256=wBcJyMyX4U6XjY6Y-aLozHdbjQlXbeFgB2YqFTk2kVU,1653
|
17
25
|
validmind/datasets/regression/california_housing.py,sha256=dZHVZ7ufR5ZVfsBlaIlQtEgBUNGuXjEuZm1OrwRl4KY,1046
|
@@ -40,21 +48,21 @@ validmind/datasets/regression/models/fred_loan_rates_model_2.pkl,sha256=J1ukMdeF
|
|
40
48
|
validmind/datasets/regression/models/fred_loan_rates_model_3.pkl,sha256=IogZPcUQc1F_v11fR6KWT-nRt5JzvK5f7p4Hrw7vLps,40063
|
41
49
|
validmind/datasets/regression/models/fred_loan_rates_model_4.pkl,sha256=cSxhpcrI4hCbxCwZwE2-nr7KObbWpDii3NzpECoXmmM,48292
|
42
50
|
validmind/datasets/regression/models/fred_loan_rates_model_5.pkl,sha256=FkNLHq9xkPMbYks_vyMjFL371mw9SQYbP1iX9lY4Ljo,60343
|
43
|
-
validmind/errors.py,sha256=
|
51
|
+
validmind/errors.py,sha256=jHj__AKOMiwIb7qSs2mxu3LSi0lyzFwSAt1gy2lpDaE,7993
|
44
52
|
validmind/html_templates/content_blocks.py,sha256=M5BGGXT90kqUrxynkB4DPC4BQziLWglB2oK2En6KP9s,1607
|
45
53
|
validmind/input_registry.py,sha256=zexO3x-vncaoWvQ6VfkvgDLn6x72e2BNel_jCbrVHSE,793
|
46
|
-
validmind/logging.py,sha256=
|
54
|
+
validmind/logging.py,sha256=Ui67RYoB1qbuHm_KX1aGj_8DoK_ljjUDGG6a1XJ4yoY,5041
|
47
55
|
validmind/models/__init__.py,sha256=SWfy_JTnifVCbl04SZg3vwSJpRX_kWtb5wQlSIhJ9T8,623
|
48
56
|
validmind/models/catboost.py,sha256=xw3m2iE4k4TL8FLi-hQy5ylIGG7ta4Q58bcQ_04BJbw,1036
|
49
57
|
validmind/models/foundation.py,sha256=pZVmIC1lpszQLluEOtnuvdVRoOf-j6XsjRfBZQXVITc,2269
|
50
|
-
validmind/models/huggingface.py,sha256=
|
51
|
-
validmind/models/pytorch.py,sha256=
|
58
|
+
validmind/models/huggingface.py,sha256=MjHVm4X8_9_5Qos4UyNyLokN9xi3I4Ebl4ML90Fi_YE,2881
|
59
|
+
validmind/models/pytorch.py,sha256=sFcfH92nLe0WVBEUuovZxuGIy_PTp1t0fWMpBrej_6U,2602
|
52
60
|
validmind/models/r_model.py,sha256=GzlVeJgPNwtzcbyThjGyZ4T3vBJFOYDSh0aqRMsIDOQ,8344
|
53
|
-
validmind/models/sklearn.py,sha256=
|
61
|
+
validmind/models/sklearn.py,sha256=pSg3eSQovxSD2cqcUDwQOXGseg0Bicsn_FXa9_URekE,2405
|
54
62
|
validmind/models/statsmodels.py,sha256=_8GYhO21-rs3QUE_YOFi1eGMMBIr-weJmxmCrw1HZxQ,1455
|
55
63
|
validmind/models/xgboost.py,sha256=joL0uyhE4bJfINHh-dMtPhQ5d1MfWfRMVD77XWmAUnY,951
|
56
|
-
validmind/template.py,sha256=
|
57
|
-
validmind/test_suites/__init__.py,sha256=
|
64
|
+
validmind/template.py,sha256=6k9IcnHwS5Dd4KQrUIpjQ83TZOI3YAhJML7GEB22ZtI,7907
|
65
|
+
validmind/test_suites/__init__.py,sha256=u_qMwPxpqgIkT7UOuE1qb0qDcNk0tXAVrUg1kGMqW2Q,7259
|
58
66
|
validmind/test_suites/classifier.py,sha256=0ZE3z5X_ZewTvmwQ3cVGJQh7dPgg0IlqcQshJJxCFWQ,4003
|
59
67
|
validmind/test_suites/cluster.py,sha256=Wc2NViwivjiuiJMwrnGbOJYeZ3ApN8usWlOPYZYWAgE,2276
|
60
68
|
validmind/test_suites/embeddings.py,sha256=sBQRMjlp7kzsvPkA0qkgmAr4yzUrHMmXSEfSHMkn-_s,1949
|
@@ -67,8 +75,7 @@ validmind/test_suites/summarization.py,sha256=unEpfk8_etLMuYAtSmBzlqrUpo0kd9Vc3S
|
|
67
75
|
validmind/test_suites/tabular_datasets.py,sha256=WE4eLzRCfiqAxRqXnZFRR3Lo_u-TI6KM6hmTbR8rg5o,1798
|
68
76
|
validmind/test_suites/text_data.py,sha256=YGVGBB05356jN9Gzcy5CHShRzo1fm5mKsZY7YBq0cYU,739
|
69
77
|
validmind/test_suites/time_series.py,sha256=msUyYySAe5VHJJp6z0k0cNt2ekMB8-XkxGER75Zs1hs,6724
|
70
|
-
validmind/tests/__init__.py,sha256=
|
71
|
-
validmind/tests/__types__.py,sha256=qpviIvN-OGmgd9Kmw0kZ6HVjYe-IuaSCygXgZyNv1-8,1603
|
78
|
+
validmind/tests/__init__.py,sha256=5V86X-H_z2Dx6gxD2-VnOBjE-pGqXesrm8wkBrgv3YE,15290
|
72
79
|
validmind/tests/data_validation/ACFandPACFPlot.py,sha256=__JowNXtc511g_g8VXc0IX7j6qBE5J_v7IoWUKmj_E8,4745
|
73
80
|
validmind/tests/data_validation/ANOVAOneWayTable.py,sha256=PEHFVJnFAK6Oy5RW1wJThEzri92THRgwQ45f6RXMGMI,6026
|
74
81
|
validmind/tests/data_validation/AutoAR.py,sha256=kulDh8i7p7CjenVvXS54kfZe53M-eXzQ7aHZylnA06M,6676
|
@@ -80,13 +87,13 @@ validmind/tests/data_validation/BivariateHistograms.py,sha256=2GWca2OynF1FVYkDE8
|
|
80
87
|
validmind/tests/data_validation/BivariateScatterPlots.py,sha256=5JuSs7I1JZaUpXwhGV9u_biMq4xJEUr3CHfh2JXv9JQ,5208
|
81
88
|
validmind/tests/data_validation/ChiSquaredFeaturesTable.py,sha256=ss6Ewgigch0Ck25Bn-cwNviWup9OOGH8KgDpfT8DiL4,6048
|
82
89
|
validmind/tests/data_validation/ClassImbalance.py,sha256=TkI67YUu1DdnRxup-sTo3h6aNS-2ww3LPFxMHnOwAHA,6922
|
83
|
-
validmind/tests/data_validation/DatasetDescription.py,sha256=
|
90
|
+
validmind/tests/data_validation/DatasetDescription.py,sha256=2ez3MyPhkgvJVXDctADQAayltZzfJAiP5Psv6XgxVuU,11401
|
84
91
|
validmind/tests/data_validation/DatasetSplit.py,sha256=JwhIIkxbTwsHAGyJfe1frVYybnd4290DoL6TXO_1Bbs,5127
|
85
92
|
validmind/tests/data_validation/DefaultRatesbyRiskBandPlot.py,sha256=lrVeFrw4rRND7sO2kpv0RHxks9xHQBqkNfz-IN0xw_0,4861
|
86
93
|
validmind/tests/data_validation/DescriptiveStatistics.py,sha256=oVjFO-mR5sMQwzGFrjN5UP9jugNy0nSRtNwPbcGthGk,6411
|
87
94
|
validmind/tests/data_validation/Duplicates.py,sha256=rDLxdNLGqfL-Yon04b8uFESazKtn7hqxsegvPfoRHBE,5639
|
88
95
|
validmind/tests/data_validation/EngleGrangerCoint.py,sha256=Rz8BaptMo79JS8XGrnCGnrMmZo994HBmVGKJCvBqfH0,5580
|
89
|
-
validmind/tests/data_validation/FeatureTargetCorrelationPlot.py,sha256=
|
96
|
+
validmind/tests/data_validation/FeatureTargetCorrelationPlot.py,sha256=wfYhyK-hhUHGxfWDAUqoorY2EXbDeLCbroPMi14vkzs,5036
|
90
97
|
validmind/tests/data_validation/HeatmapFeatureCorrelations.py,sha256=JAxx9JUmplFTcQtaFaCk9JCDCMLkDABMhSgj65ARAUc,5707
|
91
98
|
validmind/tests/data_validation/HighCardinality.py,sha256=4cjBNoWYUHVhl3TuRLrBa6tZ4AWJAOLgIjtk3JnrEZ4,5111
|
92
99
|
validmind/tests/data_validation/HighPearsonCorrelation.py,sha256=0W_nai0F169rH-rsQynEkozTUrFEnTkS0RaFjL-zodA,5582
|
@@ -98,10 +105,10 @@ validmind/tests/data_validation/MissingValues.py,sha256=gvLTy5DiBqp0VemOhVEUq3Bs
|
|
98
105
|
validmind/tests/data_validation/MissingValuesBarPlot.py,sha256=bTfMCab8gK0VXF1EZ18pTguZkFdfo1ZHhz2hmkFAyG4,6226
|
99
106
|
validmind/tests/data_validation/MissingValuesRisk.py,sha256=GzsGHFL-qMQxuqdu62SF4O5r8UDoUN5xv_b8drR-Afc,4110
|
100
107
|
validmind/tests/data_validation/PearsonCorrelationMatrix.py,sha256=dM6M8jjGHNL9umM1vcKwG5bP3BIW8Psle-_0naKg6iE,4747
|
101
|
-
validmind/tests/data_validation/PiTCreditScoresHistogram.py,sha256=
|
108
|
+
validmind/tests/data_validation/PiTCreditScoresHistogram.py,sha256=tH6DB9mlNsg87p2JIYhUaCEiRCrYh2JCFYnS4anoD44,5630
|
102
109
|
validmind/tests/data_validation/PiTPDHistogram.py,sha256=d37gdsUle_m7rzJEgvR735P7hZdzz2ly5YA1huwMbgc,5950
|
103
110
|
validmind/tests/data_validation/RollingStatsPlot.py,sha256=MqKooEL1cIRandoSN7sWhKgXDhdbIbCcBTVvc-FIp5k,5901
|
104
|
-
validmind/tests/data_validation/ScatterPlot.py,sha256=
|
111
|
+
validmind/tests/data_validation/ScatterPlot.py,sha256=57wfWhJY0c0l_iqVYq6DqrbHHNYdH-AJY_sPppLqeYI,4371
|
105
112
|
validmind/tests/data_validation/SeasonalDecompose.py,sha256=U56NXO1q9wnzCWnK3xCeklKPGVUxIOTzi-6cLrUkUsY,8903
|
106
113
|
validmind/tests/data_validation/Skewness.py,sha256=lygUUQomckvdX5__JGOn6Rx0kJRfyw-0gZOjqqN9Phk,4935
|
107
114
|
validmind/tests/data_validation/SpreadPlot.py,sha256=3FMhokxIexGzRoIlRElkkgpQRRdvnlyx0-tt8aK-wDY,4591
|
@@ -124,27 +131,32 @@ validmind/tests/data_validation/nlp/CommonWords.py,sha256=vrURXSTcfuPKDmcUJoCBuD
|
|
124
131
|
validmind/tests/data_validation/nlp/Hashtags.py,sha256=CVFvv6hTrB4Mb-b9WqHK1w1GUVs8J8gIrYP2v5OqPOo,4368
|
125
132
|
validmind/tests/data_validation/nlp/Mentions.py,sha256=4nhJQhZoOEPPjw00tmTmEzUP1lSGL6lHdyVwISBkujA,4673
|
126
133
|
validmind/tests/data_validation/nlp/Punctuations.py,sha256=5WI3Uu9EpdJ2FWBY2qBXRn6Nf4sldis0huq9QVbDaJ4,3867
|
127
|
-
validmind/tests/data_validation/nlp/StopWords.py,sha256=
|
128
|
-
validmind/tests/data_validation/nlp/TextDescription.py,sha256=
|
134
|
+
validmind/tests/data_validation/nlp/StopWords.py,sha256=YAwXyfoCLR8jLm7dlXknSpgUoN4JoBK3750hNByJ5FA,6131
|
135
|
+
validmind/tests/data_validation/nlp/TextDescription.py,sha256=27u4xpFX-FYuMcDVRkw3p1ajcCzd5TgaVkPIqOi8GJc,8718
|
129
136
|
validmind/tests/data_validation/nlp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
130
|
-
validmind/tests/
|
131
|
-
validmind/tests/model_validation/
|
132
|
-
validmind/tests/model_validation/
|
133
|
-
validmind/tests/model_validation/
|
134
|
-
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
|
135
145
|
validmind/tests/model_validation/ModelMetadata.py,sha256=F9ctmlIxngkHgOlggRl0WFLilh46SlM3vYfY9zkhtYk,3733
|
136
|
-
validmind/tests/model_validation/RegardHistogram.py,sha256=
|
137
|
-
validmind/tests/model_validation/RegardScore.py,sha256=
|
138
|
-
validmind/tests/model_validation/
|
139
|
-
validmind/tests/model_validation/
|
140
|
-
validmind/tests/model_validation/
|
141
|
-
validmind/tests/model_validation/
|
142
|
-
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
|
143
155
|
validmind/tests/model_validation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
144
|
-
validmind/tests/model_validation/embeddings/ClusterDistribution.py,sha256=
|
145
|
-
validmind/tests/model_validation/embeddings/CosineSimilarityDistribution.py,sha256=
|
146
|
-
validmind/tests/model_validation/embeddings/DescriptiveAnalytics.py,sha256=
|
147
|
-
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
|
148
160
|
validmind/tests/model_validation/embeddings/StabilityAnalysis.py,sha256=L8nx-ihORWr9sAPLXcUwzgek9wfauQLaQkO4fCEtAMc,4185
|
149
161
|
validmind/tests/model_validation/embeddings/StabilityAnalysisKeyword.py,sha256=qXqGaK8OVcP6h_iEZOf_-5XtbOGpiU00RyI535deAm0,3907
|
150
162
|
validmind/tests/model_validation/embeddings/StabilityAnalysisRandomNoise.py,sha256=N20bQgBP0AUt3EASZHofQUWbE3N5ix04-r6cXS7YFcg,5672
|
@@ -152,68 +164,66 @@ validmind/tests/model_validation/embeddings/StabilityAnalysisSynonyms.py,sha256=
|
|
152
164
|
validmind/tests/model_validation/embeddings/StabilityAnalysisTranslation.py,sha256=mvAmv3PcysITo48GbMS-F_tHUAX_wmS173jrBhBB6mc,4573
|
153
165
|
validmind/tests/model_validation/sklearn/AdjustedMutualInformation.py,sha256=iUt8PJd7Q-nhfDkU0siZY5Gip_uzSCqwOjpd_WBuv2I,2892
|
154
166
|
validmind/tests/model_validation/sklearn/AdjustedRandIndex.py,sha256=Mb03a6R37GagRuy269TE8ZgaMaF3vngcH3-Um6SZYmg,2767
|
155
|
-
validmind/tests/model_validation/sklearn/ClassifierPerformance.py,sha256=
|
156
|
-
validmind/tests/model_validation/sklearn/ClusterCosineSimilarity.py,sha256=
|
157
|
-
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
|
158
170
|
validmind/tests/model_validation/sklearn/ClusterPerformanceMetrics.py,sha256=iFbLvZkiYUDa9Lul1jX85TfrkwUAIkOhGTUrRlV3U4Y,8604
|
159
171
|
validmind/tests/model_validation/sklearn/CompletenessScore.py,sha256=Uj_hTTTqRLHDJ-pjajfuun_2Anq7W0GQpwPsAhdWq24,2559
|
160
|
-
validmind/tests/model_validation/sklearn/ConfusionMatrix.py,sha256=
|
172
|
+
validmind/tests/model_validation/sklearn/ConfusionMatrix.py,sha256=Bm9fsw9nD1KurbBbXf0Jph0MN7_-7GRiydiTTfDgiU4,5776
|
161
173
|
validmind/tests/model_validation/sklearn/FowlkesMallowsScore.py,sha256=hL7hfvdeZ_jR9ktxMH9NI-hwvLsl478iQDajOXUuocM,3049
|
162
174
|
validmind/tests/model_validation/sklearn/HomogeneityScore.py,sha256=ykBkNCNm1HRyMoU2x5hK20tuKbU0vYrwj4huc4x7v6w,2753
|
163
175
|
validmind/tests/model_validation/sklearn/HyperParametersTuning.py,sha256=YGJ38Px-RRIkWVHavLr_FNm6sod_k_t6U32BLmIFMTg,4660
|
164
176
|
validmind/tests/model_validation/sklearn/KMeansClustersOptimization.py,sha256=o5ScxbbwW0BziLOVW2hxgj91C0fY5KVanU0tyVBNWBs,5960
|
165
|
-
validmind/tests/model_validation/sklearn/MinimumAccuracy.py,sha256=
|
166
|
-
validmind/tests/model_validation/sklearn/MinimumF1Score.py,sha256=
|
167
|
-
validmind/tests/model_validation/sklearn/MinimumROCAUCScore.py,sha256=
|
168
|
-
validmind/tests/model_validation/sklearn/ModelsPerformanceComparison.py,sha256=
|
169
|
-
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
|
170
182
|
validmind/tests/model_validation/sklearn/PermutationFeatureImportance.py,sha256=APnrI-jXTew4nq4CkCqAkIcNS0uwWegxSwvhiHN5kV0,5038
|
171
183
|
validmind/tests/model_validation/sklearn/PopulationStabilityIndex.py,sha256=4X3tvbzl5X-hF23kqqAQlMSSHhLltVTFeBwODF_cz00,10242
|
172
184
|
validmind/tests/model_validation/sklearn/PrecisionRecallCurve.py,sha256=XA3_5uXvqJ7rawyK8_i8oB59cpZwh8T1FU9c-PTMY3Q,4401
|
173
|
-
validmind/tests/model_validation/sklearn/ROCCurve.py,sha256=
|
174
|
-
validmind/tests/model_validation/sklearn/RegressionErrors.py,sha256=
|
175
|
-
validmind/tests/model_validation/sklearn/RegressionModelsPerformanceComparison.py,sha256=
|
176
|
-
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
|
177
189
|
validmind/tests/model_validation/sklearn/RobustnessDiagnosis.py,sha256=JQTWfdocIHYYv69nzbC0M0GAh6ldUMfQ4TKK9jUnhCI,13780
|
178
|
-
validmind/tests/model_validation/sklearn/SHAPGlobalImportance.py,sha256=
|
179
|
-
validmind/tests/model_validation/sklearn/SilhouettePlot.py,sha256=
|
180
|
-
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
|
181
193
|
validmind/tests/model_validation/sklearn/VMeasure.py,sha256=x2cdcN_Wh_hnfAsF715QgWBPbhZMi533PO-No84iEJ4,2772
|
182
|
-
validmind/tests/model_validation/sklearn/WeakspotsDiagnosis.py,sha256=
|
194
|
+
validmind/tests/model_validation/sklearn/WeakspotsDiagnosis.py,sha256=5Ishn16wtBsfmlnlj9mufaElNQ6uGfI9hakvvAVq7os,14227
|
183
195
|
validmind/tests/model_validation/sklearn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
184
196
|
validmind/tests/model_validation/statsmodels/ADF.py,sha256=97lutdezxrdsFB1rkTESx2uSp8RHPRhEhucrs2ZyR04,4042
|
185
197
|
validmind/tests/model_validation/statsmodels/ADFTest.py,sha256=pNuH0699hyI7533iuMMf2C3FiVb-TM3fSEsZuGdSGJA,4039
|
186
198
|
validmind/tests/model_validation/statsmodels/AutoARIMA.py,sha256=mb-QlmiYDaOWJNneUcgL27km3dGNaqIuP6Bw_rG4Emc,5172
|
187
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
|
188
201
|
validmind/tests/model_validation/statsmodels/DFGLSArch.py,sha256=SjmQYMazR4QzfpCwwhxty_JvJaUU88hcdqH0uFz3tlE,3365
|
189
202
|
validmind/tests/model_validation/statsmodels/DurbinWatsonTest.py,sha256=dkdMH0dfFCbHacpFCL_7KBUzHiwmV5DYhsJlV4_k9dI,2957
|
190
203
|
validmind/tests/model_validation/statsmodels/FeatureImportanceAndSignificance.py,sha256=ZOZucyM6YbWInqS_flSpgC2saOVDPdrcvUYWZ_gk9Go,7199
|
191
|
-
validmind/tests/model_validation/statsmodels/GINITable.py,sha256=
|
204
|
+
validmind/tests/model_validation/statsmodels/GINITable.py,sha256=QUbvTuxm8l0vL7OkVqLmiI21gaDEZ35SA4wikxK93YM,5753
|
192
205
|
validmind/tests/model_validation/statsmodels/JarqueBera.py,sha256=G2Jyry_knx3h5daErRUNZO5JP63M9OurUSuCQBVEke4,3362
|
193
206
|
validmind/tests/model_validation/statsmodels/KPSS.py,sha256=tP6Xzp7oZ_p1ktIV3g8bG4CA4YTrXt7hrTdvnfCUf4M,3313
|
194
207
|
validmind/tests/model_validation/statsmodels/KolmogorovSmirnov.py,sha256=RXsSi7FeJeUl8Q0QXvacQ8r9HR4hVtRiGPoMrRLtXjg,4371
|
195
208
|
validmind/tests/model_validation/statsmodels/LJungBox.py,sha256=PTPSW8IT5b8lHV66vQRtjbz7VWPcXCn7PGz6YOK9j0w,3309
|
196
209
|
validmind/tests/model_validation/statsmodels/Lilliefors.py,sha256=Gmxw2r4Qsa8kVE-5MCkqE3UJZdR9eGMYTvg-D7s2Mp8,3997
|
197
|
-
validmind/tests/model_validation/statsmodels/LogRegressionConfusionMatrix.py,sha256=MEN1gPkrUjcEtRcxxGoiH9G63VyKggHDQKdzlY2M1W0,5339
|
198
|
-
validmind/tests/model_validation/statsmodels/LogisticRegCumulativeProb.py,sha256=DO3HBhekqi0oyKfbC2j-ktXTJe_o8s63UUt5ySCSH80,7155
|
199
|
-
validmind/tests/model_validation/statsmodels/LogisticRegPredictionHistogram.py,sha256=Mvi88U6hFQfFwi45uajXTg0r2mEaoxh8GPOU3uWx90w,6859
|
200
210
|
validmind/tests/model_validation/statsmodels/PDRatingClassPlot.py,sha256=EqsAG2vpDzBxb-0iGBKegtF25U2nuw8VlQVAWvAnXFs,6064
|
201
211
|
validmind/tests/model_validation/statsmodels/PhillipsPerronArch.py,sha256=Z1wogft3oIJHE795vNUMa1r5r-t0yLm19rJRLKmLFAA,3133
|
212
|
+
validmind/tests/model_validation/statsmodels/PredictionProbabilitiesHistogram.py,sha256=6HSzbV9oSPZg7olFtnpheTxAD7hFdPISbhOKtmU0QbY,6394
|
202
213
|
validmind/tests/model_validation/statsmodels/RegressionCoeffsPlot.py,sha256=zWOzmEcdsQMzGzT4nCpSSQLQcdc0BERju-xgLBBGC4Y,5657
|
203
214
|
validmind/tests/model_validation/statsmodels/RegressionFeatureSignificance.py,sha256=TGz8ei7pG31tLKjzqNiBNO-UbzGWCabv2rWX-DjiJ4Y,5494
|
204
|
-
validmind/tests/model_validation/statsmodels/RegressionModelForecastPlot.py,sha256=
|
205
|
-
validmind/tests/model_validation/statsmodels/RegressionModelForecastPlotLevels.py,sha256=
|
206
|
-
validmind/tests/model_validation/statsmodels/RegressionModelInsampleComparison.py,sha256=
|
207
|
-
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
|
208
219
|
validmind/tests/model_validation/statsmodels/RegressionModelSensitivityPlot.py,sha256=q30wFH7QRZKriVMXBmZVE2K30kjcb6zX4IVl1NHT2kA,7320
|
209
|
-
validmind/tests/model_validation/statsmodels/RegressionModelSummary.py,sha256=
|
220
|
+
validmind/tests/model_validation/statsmodels/RegressionModelSummary.py,sha256=IkWo8tBh7np_4xTy5cm8SHoXEYggwjk0jiFw3wg1YKA,4350
|
210
221
|
validmind/tests/model_validation/statsmodels/RegressionModelsCoeffs.py,sha256=XTirM2uYbl-Idf1MooaTPZcrN1s5g-nibHUz5SdYfBg,4592
|
211
|
-
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
|
212
224
|
validmind/tests/model_validation/statsmodels/ResidualsVisualInspection.py,sha256=ROF3y_akn0cxo6sA38aWElkleg0bcvQfttPc1pjJaHc,5771
|
213
225
|
validmind/tests/model_validation/statsmodels/RunsTest.py,sha256=TJdixri2vrrA4HUUpTYveoVzr7V9lcH6CJnPTLxSqms,3684
|
214
|
-
validmind/tests/model_validation/statsmodels/
|
215
|
-
validmind/tests/model_validation/statsmodels/ScorecardHistogram.py,sha256=UfiGDiOuraGz8vu9R3cw132oxahLqte7jEpNoeW6Ses,7073
|
216
|
-
validmind/tests/model_validation/statsmodels/ScorecardProbabilitiesHistogram.py,sha256=-SfsY5gZU4w-LmWdAHzKizU4tAqZipZcrX-7AzDhDEI,7140
|
226
|
+
validmind/tests/model_validation/statsmodels/ScorecardHistogram.py,sha256=uESuMD8UA_BPRjnIbsnHUQUCzTSWxGG6646QRW1wMH8,6300
|
217
227
|
validmind/tests/model_validation/statsmodels/ShapiroWilk.py,sha256=W8_EARepPA0CpApy0w7cLcbnP7ZegBjntGSUOcuyrqQ,3243
|
218
228
|
validmind/tests/model_validation/statsmodels/ZivotAndrewsArch.py,sha256=4QrZImKZYVLKrmUgjnBTldtIqXf8-tyz9CiNqMYtj_w,3291
|
219
229
|
validmind/tests/model_validation/statsmodels/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -226,34 +236,46 @@ validmind/tests/prompt_validation/NegativeInstruction.py,sha256=1aqNV_vB5oM2_8UX
|
|
226
236
|
validmind/tests/prompt_validation/Robustness.py,sha256=VIQotugWQ32Q1kr1kacBuqk-q1EPTRi9NZAIYrTDsY0,6826
|
227
237
|
validmind/tests/prompt_validation/Specificity.py,sha256=v823rZAr9a810Q_RlgH7FqPPxXZ00hDJApkFaJJ8mgk,6116
|
228
238
|
validmind/tests/prompt_validation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
229
|
-
validmind/tests/prompt_validation/ai_powered_test.py,sha256=
|
230
|
-
validmind/tests/test_providers.py,sha256=
|
231
|
-
validmind/unit_metrics/__init__.py,sha256=
|
232
|
-
validmind/unit_metrics/sklearn/
|
233
|
-
validmind/unit_metrics/sklearn/
|
234
|
-
validmind/unit_metrics/sklearn/
|
235
|
-
validmind/unit_metrics/sklearn/
|
236
|
-
validmind/unit_metrics/sklearn/
|
237
|
-
validmind/
|
238
|
-
validmind/
|
239
|
-
validmind/
|
240
|
-
validmind/
|
239
|
+
validmind/tests/prompt_validation/ai_powered_test.py,sha256=pogmrOR2fTY34Tx5TXIs5Smjz09mdh5Kp4NifrmPrFY,2975
|
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
|
262
|
+
validmind/vm_models/figure.py,sha256=iSrvPcCG5sQrMkX1Fh6c5utRzaroh3bc6IlnGDOK_Eg,6651
|
241
263
|
validmind/vm_models/model.py,sha256=f6hAy1J-UfVxLsSCu4VjpGyL-UnJWMivqkBB2Uhd2uU,4823
|
242
|
-
validmind/vm_models/test/metric.py,sha256=
|
264
|
+
validmind/vm_models/test/metric.py,sha256=C2AjlSOC0N72ucAaMdH3EMHXnvZ8jXlGSQwEs3S1N1g,3911
|
243
265
|
validmind/vm_models/test/metric_result.py,sha256=Bak4GDrMlNq5NtgP5exwlPsKZgz3tWgtC6jZqtHjvqM,1987
|
244
|
-
validmind/vm_models/test/output_template.py,sha256=
|
266
|
+
validmind/vm_models/test/output_template.py,sha256=njqCAMyLxwadkCWhACVskyL9-psTgmUysaeeirTVAX4,1500
|
245
267
|
validmind/vm_models/test/result_summary.py,sha256=QJcIKJUeBf5wW3lyue6ctsi1jKSyoiAIfmjudGJiJtc,2028
|
246
|
-
validmind/vm_models/test/result_wrapper.py,sha256=
|
247
|
-
validmind/vm_models/test/test.py,sha256=
|
248
|
-
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
|
249
271
|
validmind/vm_models/test/threshold_test_result.py,sha256=EXP-g_e3NsnpkvNgYew030qVUoY6ZTHyuuFUXaq-BuM,1954
|
250
|
-
validmind/vm_models/
|
251
|
-
validmind/vm_models/
|
252
|
-
validmind/vm_models/test_suite/
|
253
|
-
validmind/vm_models/test_suite/
|
254
|
-
validmind/vm_models/test_suite/
|
255
|
-
validmind/
|
256
|
-
validmind-2.0.
|
257
|
-
validmind-2.0.
|
258
|
-
validmind-2.0.
|
259
|
-
validmind-2.0.
|
272
|
+
validmind/vm_models/test_context.py,sha256=URm6YvK6ReRevngIIVSPmV2tdc4rRZaWbB6hlRKsOj4,9027
|
273
|
+
validmind/vm_models/test_suite/runner.py,sha256=U93TauwLNEbAgJIzBZ9k9ip9NnlTt0gACHVgfO7J9BI,6754
|
274
|
+
validmind/vm_models/test_suite/summary.py,sha256=roSzR-wWs6_eoKq-yDA-cMi5pA0K3H7cpR2TUCG0uog,4555
|
275
|
+
validmind/vm_models/test_suite/test.py,sha256=cIa-6_YkFp7Io4wBkr09aFNmljmUFSagV4JreLd1Q6Y,5285
|
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
|
-
)
|