validmind 2.2.6__py3-none-any.whl → 2.3.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. validmind/__init__.py +2 -1
  2. validmind/__version__.py +1 -1
  3. validmind/{ai.py → ai/test_descriptions.py} +74 -82
  4. validmind/ai/utils.py +104 -0
  5. validmind/api_client.py +58 -19
  6. validmind/client.py +5 -5
  7. validmind/models/foundation.py +10 -6
  8. validmind/models/function.py +3 -1
  9. validmind/models/metadata.py +1 -1
  10. validmind/test_suites/__init__.py +1 -9
  11. validmind/test_suites/regression.py +0 -16
  12. validmind/test_suites/statsmodels_timeseries.py +1 -1
  13. validmind/tests/__init__.py +7 -7
  14. validmind/tests/__types__.py +170 -0
  15. validmind/tests/data_validation/ACFandPACFPlot.py +36 -27
  16. validmind/tests/{model_validation/statsmodels → data_validation}/ADF.py +42 -13
  17. validmind/tests/data_validation/BivariateScatterPlots.py +38 -41
  18. validmind/tests/{model_validation/statsmodels → data_validation}/DFGLSArch.py +67 -11
  19. validmind/tests/data_validation/HeatmapFeatureCorrelations.py +1 -1
  20. validmind/tests/data_validation/HighPearsonCorrelation.py +12 -3
  21. validmind/tests/data_validation/IsolationForestOutliers.py +2 -2
  22. validmind/tests/{model_validation/statsmodels → data_validation}/KPSS.py +64 -11
  23. validmind/tests/{model_validation/statsmodels → data_validation}/PhillipsPerronArch.py +65 -11
  24. validmind/tests/data_validation/ScatterPlot.py +1 -1
  25. validmind/tests/data_validation/SeasonalDecompose.py +12 -7
  26. validmind/tests/data_validation/TabularDateTimeHistograms.py +29 -33
  27. validmind/tests/data_validation/WOEBinPlots.py +1 -1
  28. validmind/tests/data_validation/WOEBinTable.py +1 -1
  29. validmind/tests/{model_validation/statsmodels → data_validation}/ZivotAndrewsArch.py +65 -11
  30. validmind/tests/data_validation/nlp/CommonWords.py +1 -1
  31. validmind/tests/data_validation/nlp/Hashtags.py +1 -1
  32. validmind/tests/data_validation/nlp/Mentions.py +1 -1
  33. validmind/tests/data_validation/nlp/PolarityAndSubjectivity.py +2 -1
  34. validmind/tests/data_validation/nlp/Punctuations.py +1 -1
  35. validmind/tests/data_validation/nlp/Sentiment.py +1 -1
  36. validmind/tests/data_validation/nlp/TextDescription.py +5 -1
  37. validmind/tests/data_validation/nlp/Toxicity.py +1 -1
  38. validmind/tests/decorator.py +13 -1
  39. validmind/tests/model_validation/FeaturesAUC.py +5 -3
  40. validmind/tests/model_validation/embeddings/CosineSimilarityComparison.py +4 -0
  41. validmind/tests/model_validation/embeddings/CosineSimilarityHeatmap.py +4 -0
  42. validmind/tests/model_validation/embeddings/EuclideanDistanceComparison.py +4 -0
  43. validmind/tests/model_validation/embeddings/EuclideanDistanceHeatmap.py +4 -0
  44. validmind/tests/model_validation/embeddings/PCAComponentsPairwisePlots.py +4 -0
  45. validmind/tests/model_validation/embeddings/TSNEComponentsPairwisePlots.py +4 -0
  46. validmind/tests/model_validation/ragas/AnswerCorrectness.py +3 -3
  47. validmind/tests/model_validation/ragas/AnswerRelevance.py +5 -4
  48. validmind/tests/model_validation/ragas/AnswerSimilarity.py +5 -4
  49. validmind/tests/model_validation/ragas/AspectCritique.py +14 -8
  50. validmind/tests/model_validation/ragas/ContextEntityRecall.py +3 -4
  51. validmind/tests/model_validation/ragas/ContextPrecision.py +4 -5
  52. validmind/tests/model_validation/ragas/ContextRecall.py +3 -4
  53. validmind/tests/model_validation/ragas/ContextRelevancy.py +5 -4
  54. validmind/tests/model_validation/ragas/Faithfulness.py +6 -5
  55. validmind/tests/model_validation/ragas/utils.py +35 -9
  56. validmind/tests/model_validation/sklearn/ClusterPerformance.py +2 -2
  57. validmind/tests/model_validation/sklearn/ClusterPerformanceMetrics.py +1 -1
  58. validmind/tests/model_validation/sklearn/ModelsPerformanceComparison.py +6 -8
  59. validmind/tests/model_validation/sklearn/RegressionErrors.py +1 -1
  60. validmind/tests/model_validation/sklearn/RegressionModelsPerformanceComparison.py +14 -8
  61. validmind/tests/model_validation/sklearn/RegressionR2Square.py +1 -1
  62. validmind/tests/model_validation/statsmodels/DurbinWatsonTest.py +1 -1
  63. validmind/tests/model_validation/statsmodels/GINITable.py +1 -1
  64. validmind/tests/model_validation/statsmodels/JarqueBera.py +1 -1
  65. validmind/tests/model_validation/statsmodels/KolmogorovSmirnov.py +1 -1
  66. validmind/tests/model_validation/statsmodels/LJungBox.py +1 -1
  67. validmind/tests/model_validation/statsmodels/Lilliefors.py +1 -1
  68. validmind/tests/model_validation/statsmodels/RegressionCoeffsPlot.py +4 -0
  69. validmind/tests/model_validation/statsmodels/RegressionFeatureSignificance.py +9 -4
  70. validmind/tests/model_validation/statsmodels/RegressionModelsCoeffs.py +2 -2
  71. validmind/tests/model_validation/statsmodels/RunsTest.py +1 -1
  72. validmind/tests/model_validation/statsmodels/ShapiroWilk.py +1 -1
  73. validmind/tests/prompt_validation/Bias.py +14 -11
  74. validmind/tests/prompt_validation/Clarity.py +14 -11
  75. validmind/tests/prompt_validation/Conciseness.py +14 -11
  76. validmind/tests/prompt_validation/Delimitation.py +14 -11
  77. validmind/tests/prompt_validation/NegativeInstruction.py +14 -11
  78. validmind/tests/prompt_validation/Robustness.py +11 -11
  79. validmind/tests/prompt_validation/Specificity.py +14 -11
  80. validmind/tests/prompt_validation/ai_powered_test.py +53 -75
  81. validmind/unit_metrics/composite.py +2 -1
  82. validmind/utils.py +34 -59
  83. validmind/vm_models/dataset/dataset.py +17 -3
  84. validmind/vm_models/dataset/utils.py +2 -2
  85. validmind/vm_models/model.py +1 -1
  86. validmind/vm_models/test/metric.py +1 -8
  87. validmind/vm_models/test/result_wrapper.py +2 -2
  88. validmind/vm_models/test/test.py +3 -0
  89. validmind/vm_models/test/threshold_test.py +1 -1
  90. validmind/vm_models/test_suite/runner.py +7 -4
  91. {validmind-2.2.6.dist-info → validmind-2.3.3.dist-info}/METADATA +1 -1
  92. {validmind-2.2.6.dist-info → validmind-2.3.3.dist-info}/RECORD +95 -103
  93. validmind/tests/data_validation/DefaultRatesbyRiskBandPlot.py +0 -114
  94. validmind/tests/data_validation/PiTCreditScoresHistogram.py +0 -150
  95. validmind/tests/data_validation/PiTPDHistogram.py +0 -152
  96. validmind/tests/model_validation/statsmodels/ADFTest.py +0 -88
  97. validmind/tests/model_validation/statsmodels/FeatureImportanceAndSignificance.py +0 -198
  98. validmind/tests/model_validation/statsmodels/PDRatingClassPlot.py +0 -151
  99. validmind/tests/model_validation/statsmodels/RegressionModelInsampleComparison.py +0 -146
  100. validmind/tests/model_validation/statsmodels/RegressionModelOutsampleComparison.py +0 -144
  101. validmind/tests/model_validation/statsmodels/RegressionModelsPerformance.py +0 -127
  102. validmind/tests/model_validation/statsmodels/ResidualsVisualInspection.py +0 -130
  103. {validmind-2.2.6.dist-info → validmind-2.3.3.dist-info}/LICENSE +0 -0
  104. {validmind-2.2.6.dist-info → validmind-2.3.3.dist-info}/WHEEL +0 -0
  105. {validmind-2.2.6.dist-info → validmind-2.3.3.dist-info}/entry_points.txt +0 -0
@@ -1,8 +1,9 @@
1
- validmind/__init__.py,sha256=XqPjCbFMvEYl0cIT42EZKP7DFMYDC7KDW6syo8MGkDg,3682
2
- validmind/__version__.py,sha256=qzqxcwWCwWgKw_eJA2nZPycPzwfpaSjAKO3MwNvDqgw,22
3
- validmind/ai.py,sha256=Uc09ulMZhu0VgbdZtHlRuzRg1QeCHVXJMXmZd6dbyEQ,9071
4
- validmind/api_client.py,sha256=kIEO515kp_l5LA_QyRgHOumYaOIMSrCnl9Nj4Rm5TK8,15948
5
- validmind/client.py,sha256=S_FozHlMJBgF8IQJES27LeFoYcoCcGZ6dkxE8adyIRQ,18607
1
+ validmind/__init__.py,sha256=UfmzPwUCdUWbWq3zPqqmq4jw0_kfl3hX4U72p_seE4I,3700
2
+ validmind/__version__.py,sha256=s0EEVOzZFl_WT6PzFxk9cgtfsNGRuqeXrX3fgGq9Ogs,22
3
+ validmind/ai/test_descriptions.py,sha256=QBV8i13nKeaQPXqnnra0L_BGc6pZzVWejATUTcgKMek,9287
4
+ validmind/ai/utils.py,sha256=DtlpgcJcYS1FvdZPw5moUmYnv_guGKsxVbIRzFQ7pcg,3380
5
+ validmind/api_client.py,sha256=0IR8MpH_GxBykOs4Egz7oEKZLoOEwoli81X1oFL0DD8,16893
6
+ validmind/client.py,sha256=F5F7jYEXgssg8g9Xq_7LzdGwaBU9MtZUF6hj_5p30jU,18648
6
7
  validmind/client_config.py,sha256=58L6s6-9vFWC9vkSs_98CjV1YWmlksdhblJtPQxQsAk,1611
7
8
  validmind/datasets/__init__.py,sha256=oYfcvW7BAyUgpghBOnTeGbQF6tpFAWg38rRirdLr8m8,262
8
9
  validmind/datasets/classification/__init__.py,sha256=HlTOBLyb6IorRYmAhP3AIyX-l-NyemyDjV8BBOdrCrY,1787
@@ -61,30 +62,32 @@ validmind/html_templates/content_blocks.py,sha256=AHQ5MlhR1JYldel7soo5ztpTJJ5-kY
61
62
  validmind/input_registry.py,sha256=zexO3x-vncaoWvQ6VfkvgDLn6x72e2BNel_jCbrVHSE,793
62
63
  validmind/logging.py,sha256=J1Y1dYCH1dtkoYCHoXMOQH_B7EO4fJytWRDrDqZZz8U,5204
63
64
  validmind/models/__init__.py,sha256=lraTbNwoKckXNP3Dbyj-euI78UTkZ_w5wpUOb8l5nWs,729
64
- validmind/models/foundation.py,sha256=LSUdpnBYlPiOUVrTyofStPdoR6y0_nqJoM9TiYT1MRo,1758
65
- validmind/models/function.py,sha256=loZoheqGyTvHze1XROEX1aqXgM08kPMr67X1nutaaeU,1629
65
+ validmind/models/foundation.py,sha256=ZdVmwwRVbjgqMyfjguyf9Lka_KcgJnDD7ho8zv0gQok,1842
66
+ validmind/models/function.py,sha256=xLNtgzRiCfF4jrIedHrX1lmCR-92fB3fVDzLS7el4SM,1785
66
67
  validmind/models/huggingface.py,sha256=oDB32iwP_FQ_ZtZgAC5iBPG4suPaSF-J6317TM8Ob2g,2304
67
- validmind/models/metadata.py,sha256=V5b91J_M3vzx6JGQJH6Taxpf7DT3TPTwkDwLkLRrWn8,1665
68
+ validmind/models/metadata.py,sha256=PMcdYuACkSPvuG8io5BhZeMwclQr_q79mXbvd1SC-7I,1665
68
69
  validmind/models/pipeline.py,sha256=nSskKWxaS4SGmx_B0IAvS5ogDZyh6tdx_aUkyxSXt88,2051
69
70
  validmind/models/pytorch.py,sha256=aAEUWtISwLh-PMvHkcLwBEbBStAByt4J-NpK-Ndv38E,1826
70
71
  validmind/models/r_model.py,sha256=eYdpCREgBpYv-PxJDuG91I77OOAx3-43FoaYT560ziE,7172
71
72
  validmind/models/sklearn.py,sha256=lOCJlP2wvd5IJHtBS1XG9FXrtIvO_f8xm2Qp1UdsiBw,2406
72
73
  validmind/template.py,sha256=d5I8TjX8Sh5CJPWo_zezMfyvnh7OXo07VV8iKXxlk9E,7184
73
- validmind/test_suites/__init__.py,sha256=u_qMwPxpqgIkT7UOuE1qb0qDcNk0tXAVrUg1kGMqW2Q,7259
74
+ validmind/test_suites/__init__.py,sha256=T7446YfTnxfBKNFwIXVcbMb4uIyRzHFAyUQLdDQCjVc,7039
74
75
  validmind/test_suites/classifier.py,sha256=0ZE3z5X_ZewTvmwQ3cVGJQh7dPgg0IlqcQshJJxCFWQ,4003
75
76
  validmind/test_suites/cluster.py,sha256=Wc2NViwivjiuiJMwrnGbOJYeZ3ApN8usWlOPYZYWAgE,2276
76
77
  validmind/test_suites/embeddings.py,sha256=sBQRMjlp7kzsvPkA0qkgmAr4yzUrHMmXSEfSHMkn-_s,1949
77
78
  validmind/test_suites/llm.py,sha256=SqHGBBoJsQ53RQtVhRB9j9ImN7NRRcgoSUW8uQgbLKs,2026
78
79
  validmind/test_suites/nlp.py,sha256=KiHOoItyLMuRzdjcnJ2rdqOI1Ty47zklG_vJZrDsHxQ,1344
79
80
  validmind/test_suites/parameters_optimization.py,sha256=mYVk8eVQneW5oRUuWztYv2NrV7S_5j_9O6S8v5xLEaQ,731
80
- validmind/test_suites/regression.py,sha256=ZBK0RtfugEJoanaHVW4HyS_bBMBV4brPNTXp3T45evU,2407
81
- validmind/test_suites/statsmodels_timeseries.py,sha256=Znv7ZI-ZlKx9C9OMvs2Yfdlme_xdm6ThFAwyPVX7s1Q,957
81
+ validmind/test_suites/regression.py,sha256=knVRJGW5k91CpfNJHjLdkjItSUVg-LBwqMEYcYD7jGM,1915
82
+ validmind/test_suites/statsmodels_timeseries.py,sha256=iCmhp8nZffw9M_lSpSs4jGyZD9uhrTBdC8AOd10iwjU,963
82
83
  validmind/test_suites/summarization.py,sha256=unEpfk8_etLMuYAtSmBzlqrUpo0kd9Vc3S8MBe4pd6E,695
83
84
  validmind/test_suites/tabular_datasets.py,sha256=WE4eLzRCfiqAxRqXnZFRR3Lo_u-TI6KM6hmTbR8rg5o,1798
84
85
  validmind/test_suites/text_data.py,sha256=YGVGBB05356jN9Gzcy5CHShRzo1fm5mKsZY7YBq0cYU,739
85
86
  validmind/test_suites/time_series.py,sha256=msUyYySAe5VHJJp6z0k0cNt2ekMB8-XkxGER75Zs1hs,6724
86
- validmind/tests/__init__.py,sha256=n22VyCpZD3xEHkJI2-sb5cSK-fNanL2v6b1uZIav0fc,15921
87
- validmind/tests/data_validation/ACFandPACFPlot.py,sha256=__JowNXtc511g_g8VXc0IX7j6qBE5J_v7IoWUKmj_E8,4745
87
+ validmind/tests/__init__.py,sha256=9-SR070X6SUZIURkh7M1jUMiqaDS0SVUmzZ8gNtm-10,15904
88
+ validmind/tests/__types__.py,sha256=0SjOvsJp9p-6Lt5b_VVmoqJBLLsVG4XfsR_TlcuuY8E,9271
89
+ validmind/tests/data_validation/ACFandPACFPlot.py,sha256=BMXcVZxrZ09xzw0TZtUM81Mss6q2eQg6md5uEfpGu_8,4960
90
+ validmind/tests/data_validation/ADF.py,sha256=WEFDUdDJlkvDPcLTFAa9RXwMSv_JD-Y-CN-F3xRGBtc,5177
88
91
  validmind/tests/data_validation/ANOVAOneWayTable.py,sha256=udizp4rxW4VlMaXK2RrkPK5tAUgO0C-A3MIifPjBZMw,6019
89
92
  validmind/tests/data_validation/AutoAR.py,sha256=kulDh8i7p7CjenVvXS54kfZe53M-eXzQ7aHZylnA06M,6676
90
93
  validmind/tests/data_validation/AutoMA.py,sha256=F0Dq1eAnMtM_agQ4QgzeK7bwSb2Am_2V3-ugjFJzY0A,7119
@@ -92,36 +95,36 @@ validmind/tests/data_validation/AutoSeasonality.py,sha256=GcCpJgXYA11cEnFl6aSpE5
92
95
  validmind/tests/data_validation/AutoStationarity.py,sha256=cDZB8UxoDVq8zj3hNMkHmQnvW0sXTt3WexER5H9QVQA,7902
93
96
  validmind/tests/data_validation/BivariateFeaturesBarPlots.py,sha256=CccBHTjsL2swmGoxpcCtpY_264YwFCO-rZOSqcaMJ_8,5974
94
97
  validmind/tests/data_validation/BivariateHistograms.py,sha256=2GWca2OynF1FVYkDE8yTt_qqcdJeG2we21TbxPcLcx4,5018
95
- validmind/tests/data_validation/BivariateScatterPlots.py,sha256=5JuSs7I1JZaUpXwhGV9u_biMq4xJEUr3CHfh2JXv9JQ,5208
98
+ validmind/tests/data_validation/BivariateScatterPlots.py,sha256=46p64fnqj8zuS1Q66mhgbWe-qFu_vY-46ZM9gnhFlyw,5059
96
99
  validmind/tests/data_validation/ChiSquaredFeaturesTable.py,sha256=qKzMADz_jnEMrNx3BhLp8e1CVtD5pSnkLZptMw0ajpg,6041
97
100
  validmind/tests/data_validation/ClassImbalance.py,sha256=TkI67YUu1DdnRxup-sTo3h6aNS-2ww3LPFxMHnOwAHA,6922
101
+ validmind/tests/data_validation/DFGLSArch.py,sha256=JTxIP79S2sERAba9jwXrvwZd2O2OWYQ4xFlKXlro8TU,5405
98
102
  validmind/tests/data_validation/DatasetDescription.py,sha256=2ez3MyPhkgvJVXDctADQAayltZzfJAiP5Psv6XgxVuU,11401
99
103
  validmind/tests/data_validation/DatasetSplit.py,sha256=JwhIIkxbTwsHAGyJfe1frVYybnd4290DoL6TXO_1Bbs,5127
100
- validmind/tests/data_validation/DefaultRatesbyRiskBandPlot.py,sha256=lrVeFrw4rRND7sO2kpv0RHxks9xHQBqkNfz-IN0xw_0,4861
101
104
  validmind/tests/data_validation/DescriptiveStatistics.py,sha256=bQIrHirCrsojciBLeHp5ibAeCpQrMs6wUQ5lW6sWOjQ,6373
102
105
  validmind/tests/data_validation/Duplicates.py,sha256=la6O0Mf2cctT91C3M3lscJ7Jh9u17mkviRDQZ6t9FtM,5632
103
106
  validmind/tests/data_validation/EngleGrangerCoint.py,sha256=Rz8BaptMo79JS8XGrnCGnrMmZo994HBmVGKJCvBqfH0,5580
104
107
  validmind/tests/data_validation/FeatureTargetCorrelationPlot.py,sha256=wfYhyK-hhUHGxfWDAUqoorY2EXbDeLCbroPMi14vkzs,5036
105
- validmind/tests/data_validation/HeatmapFeatureCorrelations.py,sha256=JAxx9JUmplFTcQtaFaCk9JCDCMLkDABMhSgj65ARAUc,5707
108
+ validmind/tests/data_validation/HeatmapFeatureCorrelations.py,sha256=vUOUN0FKP4gQJF8ZWt-xpwgQkzUpYccMCIMp3bxqMsI,5711
106
109
  validmind/tests/data_validation/HighCardinality.py,sha256=4cjBNoWYUHVhl3TuRLrBa6tZ4AWJAOLgIjtk3JnrEZ4,5111
107
- validmind/tests/data_validation/HighPearsonCorrelation.py,sha256=0W_nai0F169rH-rsQynEkozTUrFEnTkS0RaFjL-zodA,5582
110
+ validmind/tests/data_validation/HighPearsonCorrelation.py,sha256=si_CrnG8ZyxCxyhstZ0ATQTxEHVD1hPpT5vY5jPQWbE,5742
108
111
  validmind/tests/data_validation/IQROutliersBarPlot.py,sha256=_O9GXF1hCafLDX6_PjRj7TubRdgs39_N4qk9F6-SHBM,6350
109
112
  validmind/tests/data_validation/IQROutliersTable.py,sha256=GQ0rfkbnfaLIG-hwm-2_Gl4kHqljxwSZCcDDKgNlnHU,5888
110
- validmind/tests/data_validation/IsolationForestOutliers.py,sha256=DZce1C8eVVnw4bx7ZHI9RlmyEik2tfucUYVtGzspEMY,4858
113
+ validmind/tests/data_validation/IsolationForestOutliers.py,sha256=KDXrkOt2J_aQv0KVlbF2bdluNEit4IlOXoDupBOZp0g,4881
114
+ validmind/tests/data_validation/KPSS.py,sha256=3vX9iSpJo_c4mbmcIXGRu3IrCLPcILejhIONxpCMV8Q,5178
111
115
  validmind/tests/data_validation/LaggedCorrelationHeatmap.py,sha256=iAbdO4AcYoB4dFnoREkR6NewJkgx6ISZVf-8iHAvFgY,6048
112
116
  validmind/tests/data_validation/MissingValues.py,sha256=gvLTy5DiBqp0VemOhVEUq3BsrJ3FTIIsK_CPxKfjW6A,4292
113
117
  validmind/tests/data_validation/MissingValuesBarPlot.py,sha256=bTfMCab8gK0VXF1EZ18pTguZkFdfo1ZHhz2hmkFAyG4,6226
114
118
  validmind/tests/data_validation/MissingValuesRisk.py,sha256=GzsGHFL-qMQxuqdu62SF4O5r8UDoUN5xv_b8drR-Afc,4110
115
119
  validmind/tests/data_validation/PearsonCorrelationMatrix.py,sha256=dM6M8jjGHNL9umM1vcKwG5bP3BIW8Psle-_0naKg6iE,4747
116
- validmind/tests/data_validation/PiTCreditScoresHistogram.py,sha256=tH6DB9mlNsg87p2JIYhUaCEiRCrYh2JCFYnS4anoD44,5630
117
- validmind/tests/data_validation/PiTPDHistogram.py,sha256=d37gdsUle_m7rzJEgvR735P7hZdzz2ly5YA1huwMbgc,5950
120
+ validmind/tests/data_validation/PhillipsPerronArch.py,sha256=ft4ZbeKsM_8WAvdWHou0AZGXFUc4RWiMdOvn1pMXmr4,5075
118
121
  validmind/tests/data_validation/RollingStatsPlot.py,sha256=MqKooEL1cIRandoSN7sWhKgXDhdbIbCcBTVvc-FIp5k,5901
119
- validmind/tests/data_validation/ScatterPlot.py,sha256=57wfWhJY0c0l_iqVYq6DqrbHHNYdH-AJY_sPppLqeYI,4371
120
- validmind/tests/data_validation/SeasonalDecompose.py,sha256=U56NXO1q9wnzCWnK3xCeklKPGVUxIOTzi-6cLrUkUsY,8903
122
+ validmind/tests/data_validation/ScatterPlot.py,sha256=5mCr37aD92DUSn82BR7AWdx6-RdJqhjWZPhPcpIexGU,4346
123
+ validmind/tests/data_validation/SeasonalDecompose.py,sha256=f-rvT_ahhiQooQuFt0bL4FXUjVUofhNizw2wauKPL2s,9026
121
124
  validmind/tests/data_validation/Skewness.py,sha256=lygUUQomckvdX5__JGOn6Rx0kJRfyw-0gZOjqqN9Phk,4935
122
125
  validmind/tests/data_validation/SpreadPlot.py,sha256=3FMhokxIexGzRoIlRElkkgpQRRdvnlyx0-tt8aK-wDY,4591
123
126
  validmind/tests/data_validation/TabularCategoricalBarPlots.py,sha256=EM1m1v9V5N6bpaed_QYoqEFl4ipYcDEh7TbUL1B2stE,4241
124
- validmind/tests/data_validation/TabularDateTimeHistograms.py,sha256=aO2xr-a3_76nNyGC98I47ena3kzeUrbrOvQpvJUkHvU,4211
127
+ validmind/tests/data_validation/TabularDateTimeHistograms.py,sha256=Dzrw77U8mbDYFH4wPBOrpyLaPLLr_FMyKUxSLPx3ob4,3987
125
128
  validmind/tests/data_validation/TabularDescriptionTables.py,sha256=Hd78V0CsRR0zbA97GFHV4DuffaT-85CI3wyF3ptdXLk,9281
126
129
  validmind/tests/data_validation/TabularNumericalHistograms.py,sha256=CSdQJxDht6QJRMGXoedP_1MVoem-whlcwxGGBaP3inc,4170
127
130
  validmind/tests/data_validation/TargetRateBarPlots.py,sha256=7BghG2XtWw2ptmNgT-wEWb6gWwUgWIlp-LV5HtQENbM,5737
@@ -132,26 +135,27 @@ validmind/tests/data_validation/TimeSeriesMissingValues.py,sha256=4-b55iIMbhDETe
132
135
  validmind/tests/data_validation/TimeSeriesOutliers.py,sha256=wwz3SZs2NUTzK5dgQlehcL5kzANj_Ov7NQPqp_qNoEA,9749
133
136
  validmind/tests/data_validation/TooManyZeroValues.py,sha256=lnW0De4o2q56j1LJvoW_4CQbz4OPvPP5K3e0exCnxqc,5875
134
137
  validmind/tests/data_validation/UniqueRows.py,sha256=zyZ6icTq4kRcNUT_ID95j6Ae8OpGHjrlHkR9j4_3aB8,4516
135
- validmind/tests/data_validation/WOEBinPlots.py,sha256=CipBghounK36v_uysP_OyJfDTYzmLg-0q3jiaRpv0u0,6947
136
- validmind/tests/data_validation/WOEBinTable.py,sha256=2Om0eUyWvi1kAZF4z28n9EfEHoeMf-SuwBYYe5Eag_E,4711
138
+ validmind/tests/data_validation/WOEBinPlots.py,sha256=C3bNTRzbz3wXWoHUdoHZVmzIgMzJTAgwKtgWK2fPbSc,6946
139
+ validmind/tests/data_validation/WOEBinTable.py,sha256=XvKqFfJAMQcxU7G6dfqRBnHVUHt4S1pR5WlawDAUQJo,4710
140
+ validmind/tests/data_validation/ZivotAndrewsArch.py,sha256=gFvlpgxpjBcUWHXAz5nAWZeOBRG2JjENo-NMel7TOek,5252
137
141
  validmind/tests/data_validation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
138
- validmind/tests/data_validation/nlp/CommonWords.py,sha256=vrURXSTcfuPKDmcUJoCBuDPvu58P_-LbaiRDR0V2GCI,4204
139
- validmind/tests/data_validation/nlp/Hashtags.py,sha256=CVFvv6hTrB4Mb-b9WqHK1w1GUVs8J8gIrYP2v5OqPOo,4368
142
+ validmind/tests/data_validation/nlp/CommonWords.py,sha256=2GCwKA85r5qvgIa53sLQhLGTJo3SbYM9z-8ORunG910,4181
143
+ validmind/tests/data_validation/nlp/Hashtags.py,sha256=Gc5RivYEPfzJVssODSADBZdulvb8Y2uWAp2_CzXUq-o,4345
140
144
  validmind/tests/data_validation/nlp/LanguageDetection.py,sha256=baexhoBN7Bj58_959KfcBBCNxgnbOADokXj-oR2Hrfc,2077
141
- validmind/tests/data_validation/nlp/Mentions.py,sha256=4nhJQhZoOEPPjw00tmTmEzUP1lSGL6lHdyVwISBkujA,4673
142
- validmind/tests/data_validation/nlp/PolarityAndSubjectivity.py,sha256=GWgQzeL3WplOeBRF0uKZJEnB6eKwActTF-LpbW2sAls,1655
143
- validmind/tests/data_validation/nlp/Punctuations.py,sha256=YFA6BqRonCG9q1rAis-k1ZiniIc-SZtnzDJwe_K3CUE,3917
144
- validmind/tests/data_validation/nlp/Sentiment.py,sha256=1m3l0Xfg0vlUlDtqBmG8BMQztZmeLlw89GRIjj3XYGg,1819
145
+ validmind/tests/data_validation/nlp/Mentions.py,sha256=Wlt2ycqj5X-bbb6LTfyLi8aapyd7qCK35yDKJJF3h7o,4650
146
+ validmind/tests/data_validation/nlp/PolarityAndSubjectivity.py,sha256=2QJZRi8jdkc7NiT5e0QjInf4A6lWeUL71dgybA5M5oA,1676
147
+ validmind/tests/data_validation/nlp/Punctuations.py,sha256=GdxOOjDs4UiDiwa8On8ZUe5JQMzUF9v1PzTXJCGd5p8,3894
148
+ validmind/tests/data_validation/nlp/Sentiment.py,sha256=boQqEK85uBmWMjtNFrMywh9RsQGFx02xlNNyv8A4Eng,1839
145
149
  validmind/tests/data_validation/nlp/StopWords.py,sha256=YAwXyfoCLR8jLm7dlXknSpgUoN4JoBK3750hNByJ5FA,6131
146
- validmind/tests/data_validation/nlp/TextDescription.py,sha256=27u4xpFX-FYuMcDVRkw3p1ajcCzd5TgaVkPIqOi8GJc,8718
147
- validmind/tests/data_validation/nlp/Toxicity.py,sha256=M_ksbd-R8AQjEqhniUETn3iC7zwSbf3xUnwh8OhgXhE,1514
150
+ validmind/tests/data_validation/nlp/TextDescription.py,sha256=AGDUpdDiAg_s6P-jAe-r-QAG5AZJltEAzdbWshCwohc,8842
151
+ validmind/tests/data_validation/nlp/Toxicity.py,sha256=5sPYUGE8NFFNJnwXiGa4hqduM0S_6f8LX0ro3FnkGes,1534
148
152
  validmind/tests/data_validation/nlp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
149
- validmind/tests/decorator.py,sha256=0R6EMNKc7lZT7qNiWgzjC1OkvCHpf-qtncbXv4hTKjk,9541
153
+ validmind/tests/decorator.py,sha256=JygzPCUWZL2UPL2NV50SK3wKtmHs8h_a5_j3NjvoM1s,9887
150
154
  validmind/tests/model_validation/BertScore.py,sha256=XJss9sqrkkkNkT44vIf6s5ID_M87PPjWJ-pN0bCTe2E,5300
151
155
  validmind/tests/model_validation/BleuScore.py,sha256=UmlOsr2chqSEcOV6OtuJey9Cb3qvBD6hDOuvLg2X9_s,4925
152
156
  validmind/tests/model_validation/ClusterSizeDistribution.py,sha256=IKcMBCBsasbi6i8LTqv0H6PUUsG8FXnBtc15uj209WY,4155
153
157
  validmind/tests/model_validation/ContextualRecall.py,sha256=wzLjaliEG441qXvaonchJFr5pHXuPI9pOnlfo59xEAE,4976
154
- validmind/tests/model_validation/FeaturesAUC.py,sha256=aJucUD5u9VxnLpE3klr49VvyvtqT5QGhYE5VNT4hE44,4657
158
+ validmind/tests/model_validation/FeaturesAUC.py,sha256=RKh3oQIyFSaU0rG4trtuPZDrC4-sIky8cVXnB2z5PYA,4733
155
159
  validmind/tests/model_validation/MeteorScore.py,sha256=3YtSjdzxraFYmam03HtOhjayXScFdS5QR_9V4gD-lLI,5010
156
160
  validmind/tests/model_validation/ModelMetadata.py,sha256=F9ctmlIxngkHgOlggRl0WFLilh46SlM3vYfY9zkhtYk,3733
157
161
  validmind/tests/model_validation/RegardScore.py,sha256=EuR1pAgVcn99m5eWagxGgdOCHDBkB2NIzyGE9ly73z4,5206
@@ -161,36 +165,36 @@ validmind/tests/model_validation/TokenDisparity.py,sha256=EZlpFQH6qRWedjTQT5o4u-
161
165
  validmind/tests/model_validation/ToxicityScore.py,sha256=nFDHU1Z8mGpJrdKE6sWxo9nOqqzne1JsYIiNFyn_gYA,5299
162
166
  validmind/tests/model_validation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
163
167
  validmind/tests/model_validation/embeddings/ClusterDistribution.py,sha256=8V2mE_V3S3cIBk29MB0xPqgla1mxiGJcXZ1m99ds3ck,3552
164
- validmind/tests/model_validation/embeddings/CosineSimilarityComparison.py,sha256=N7HakxwU2XrLzsLrS0uyg_m6KOyjuS6rEhinZkXsU28,4741
168
+ validmind/tests/model_validation/embeddings/CosineSimilarityComparison.py,sha256=xXM1pI-4XOLLSE-sZqQzdUryrAvql5maytFNjzMlrn4,4900
165
169
  validmind/tests/model_validation/embeddings/CosineSimilarityDistribution.py,sha256=B3quw4ZCWVyhDBHbVp637JoVTpSAROJfUwY-ECLOTAo,3459
166
- validmind/tests/model_validation/embeddings/CosineSimilarityHeatmap.py,sha256=CGO5zKetkqt51ERDfiqDPVcjM2tounEwsfN5gawt4GE,3336
170
+ validmind/tests/model_validation/embeddings/CosineSimilarityHeatmap.py,sha256=R16Jq2BQPG4xknAmDGEbRcX8RmDb879NWazSPmB0ARo,3495
167
171
  validmind/tests/model_validation/embeddings/DescriptiveAnalytics.py,sha256=hLOcJ3lGigyA2VYAQunKB8dkBzh5TORFawg8TZIlG94,4247
168
172
  validmind/tests/model_validation/embeddings/EmbeddingsVisualization2D.py,sha256=HxXrkp6OKfGgzuRKWzhAGXYAI8VjYIpLWg62nXHOLVw,4342
169
- validmind/tests/model_validation/embeddings/EuclideanDistanceComparison.py,sha256=jZAddcbNmm7wqdcjLLkCzK6ZoedhI_FYmsnxiRogBnQ,4343
170
- validmind/tests/model_validation/embeddings/EuclideanDistanceHeatmap.py,sha256=4IxOywnfQUBZnf7nLXQQcf9DY139vKGHWJZSQjpzZnM,3216
171
- validmind/tests/model_validation/embeddings/PCAComponentsPairwisePlots.py,sha256=JElbl-hGB1SyHQ_m7do4JdPN5n1gM5SNtYRVeIOKR4c,3734
173
+ validmind/tests/model_validation/embeddings/EuclideanDistanceComparison.py,sha256=UG5etgWn9Rnqts5X_1U6CTj-uDfz6VLqXdQVZ9Mu3y0,4502
174
+ validmind/tests/model_validation/embeddings/EuclideanDistanceHeatmap.py,sha256=ruMY1LK2LwmzwdKMcgFLeaebhEi4_kbJNpEafVCTPfw,3375
175
+ validmind/tests/model_validation/embeddings/PCAComponentsPairwisePlots.py,sha256=nUQU9e32RHa3Ytofi_dzId_7VSNH4bJG9I_r8VJNbFk,3893
172
176
  validmind/tests/model_validation/embeddings/StabilityAnalysis.py,sha256=0ZH5zNv52lcA-k1ZohMgo6w8VUXIe1XA0WA3ORCbHtY,4579
173
177
  validmind/tests/model_validation/embeddings/StabilityAnalysisKeyword.py,sha256=exnaM-XHiHHflflXfJQLNGQByTBDeKwCtxBoNPKNev8,3970
174
178
  validmind/tests/model_validation/embeddings/StabilityAnalysisRandomNoise.py,sha256=N1hYFnAQKLxSpjd6ZHwi57Zdx10ssEX2Ci73rrEXTGs,5796
175
179
  validmind/tests/model_validation/embeddings/StabilityAnalysisSynonyms.py,sha256=npnOPAoXb5FoiwQEwp_gDcbGa5xk4rYnXChTJnuGX64,4405
176
180
  validmind/tests/model_validation/embeddings/StabilityAnalysisTranslation.py,sha256=9dL06PRlzokEpaEQAj_12FuQnlzfQ2-__6alYfSajmU,4636
177
- validmind/tests/model_validation/embeddings/TSNEComponentsPairwisePlots.py,sha256=0zdA1oRD9d4d6eVKyRTnGAsukplfYwWHxGNndIU8mkw,4353
178
- validmind/tests/model_validation/ragas/AnswerCorrectness.py,sha256=QelJHrxTOQxl233Uq1T3j_OOGDXU4totRF5wFEKitkI,4933
179
- validmind/tests/model_validation/ragas/AnswerRelevance.py,sha256=mtm0rOVfBhpsXf_KJkTvUDnNyTBlCx_b6sveBznE5IY,4771
180
- validmind/tests/model_validation/ragas/AnswerSimilarity.py,sha256=EEMc2V1MxxJqKPeK8VWNmVKvH0AYjEJvo6PgNwwU92w,4231
181
- validmind/tests/model_validation/ragas/AspectCritique.py,sha256=VzB1pEuXVVhmb9FxBXUcnfIkmBwJEfo3VT2XXjT7evg,5836
182
- validmind/tests/model_validation/ragas/ContextEntityRecall.py,sha256=AChCUcGTohH7tvOFNroyWRx_sstiMFbxSkCVM0FCgmw,4708
183
- validmind/tests/model_validation/ragas/ContextPrecision.py,sha256=vtu6seXKPMEEjtQAFxeVYCw91AMQkA3VLKWQqIFvQEM,4420
184
- validmind/tests/model_validation/ragas/ContextRecall.py,sha256=j4Qgyrsb5BG1kMLzHXnSClLihpecP1JIpgKBR4_fM4k,4371
185
- validmind/tests/model_validation/ragas/ContextRelevancy.py,sha256=oRxmYbYei9yM7HJANnGsJc9gLUwAQyZx2St6V7GYttQ,3929
186
- validmind/tests/model_validation/ragas/Faithfulness.py,sha256=hJbZ62QKbrc057aiWwqx_12kjxEepqGu8AkNpXLjoF8,4291
187
- validmind/tests/model_validation/ragas/utils.py,sha256=O8wlir8s7DzVgNrZAAUrMDEvag-FvuefdkTqLIxKkUs,2310
181
+ validmind/tests/model_validation/embeddings/TSNEComponentsPairwisePlots.py,sha256=jfEJjLiBhrXGmafNPI0rk3sDugDmuQ6pbpek4rF8v1k,4512
182
+ validmind/tests/model_validation/ragas/AnswerCorrectness.py,sha256=PgSxFcyWx2WAI6DsgYJQW3N5EKQgm-uCAZgm8r9Cly4,5002
183
+ validmind/tests/model_validation/ragas/AnswerRelevance.py,sha256=iIgN6CTAYs8V9sfJVhR_p6B5TQLUQ413rXYqwVP3770,4861
184
+ validmind/tests/model_validation/ragas/AnswerSimilarity.py,sha256=csCdKnjKXwIAOcc6PdAWl0IO2ttou2ihoXtU-G37hz4,4321
185
+ validmind/tests/model_validation/ragas/AspectCritique.py,sha256=Tx6dDGLPnHpPdY_93i-gu9robPOsiu1SEdqw0-rs2Ws,6043
186
+ validmind/tests/model_validation/ragas/ContextEntityRecall.py,sha256=o8zYuCESyYlTqYHzdDfrbAsFeIEPDFTUoLvCm2SuFic,4768
187
+ validmind/tests/model_validation/ragas/ContextPrecision.py,sha256=JKmz1nI1HE2tlzVIGRjwunkJ3Wmh7ITu_X3y39-sDSw,4494
188
+ validmind/tests/model_validation/ragas/ContextRecall.py,sha256=VsBtDqKbvcK12Tblfdy7RwGHTBVQ03O67wRphrTHyZE,4431
189
+ validmind/tests/model_validation/ragas/ContextRelevancy.py,sha256=lLaWSPNDQXae4jiMjDP7841pqnGvcvYqYHYIj6TL698,4019
190
+ validmind/tests/model_validation/ragas/Faithfulness.py,sha256=zIkTwX4nu78KkuMTzArx0D2HaM3EMKddakB8Bfo0Xr0,4389
191
+ validmind/tests/model_validation/ragas/utils.py,sha256=wtmY4jWF8RZCl032v0AkfpgZrS1jhnAzkrDhoWNvhEk,2952
188
192
  validmind/tests/model_validation/sklearn/AdjustedMutualInformation.py,sha256=iUt8PJd7Q-nhfDkU0siZY5Gip_uzSCqwOjpd_WBuv2I,2892
189
193
  validmind/tests/model_validation/sklearn/AdjustedRandIndex.py,sha256=Mb03a6R37GagRuy269TE8ZgaMaF3vngcH3-Um6SZYmg,2767
190
194
  validmind/tests/model_validation/sklearn/ClassifierPerformance.py,sha256=bbZkuGEm_D_zZf3hBeqjw9DrDKeKoLQiwfg2Cjd7gZY,5945
191
195
  validmind/tests/model_validation/sklearn/ClusterCosineSimilarity.py,sha256=bktc1cEkayjwFd846FgkUwCXChCppcJ7XnbWLauREGo,5485
192
- validmind/tests/model_validation/sklearn/ClusterPerformance.py,sha256=Rq2OXSx6DgbUrR9VP8ncUvCK-BFTzxTrMMlLKMQyu7M,5369
193
- validmind/tests/model_validation/sklearn/ClusterPerformanceMetrics.py,sha256=iFbLvZkiYUDa9Lul1jX85TfrkwUAIkOhGTUrRlV3U4Y,8604
196
+ validmind/tests/model_validation/sklearn/ClusterPerformance.py,sha256=kDGdMfxyf6BfcRH9BnsK6uWEgk6pwWNRIwbEoadVGjY,5360
197
+ validmind/tests/model_validation/sklearn/ClusterPerformanceMetrics.py,sha256=-9Euc3ZCAFoMSsJuz9zrrQqk3GTXQHYKa3i8lYsJilI,8600
194
198
  validmind/tests/model_validation/sklearn/CompletenessScore.py,sha256=Uj_hTTTqRLHDJ-pjajfuun_2Anq7W0GQpwPsAhdWq24,2559
195
199
  validmind/tests/model_validation/sklearn/ConfusionMatrix.py,sha256=Bm9fsw9nD1KurbBbXf0Jph0MN7_-7GRiydiTTfDgiU4,5776
196
200
  validmind/tests/model_validation/sklearn/FowlkesMallowsScore.py,sha256=hL7hfvdeZ_jR9ktxMH9NI-hwvLsl478iQDajOXUuocM,3049
@@ -200,15 +204,15 @@ validmind/tests/model_validation/sklearn/KMeansClustersOptimization.py,sha256=o5
200
204
  validmind/tests/model_validation/sklearn/MinimumAccuracy.py,sha256=MAkVBawefPT_ST5odD3Pyqg-Jbfj1HcmNUkVGwFYcNk,5337
201
205
  validmind/tests/model_validation/sklearn/MinimumF1Score.py,sha256=5QLwdsFkuT-k2QkVR6CZw3gPb6RFrgJe8VtZkqma1eg,4678
202
206
  validmind/tests/model_validation/sklearn/MinimumROCAUCScore.py,sha256=0KMdAHZOnY_PpoWSNZxmudClqQ469JV_V_vTM3FXAC8,4891
203
- validmind/tests/model_validation/sklearn/ModelsPerformanceComparison.py,sha256=sUKPQCOrc8r5jCzWyU1n_Cuj9bY4uD8B8aoe-pUoGzY,6297
207
+ validmind/tests/model_validation/sklearn/ModelsPerformanceComparison.py,sha256=ITimCZ0dPxomj6bSI_0g_I5ft_fWc5QDvCTKukciaRU,6196
204
208
  validmind/tests/model_validation/sklearn/OverfitDiagnosis.py,sha256=BLyDWAHd7dw17QLuwy9JrvsBNPXhM8yhXWu9EeSIVgg,14075
205
209
  validmind/tests/model_validation/sklearn/PermutationFeatureImportance.py,sha256=jBRGRFjWzC3MyhNyJ_5Mv21S_ippcy63lMIZ2MQ4588,4929
206
210
  validmind/tests/model_validation/sklearn/PopulationStabilityIndex.py,sha256=5cp3E78C1OjFomqVmtYOovdoNniLVVg-jmRb9HXQ3XQ,10132
207
211
  validmind/tests/model_validation/sklearn/PrecisionRecallCurve.py,sha256=Ay0Z3NDpP0w3Tz3nPSSUhA5WZGW4EZyNmCIJga2kixQ,4436
208
212
  validmind/tests/model_validation/sklearn/ROCCurve.py,sha256=gXeUoJ8Gxd4sZ_VRDICEznk8iaNyZmDpgZk2M03lVdo,5822
209
- validmind/tests/model_validation/sklearn/RegressionErrors.py,sha256=SBxFPZ1-C_ObpLeol7ghf5cdJBimNljYTlFsfohagtA,5980
210
- validmind/tests/model_validation/sklearn/RegressionModelsPerformanceComparison.py,sha256=RIup0L4cXycyWfU4GY9J7BuX88OoJ9eSs6ruT4Ho1vU,5539
211
- validmind/tests/model_validation/sklearn/RegressionR2Square.py,sha256=301jEnSZiNwsQDdo7q7RBkcNq2ILYoooYiag3Tep2-Y,4962
213
+ validmind/tests/model_validation/sklearn/RegressionErrors.py,sha256=ozczSJX5jwEXVj-kb6BlLzoUVzNXNkFqeaoYmKfTAdM,5976
214
+ validmind/tests/model_validation/sklearn/RegressionModelsPerformanceComparison.py,sha256=1e0Sv-pfI4sUeMDl-62X97Ai8kezcI_3gUnfZWzq3fA,5789
215
+ validmind/tests/model_validation/sklearn/RegressionR2Square.py,sha256=MbVfgxiloCSd32xhlO4_QiDyo3ZTJB4Orc-G3yMltwM,4958
212
216
  validmind/tests/model_validation/sklearn/RobustnessDiagnosis.py,sha256=762ckUxewgv87Aix48gJQ532v7UEdwIUD_l5iMaQoGU,13738
213
217
  validmind/tests/model_validation/sklearn/SHAPGlobalImportance.py,sha256=FwY2n65uDBz4D4fFy-Ur7G2lb9W_LcOr-HPevmwTxZk,8951
214
218
  validmind/tests/model_validation/sklearn/SilhouettePlot.py,sha256=TznxbLhwybNbht6hUg4MSKxX3TI7zJp75tQH0svWon0,6237
@@ -216,50 +220,38 @@ validmind/tests/model_validation/sklearn/TrainingTestDegradation.py,sha256=Gy2I6
216
220
  validmind/tests/model_validation/sklearn/VMeasure.py,sha256=x2cdcN_Wh_hnfAsF715QgWBPbhZMi533PO-No84iEJ4,2772
217
221
  validmind/tests/model_validation/sklearn/WeakspotsDiagnosis.py,sha256=82HubT8NZluBYoLS_t3n6QW3lN6YvFkCeEMR0N43tOQ,14194
218
222
  validmind/tests/model_validation/sklearn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
219
- validmind/tests/model_validation/statsmodels/ADF.py,sha256=97lutdezxrdsFB1rkTESx2uSp8RHPRhEhucrs2ZyR04,4042
220
- validmind/tests/model_validation/statsmodels/ADFTest.py,sha256=pNuH0699hyI7533iuMMf2C3FiVb-TM3fSEsZuGdSGJA,4039
221
223
  validmind/tests/model_validation/statsmodels/AutoARIMA.py,sha256=mb-QlmiYDaOWJNneUcgL27km3dGNaqIuP6Bw_rG4Emc,5172
222
224
  validmind/tests/model_validation/statsmodels/BoxPierce.py,sha256=3xhBDYemI07MK-DKO788Vc2q-ST7sycmqr7HN1inU-E,3581
223
225
  validmind/tests/model_validation/statsmodels/CumulativePredictionProbabilities.py,sha256=_l8aPSS_IgGypt3A3nyd3Zd54W8JRvK-t3Rvc7-LQrc,6389
224
- validmind/tests/model_validation/statsmodels/DFGLSArch.py,sha256=SjmQYMazR4QzfpCwwhxty_JvJaUU88hcdqH0uFz3tlE,3365
225
- validmind/tests/model_validation/statsmodels/DurbinWatsonTest.py,sha256=dkdMH0dfFCbHacpFCL_7KBUzHiwmV5DYhsJlV4_k9dI,2957
226
- validmind/tests/model_validation/statsmodels/FeatureImportanceAndSignificance.py,sha256=ZOZucyM6YbWInqS_flSpgC2saOVDPdrcvUYWZ_gk9Go,7199
227
- validmind/tests/model_validation/statsmodels/GINITable.py,sha256=QUbvTuxm8l0vL7OkVqLmiI21gaDEZ35SA4wikxK93YM,5753
228
- validmind/tests/model_validation/statsmodels/JarqueBera.py,sha256=G2Jyry_knx3h5daErRUNZO5JP63M9OurUSuCQBVEke4,3362
229
- validmind/tests/model_validation/statsmodels/KPSS.py,sha256=tP6Xzp7oZ_p1ktIV3g8bG4CA4YTrXt7hrTdvnfCUf4M,3313
230
- validmind/tests/model_validation/statsmodels/KolmogorovSmirnov.py,sha256=RXsSi7FeJeUl8Q0QXvacQ8r9HR4hVtRiGPoMrRLtXjg,4371
231
- validmind/tests/model_validation/statsmodels/LJungBox.py,sha256=PTPSW8IT5b8lHV66vQRtjbz7VWPcXCn7PGz6YOK9j0w,3309
232
- validmind/tests/model_validation/statsmodels/Lilliefors.py,sha256=Gmxw2r4Qsa8kVE-5MCkqE3UJZdR9eGMYTvg-D7s2Mp8,3997
233
- validmind/tests/model_validation/statsmodels/PDRatingClassPlot.py,sha256=EqsAG2vpDzBxb-0iGBKegtF25U2nuw8VlQVAWvAnXFs,6064
234
- validmind/tests/model_validation/statsmodels/PhillipsPerronArch.py,sha256=Z1wogft3oIJHE795vNUMa1r5r-t0yLm19rJRLKmLFAA,3133
226
+ validmind/tests/model_validation/statsmodels/DurbinWatsonTest.py,sha256=3NYheqnjfBK2xl6mCCmNiGvOhvbF3-BMUaZJ4mwAwg0,2963
227
+ validmind/tests/model_validation/statsmodels/GINITable.py,sha256=jJj731XRHaBgJuDj4lgDkJgWfJe5SPfWzGMPCw3arBM,5753
228
+ validmind/tests/model_validation/statsmodels/JarqueBera.py,sha256=2TlYLc1-jfQfDGhDDaVJjaIa0HmLgsT_AtNgzkYcaBI,3407
229
+ validmind/tests/model_validation/statsmodels/KolmogorovSmirnov.py,sha256=cBksf5Esz_wkQu6lt5ePilVWqzhomfQdjFaDM4EMDHo,4416
230
+ validmind/tests/model_validation/statsmodels/LJungBox.py,sha256=-Lh6ewdLOdBw7QN9RaE4MYeibmwlrM1A1pECTuc90to,3315
231
+ validmind/tests/model_validation/statsmodels/Lilliefors.py,sha256=h1MdmcSfcdAzO7qx9tgVuSdkl-otDzFMzWh7PE3M78M,4048
235
232
  validmind/tests/model_validation/statsmodels/PredictionProbabilitiesHistogram.py,sha256=6HSzbV9oSPZg7olFtnpheTxAD7hFdPISbhOKtmU0QbY,6394
236
- validmind/tests/model_validation/statsmodels/RegressionCoeffsPlot.py,sha256=zWOzmEcdsQMzGzT4nCpSSQLQcdc0BERju-xgLBBGC4Y,5657
237
- validmind/tests/model_validation/statsmodels/RegressionFeatureSignificance.py,sha256=TGz8ei7pG31tLKjzqNiBNO-UbzGWCabv2rWX-DjiJ4Y,5494
233
+ validmind/tests/model_validation/statsmodels/RegressionCoeffsPlot.py,sha256=pZS68FHseNpdjcRUts3Bg7gUnWOFg8owvtICZyYIFUI,5834
234
+ validmind/tests/model_validation/statsmodels/RegressionFeatureSignificance.py,sha256=Q9b7-h5QXB-qM0Oz4Y8dDRoYv0Jv20vyoWmrkWXt8hA,5644
238
235
  validmind/tests/model_validation/statsmodels/RegressionModelForecastPlot.py,sha256=-RU-HMcSWAZQKYAptVTDerkH03K2ruO-vco0DS8vSJM,6573
239
236
  validmind/tests/model_validation/statsmodels/RegressionModelForecastPlotLevels.py,sha256=GfEOF5OyxQ2tMLhZutp9O4m9MzFl8xDH0IsIQBtPGTs,8321
240
- validmind/tests/model_validation/statsmodels/RegressionModelInsampleComparison.py,sha256=un-7t9pRN4RGv4HYyUH2gVCm7EsjSi7fiotOXEFwJXA,6467
241
- validmind/tests/model_validation/statsmodels/RegressionModelOutsampleComparison.py,sha256=3QPYMVJg2EEAWhrh6Cj2jHiqORJpHVC3DfdRze2Vw8s,6276
242
237
  validmind/tests/model_validation/statsmodels/RegressionModelSensitivityPlot.py,sha256=q30wFH7QRZKriVMXBmZVE2K30kjcb6zX4IVl1NHT2kA,7320
243
238
  validmind/tests/model_validation/statsmodels/RegressionModelSummary.py,sha256=i4jgUn3Q-GHHXQ3RzjMt5k-scafyNoUuedk_XsuDC5E,4343
244
- validmind/tests/model_validation/statsmodels/RegressionModelsCoeffs.py,sha256=-52QU5EgidZBffs9jcX2oO1BswIUw81y6Zy43DQ6Prg,4578
245
- validmind/tests/model_validation/statsmodels/RegressionModelsPerformance.py,sha256=qECEzP1G1SfQA3EiBBCgDJxzMHgU5bWAIFH6hO59EbY,5436
239
+ validmind/tests/model_validation/statsmodels/RegressionModelsCoeffs.py,sha256=7cl9tn5799sctCzEHNWGa_QfVII_L6H5ZoMpxjUkjzc,4549
246
240
  validmind/tests/model_validation/statsmodels/RegressionPermutationFeatureImportance.py,sha256=hrWFViq7poX_G2-AwGffRQnwN9Vr42e4DfZKP-_gsRo,5044
247
- validmind/tests/model_validation/statsmodels/ResidualsVisualInspection.py,sha256=ROF3y_akn0cxo6sA38aWElkleg0bcvQfttPc1pjJaHc,5771
248
- validmind/tests/model_validation/statsmodels/RunsTest.py,sha256=TJdixri2vrrA4HUUpTYveoVzr7V9lcH6CJnPTLxSqms,3684
241
+ validmind/tests/model_validation/statsmodels/RunsTest.py,sha256=56f5n9hgOkCqaWHJGV0YzLZZhxJ5a-rHTfN0YcPYmt0,3729
249
242
  validmind/tests/model_validation/statsmodels/ScorecardHistogram.py,sha256=p1ab5K553oxMYVNe3R53Rh4IOJ9G7EgKmjvZY7LO2Dg,6192
250
- validmind/tests/model_validation/statsmodels/ShapiroWilk.py,sha256=W8_EARepPA0CpApy0w7cLcbnP7ZegBjntGSUOcuyrqQ,3243
251
- validmind/tests/model_validation/statsmodels/ZivotAndrewsArch.py,sha256=4QrZImKZYVLKrmUgjnBTldtIqXf8-tyz9CiNqMYtj_w,3291
243
+ validmind/tests/model_validation/statsmodels/ShapiroWilk.py,sha256=wN9ggwb_N-e2qi5YTVELb5kN72wfrX3-UNWfg6SRhJQ,3288
252
244
  validmind/tests/model_validation/statsmodels/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
253
245
  validmind/tests/model_validation/statsmodels/statsutils.py,sha256=s1J7lHJ4kAcp_gGI0LAsaIFxbSqPrqXanxgtDI_Kig0,495
254
- validmind/tests/prompt_validation/Bias.py,sha256=0b3IxjMrEJSrxuI7IB-8orPKtEa6tMtg9JH62cR_tns,7060
255
- validmind/tests/prompt_validation/Clarity.py,sha256=DMBJ99OBJmrVBSEqaKupE3jHTr514Tilm283b1omSz0,6256
256
- validmind/tests/prompt_validation/Conciseness.py,sha256=y1HH8dC3sbqs3pEvWjQGJ6pDHdVwo-xL835UFkG-kEc,6004
257
- validmind/tests/prompt_validation/Delimitation.py,sha256=2YFncdONGoAnqo2PownXKRLzPYQl8BoRW-nIQbiQ0Cg,5522
258
- validmind/tests/prompt_validation/NegativeInstruction.py,sha256=1aqNV_vB5oM2_8UXDZ0S6DJtnPcp1hDkMuRj2rokJzI,6671
259
- validmind/tests/prompt_validation/Robustness.py,sha256=VIQotugWQ32Q1kr1kacBuqk-q1EPTRi9NZAIYrTDsY0,6826
260
- validmind/tests/prompt_validation/Specificity.py,sha256=v823rZAr9a810Q_RlgH7FqPPxXZ00hDJApkFaJJ8mgk,6116
246
+ validmind/tests/prompt_validation/Bias.py,sha256=h7fC0DiVlSxtciMIJOlS_65bwWuT4soONd7YFhIVHhY,7052
247
+ validmind/tests/prompt_validation/Clarity.py,sha256=TaVmv6pP3e-b-Nr5-tiMHoQgvGoVmDQbwa8HyabL3l0,6248
248
+ validmind/tests/prompt_validation/Conciseness.py,sha256=HoUtzMAYSzScLG3crxpg6yXETG_Wpjkpj1TQAAlAoQE,5996
249
+ validmind/tests/prompt_validation/Delimitation.py,sha256=eYTq6JyEs3LJ6hienklXB5yAEhBe6-BAeBq7op5andg,5514
250
+ validmind/tests/prompt_validation/NegativeInstruction.py,sha256=PeSvEN1-sp_BrPIknIPFsJqYoTeFqmK-yunlrUwys9o,6663
251
+ validmind/tests/prompt_validation/Robustness.py,sha256=k1C0HoOiddhNU88VARZMS40tM49Cg8LfT5D8RUtub8w,6829
252
+ validmind/tests/prompt_validation/Specificity.py,sha256=cHQmRlseosTQVi4sqMtfkS6P8j6z1LZur1_EkVLw8ck,6108
261
253
  validmind/tests/prompt_validation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
262
- validmind/tests/prompt_validation/ai_powered_test.py,sha256=qE3OXU0Db3z7KNqHMWZE8e78BeGg6pB0IozSzDNXIdc,2945
254
+ validmind/tests/prompt_validation/ai_powered_test.py,sha256=7TTeIR5GotQosm7oVT8Y3KnwPB3XkVT1Fzhckpr-SgE,1963
263
255
  validmind/tests/test_providers.py,sha256=1tYn_sWNqifFpOp8eNvcVyJzxBjhHV5Py4FxO8opPZA,4944
264
256
  validmind/unit_metrics/__init__.py,sha256=a7oV8YRC-O6dF7ePz4E8Fqrh4ax6AWT26Y996VPView,7084
265
257
  validmind/unit_metrics/classification/sklearn/Accuracy.py,sha256=2Ra_OpKceY01h1dAFCqRFAwe--K2oVbCUiYjM5AH_nQ,480
@@ -267,7 +259,7 @@ validmind/unit_metrics/classification/sklearn/F1.py,sha256=Uiq5sPyNpALhApTkmLUhh
267
259
  validmind/unit_metrics/classification/sklearn/Precision.py,sha256=8zO5VDZhfT8R2VFYiV-CzsZwhsTwVAKca4nhD-qALLw,458
268
260
  validmind/unit_metrics/classification/sklearn/ROC_AUC.py,sha256=5-i1xhrLg7Ix4sk7pBKDBtlqBCNRD365LnTvsekSVYs,452
269
261
  validmind/unit_metrics/classification/sklearn/Recall.py,sha256=0WG3A6K9M1UmbWQKoS_wwLfq-cXVDDTIA1ZpaJNyKp8,449
270
- validmind/unit_metrics/composite.py,sha256=wuOTBnj-eNOBIkCdJ589gr0TEwl0i3TLvqJ1BwwJ9KI,7971
262
+ validmind/unit_metrics/composite.py,sha256=2FRvPv028BvpisGJvyJ0RjS4P3upKB4iRfFn3DSXOBo,8005
271
263
  validmind/unit_metrics/regression/GiniCoefficient.py,sha256=ebh1rOob8mEmQp0EpXcneAXjc4AIfm6O3Y0_mnTahKA,984
272
264
  validmind/unit_metrics/regression/HuberLoss.py,sha256=JAUxKFpXp1NtQKEJMZlGgxDlk8pFT1tY3ZcxNQPDhHM,680
273
265
  validmind/unit_metrics/regression/KolmogorovSmirnovStatistic.py,sha256=DRHuFH3DqDMy56tzkN8ETwt36FCu1m-nGxK0OJCPMDk,981
@@ -279,28 +271,28 @@ validmind/unit_metrics/regression/sklearn/MeanAbsoluteError.py,sha256=LCNgpDw6FB
279
271
  validmind/unit_metrics/regression/sklearn/MeanSquaredError.py,sha256=7UQnDTTO7yRRyMe3Zac9ZyjEbbD8pW_8WnZwHdVB_8U,463
280
272
  validmind/unit_metrics/regression/sklearn/RSquaredScore.py,sha256=h9U5ndtnJfNNtKPZIo5n3KRp-m4akQcEo0t1iSwjVzY,420
281
273
  validmind/unit_metrics/regression/sklearn/RootMeanSquaredError.py,sha256=_5IQIU9jNfmTE4NLJvaRWXbudRGV2PS7nYF5e4fkSMY,556
282
- validmind/utils.py,sha256=ZQ016Cbgc_hrQb2HZ7s9KH80fDncnQZXFwa9oi8JO8g,16931
274
+ validmind/utils.py,sha256=MQDsW7YuwEJ50tA01n3xb8D_Ihmji_Mn22AlMnJJQT8,15819
283
275
  validmind/vm_models/__init__.py,sha256=lmWCD2u4tW6_AH39UnJ24sCcMUcsHbUttz7SaZfrh3s,1168
284
276
  validmind/vm_models/dataset/__init__.py,sha256=U4CxZjdoc0dd9u2AqBl5PJh1UVbzXWNrmundmjLF-qE,346
285
- validmind/vm_models/dataset/dataset.py,sha256=VlR5Wp5pCoXY3U0C8AbevaySFGf0KJ3QIK3go5OEbog,21843
286
- validmind/vm_models/dataset/utils.py,sha256=IZDCM_FNaaMAWm9Vrvmf_h8ZzhkOffxa6SHLnHPP1TA,5157
277
+ validmind/vm_models/dataset/dataset.py,sha256=YP6l5sq7SJNExWK3RvkxeCBTLj4z2GkBsmv4KxfBS1I,22753
278
+ validmind/vm_models/dataset/utils.py,sha256=ygT6hUw0KklKCboo7tqLxh_hf-dEiaccVyCpR9DCPF8,5177
287
279
  validmind/vm_models/figure.py,sha256=iSrvPcCG5sQrMkX1Fh6c5utRzaroh3bc6IlnGDOK_Eg,6651
288
- validmind/vm_models/model.py,sha256=n3XgTPHO4qeHiSxUq4Y8ajPYnxCe2Y_6X-02Ehb4s7M,6074
289
- validmind/vm_models/test/metric.py,sha256=R7Y-_fzBcIrkJw7-BeifQHMuHTV3HLDc8T3nS_lbCF8,3385
280
+ validmind/vm_models/model.py,sha256=b-UL73EWOpj-X5aQbHQ3HLkONHCH9hYwUlKxVwPC6gI,6088
281
+ validmind/vm_models/test/metric.py,sha256=nq3htPGW51D_HZCk0rDovZud6DeTUsmN0voW-zCs4c0,3230
290
282
  validmind/vm_models/test/metric_result.py,sha256=Bak4GDrMlNq5NtgP5exwlPsKZgz3tWgtC6jZqtHjvqM,1987
291
283
  validmind/vm_models/test/output_template.py,sha256=njqCAMyLxwadkCWhACVskyL9-psTgmUysaeeirTVAX4,1500
292
284
  validmind/vm_models/test/result_summary.py,sha256=QJcIKJUeBf5wW3lyue6ctsi1jKSyoiAIfmjudGJiJtc,2028
293
- validmind/vm_models/test/result_wrapper.py,sha256=an310hWJpVvWDrVSFvjTDUBDSE4XJ0aDliSVnKsgZaQ,17611
294
- validmind/vm_models/test/test.py,sha256=434PqhPcbwfCmNjYVwHGMG-rViIatb9-1nmxkdZF8Xo,3104
295
- validmind/vm_models/test/threshold_test.py,sha256=7d46Z5N_U1hTr6LGa2A0_ZuaIFl54xZ_eRzgf-KUGjk,3662
285
+ validmind/vm_models/test/result_wrapper.py,sha256=wBCkHg9a5Vrys98EjJG7XwWMU-0L1BkK3aufTCn9KxY,17629
286
+ validmind/vm_models/test/test.py,sha256=2arTeCZXN3ogc2ONN_RII1bw8FOdkFRwLXx5vOtoB9o,3239
287
+ validmind/vm_models/test/threshold_test.py,sha256=uN_jgnHE1MGIuL7KVvGIwmOKTIaQwTn7FvydWKh4St8,3677
296
288
  validmind/vm_models/test/threshold_test_result.py,sha256=EXP-g_e3NsnpkvNgYew030qVUoY6ZTHyuuFUXaq-BuM,1954
297
289
  validmind/vm_models/test_context.py,sha256=AN7-atBgOcD04MLVitCFJYooxF6_iNmvI2H4nkv32iw,9035
298
- validmind/vm_models/test_suite/runner.py,sha256=uDt1eo3sHUXXV-ZN_gJUKR-0Hp5RNtUcDgKHQXtLf7s,6893
290
+ validmind/vm_models/test_suite/runner.py,sha256=wgjyqx2CU4bjX3fZKmzJP7gb5GFooGvsrVt93Ko8g1Y,6956
299
291
  validmind/vm_models/test_suite/summary.py,sha256=co-xJJMUYGb7cOiVmw0i8vpZlfiMqrWjaCOmHKMAbcE,4686
300
292
  validmind/vm_models/test_suite/test.py,sha256=_GfbK36l98SjzgVcucmp0OKBJKqMW3neO7SqJ3EWeps,5049
301
293
  validmind/vm_models/test_suite/test_suite.py,sha256=Cns2wL54v0T5Mv5_HJb3kMeaa4rtycdqT8KxK9_rWEU,6279
302
- validmind-2.2.6.dist-info/LICENSE,sha256=XonPUfwjvrC5Ombl3y-ko0Wubb1xdG_7nzvIbkZRKHw,35772
303
- validmind-2.2.6.dist-info/METADATA,sha256=x00vy4OCVq0TNkM2jjt2Jzl-1FwH-I96zzIuoHfXRHU,3911
304
- validmind-2.2.6.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
305
- validmind-2.2.6.dist-info/entry_points.txt,sha256=HuW7YyOv9u_OEWpViQXtv0nfoI67uieJHawKWA4Hv9A,76
306
- validmind-2.2.6.dist-info/RECORD,,
294
+ validmind-2.3.3.dist-info/LICENSE,sha256=XonPUfwjvrC5Ombl3y-ko0Wubb1xdG_7nzvIbkZRKHw,35772
295
+ validmind-2.3.3.dist-info/METADATA,sha256=enT83SFLRsAK6vYP6sJRnjx8JFWRzSQnCwnFa291nXc,3911
296
+ validmind-2.3.3.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
297
+ validmind-2.3.3.dist-info/entry_points.txt,sha256=HuW7YyOv9u_OEWpViQXtv0nfoI67uieJHawKWA4Hv9A,76
298
+ validmind-2.3.3.dist-info/RECORD,,
@@ -1,114 +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 plotly.express as px
8
- import plotly.graph_objects as go
9
-
10
- from validmind.vm_models import Figure, Metric
11
-
12
-
13
- @dataclass
14
- class DefaultRatesbyRiskBandPlot(Metric):
15
- """
16
- Generates a bar plot showcasing the distribution of default rates across different risk bands in a dataset.
17
-
18
- **Purpose**:
19
- The Default Rates by Risk Band Plot metric aims to quantify and visually represent default rates across varying
20
- risk bands within a specific dataset. This information is essential in evaluating the functionality of credit risk
21
- models, by providing a comprehensive view of default rates across a range of risk categories.
22
-
23
- **Test Mechanism**:
24
- The applied test approach involves a calculated bar plot. This plot is derived by initially determining the count
25
- of accounts in every risk band and then converting these count values into percentages by dividing by the total
26
- quantity of accounts. The percentages are then depicted as a bar plot, clearly showcasing the proportion of total
27
- accounts associated with each risk band. Hence, the plot delivers a summarized depiction of default risk across
28
- various bands. The 'Dark24' color sequence is used in the plot to ensure each risk band is easily distinguishable.
29
-
30
- **Signs of High Risk**:
31
- - High risk may be indicated by a significantly large percentage of accounts associated with high-risk bands.
32
- - High exposure to potential default risk in the dataset indicates potential weaknesses in the model's capability
33
- to effectively manage or predict credit risk.
34
-
35
- **Strengths**:
36
- - The metric's primary strengths lie in its simplicity and visual impact.
37
- - The graphical display of default rates allows for a clear understanding of the spread of default risk across risk
38
- bands.
39
- - Using a bar chart simplifies the comparison between various risk bands and can highlight potential spots of high
40
- risk.
41
- - This approach assists in identifying any numerical imbalances or anomalies, thus facilitating the task of
42
- evaluating and contrasting performance across various credit risk models.
43
-
44
- **Limitations**:
45
- - The key constraint of this metric is that it cannot provide any insights as to why certain risk bands might have
46
- higher default rates than others.
47
- - If there is a large imbalance in the number of accounts across risk bands, the visual representation might not
48
- accurately depict the true distribution of risk.
49
- - Other factors contributing to credit risk beyond the risk bands are not considered.
50
- - The metric's reliance on a visual format might potentially lead to misinterpretation of results, as graphical
51
- depictions can sometimes be misleading.
52
- """
53
-
54
- name = "default_rates_by_risk_band_plot"
55
- required_context = ["dataset"]
56
- default_params = {"title": "Percentage of Total Accounts by Risk Band"}
57
- metadata = {
58
- "task_types": ["classification"],
59
- "tags": ["tabular_data", "visualization", "credit_risk"],
60
- }
61
-
62
- @staticmethod
63
- def plot_band_percentages(df, risk_band_column, title):
64
- # Calculate the count of accounts in each risk band
65
- risk_band_counts = df[risk_band_column].value_counts().sort_index()
66
-
67
- # Convert to percentage
68
- total_accounts = len(df)
69
- risk_band_percentages = (risk_band_counts / total_accounts) * 100
70
-
71
- # Use 'Dark24' color sequence for more distinguishable colors
72
- colors = px.colors.qualitative.Dark24[: len(risk_band_percentages)]
73
-
74
- # Create the bar plot
75
- fig = go.Figure(
76
- data=[
77
- go.Bar(
78
- x=risk_band_percentages.index,
79
- y=risk_band_percentages.values,
80
- marker_color=colors,
81
- )
82
- ]
83
- )
84
-
85
- # Customize the plot
86
- fig.update_layout(
87
- title_text=title,
88
- xaxis_title="Risk Band",
89
- yaxis_title="Percentage of Total Accounts",
90
- )
91
-
92
- return fig, risk_band_percentages
93
-
94
- def run(self):
95
- df = self.inputs.dataset
96
- risk_band_column = self.params["risk_band_column"]
97
- title = self.params["title"]
98
-
99
- fig, risk_band_percentages = self.plot_band_percentages(
100
- df, risk_band_column, title
101
- )
102
-
103
- return self.cache_results(
104
- metric_value={
105
- "band_percentages": risk_band_percentages.to_dict(),
106
- },
107
- figures=[
108
- Figure(
109
- for_object=self,
110
- key="band_percentages",
111
- figure=fig,
112
- )
113
- ],
114
- )
@@ -1,150 +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 pandas as pd
8
- import plotly.graph_objects as go
9
- from plotly.subplots import make_subplots
10
-
11
- from validmind.vm_models import Figure, Metric
12
-
13
-
14
- @dataclass
15
- class PiTCreditScoresHistogram(Metric):
16
- """
17
- Generates a histogram visualization for observed and predicted credit default scores.
18
-
19
- **Purpose**:
20
- The PiT (Point in Time) Credit Scores Histogram metric is used to evaluate the predictive performance of a credit
21
- risk assessment model. This metric provides a visual representation of observed versus predicted default scores and
22
- enables quick and intuitive comparison for model assessment.
23
-
24
- **Test Mechanism**:
25
- This metric generates histograms for both observed and predicted score distributions of defaults and non-defaults.
26
- The simultaneous representation of both the observed and predicted scores sheds light on the model's ability to
27
- accurately predict credit risk.
28
-
29
- **Signs of High Risk**:
30
- - Significant discrepancies between the observed and predicted histograms, suggesting that the model may not be
31
- adequately addressing certain risk factors.
32
- - Concentration of predicted defaults towards one end of the graph, or uneven distribution in comparison to
33
- observed scores, indicating potential issues in the model's interpretation of the data or outcome prediction.
34
-
35
- **Strengths**:
36
- - Provides an intuitive visual representation of model performance that's easy to comprehend, even for individuals
37
- without a technical background.
38
- - Useful for understanding the model's ability to distinguish between defaulting and non-defaulting entities.
39
- - Specifically tailored for assessing credit risk models. The Point in Time (PiT) factor considers the evolution of
40
- credit risk over time.
41
-
42
- **Limitations**:
43
- - As the information is visual, precise and quantitative results for detailed statistical analyses may not be
44
- obtained.
45
- - The method relies on manual inspection and comparison, introducing subjectivity and potential bias.
46
- - Subtle discrepancies might go unnoticed and it could be less reliable for identifying such cues.
47
- - Performance may degrade when score distributions overlap significantly or when too many scores are plotted,
48
- resulting in cluttered or hard-to-decipher graphs.
49
- """
50
-
51
- name = "pit_credit_scores_histogram"
52
- required_inputs = ["dataset", "model"]
53
- default_params = {"title": "Histogram of Scores"}
54
- metadata = {
55
- "task_types": ["classification"],
56
- "tags": ["tabular_data", "visualization", "credit_risk"],
57
- }
58
-
59
- @staticmethod
60
- def plot_score_histogram(
61
- df,
62
- default_column,
63
- predicted_default_column,
64
- scores_column,
65
- title,
66
- point_in_time_date,
67
- ):
68
- fig = make_subplots(
69
- rows=1, cols=2, subplot_titles=("Observed Default", "Predicted Default")
70
- )
71
-
72
- observed_data_0 = df[df[default_column] == 0][scores_column]
73
- observed_data_1 = df[df[default_column] == 1][scores_column]
74
-
75
- predicted_data_0 = df[df[predicted_default_column] == 0][scores_column]
76
- predicted_data_1 = df[df[predicted_default_column] == 1][scores_column]
77
-
78
- fig.add_trace(
79
- go.Histogram(x=observed_data_0, opacity=0.75, name="Observed Default = 0"),
80
- row=1,
81
- col=1,
82
- )
83
- fig.add_trace(
84
- go.Histogram(x=observed_data_1, opacity=0.75, name="Observed Default = 1"),
85
- row=1,
86
- col=1,
87
- )
88
-
89
- fig.add_trace(
90
- go.Histogram(
91
- x=predicted_data_0, opacity=0.75, name="Predicted Default = 0"
92
- ),
93
- row=1,
94
- col=2,
95
- )
96
- fig.add_trace(
97
- go.Histogram(
98
- x=predicted_data_1, opacity=0.75, name="Predicted Default = 1"
99
- ),
100
- row=1,
101
- col=2,
102
- )
103
-
104
- title += f" (PiT: {point_in_time_date.strftime('%d %b %Y')})"
105
- fig.update_layout(barmode="overlay", title_text=title)
106
-
107
- return fig
108
-
109
- def run(self):
110
- df = self.inputs.dataset.df
111
- default_column = (
112
- self.params.get("default_column") or self.inputs.dataset.target_column
113
- )
114
- predicted_default_column = (
115
- self.params.get("predicted_default_column")
116
- or self.inputs.dataset.y_pred(self.inputs.model),
117
- )
118
- scores_column = self.params["scores_column"]
119
- point_in_time_column = self.params["point_in_time_column"]
120
-
121
- title = self.params["title"]
122
-
123
- point_in_time_date = pd.to_datetime(df[point_in_time_column].iloc[0])
124
-
125
- fig = self.plot_score_histogram(
126
- df,
127
- default_column,
128
- predicted_default_column,
129
- scores_column,
130
- title,
131
- point_in_time_date,
132
- )
133
-
134
- return self.cache_results(
135
- metric_value={
136
- "score_histogram": {
137
- "observed_scores": list(df[df[default_column] == 1][scores_column]),
138
- "predicted_scores": list(
139
- df[df[predicted_default_column] == 1][scores_column]
140
- ),
141
- },
142
- },
143
- figures=[
144
- Figure(
145
- for_object=self,
146
- key="score_histogram",
147
- figure=fig,
148
- )
149
- ],
150
- )