validmind 2.3.5__tar.gz → 2.4.1__tar.gz
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-2.3.5 → validmind-2.4.1}/PKG-INFO +1 -1
- {validmind-2.3.5 → validmind-2.4.1}/pyproject.toml +1 -1
- validmind-2.4.1/validmind/__version__.py +1 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/ai/test_descriptions.py +8 -1
- {validmind-2.3.5 → validmind-2.4.1}/validmind/ai/utils.py +2 -1
- {validmind-2.3.5 → validmind-2.4.1}/validmind/client.py +1 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/template.py +2 -0
- validmind-2.4.1/validmind/tests/__init__.py +39 -0
- validmind-2.4.1/validmind/tests/_store.py +102 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/ACFandPACFPlot.py +7 -9
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/ADF.py +8 -10
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/ANOVAOneWayTable.py +8 -10
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/AutoAR.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/AutoMA.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/AutoSeasonality.py +8 -10
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/AutoStationarity.py +8 -10
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/BivariateFeaturesBarPlots.py +8 -10
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/BivariateHistograms.py +8 -10
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/BivariateScatterPlots.py +8 -10
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/ChiSquaredFeaturesTable.py +8 -10
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/ClassImbalance.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/DFGLSArch.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/DatasetDescription.py +7 -9
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/DatasetSplit.py +8 -9
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/DescriptiveStatistics.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/Duplicates.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/EngleGrangerCoint.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/FeatureTargetCorrelationPlot.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/HeatmapFeatureCorrelations.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/HighCardinality.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/HighPearsonCorrelation.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/IQROutliersBarPlot.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/IQROutliersTable.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/IsolationForestOutliers.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/KPSS.py +8 -10
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/LaggedCorrelationHeatmap.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/MissingValues.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/MissingValuesBarPlot.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/MissingValuesRisk.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/PearsonCorrelationMatrix.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/PhillipsPerronArch.py +7 -9
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/RollingStatsPlot.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/ScatterPlot.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/SeasonalDecompose.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/Skewness.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/SpreadPlot.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/TabularCategoricalBarPlots.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/TabularDateTimeHistograms.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/TabularDescriptionTables.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/TabularNumericalHistograms.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/TargetRateBarPlots.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/TimeSeriesFrequency.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/TimeSeriesLinePlot.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/TimeSeriesMissingValues.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/TimeSeriesOutliers.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/TooManyZeroValues.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/UniqueRows.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/WOEBinPlots.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/WOEBinTable.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/ZivotAndrewsArch.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/nlp/CommonWords.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/nlp/Hashtags.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/nlp/Mentions.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/nlp/Punctuations.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/nlp/StopWords.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/nlp/TextDescription.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/decorator.py +10 -8
- validmind-2.4.1/validmind/tests/load.py +264 -0
- validmind-2.4.1/validmind/tests/metadata.py +59 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/ClusterSizeDistribution.py +5 -7
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/FeaturesAUC.py +6 -8
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/ModelMetadata.py +8 -9
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/RegressionResidualsPlot.py +2 -6
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/embeddings/ClusterDistribution.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/embeddings/CosineSimilarityDistribution.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/embeddings/DescriptiveAnalytics.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/embeddings/EmbeddingsVisualization2D.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/embeddings/StabilityAnalysis.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/AdjustedMutualInformation.py +5 -7
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/AdjustedRandIndex.py +5 -7
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/ClassifierPerformance.py +7 -9
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/ClusterCosineSimilarity.py +5 -7
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/ClusterPerformance.py +5 -7
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/ClusterPerformanceMetrics.py +2 -7
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/CompletenessScore.py +5 -7
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/ConfusionMatrix.py +19 -10
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/FowlkesMallowsScore.py +5 -7
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/HomogeneityScore.py +5 -7
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/HyperParametersTuning.py +2 -7
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/KMeansClustersOptimization.py +4 -7
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/MinimumAccuracy.py +7 -9
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/MinimumF1Score.py +7 -9
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/MinimumROCAUCScore.py +7 -9
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/ModelsPerformanceComparison.py +8 -10
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/OverfitDiagnosis.py +7 -9
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/PermutationFeatureImportance.py +8 -10
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/PopulationStabilityIndex.py +7 -9
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/PrecisionRecallCurve.py +8 -10
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/ROCCurve.py +10 -11
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/RegressionErrors.py +5 -7
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/RegressionModelsPerformanceComparison.py +5 -7
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/RegressionR2Square.py +5 -7
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/RobustnessDiagnosis.py +10 -14
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/SHAPGlobalImportance.py +8 -10
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/SilhouettePlot.py +5 -7
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/TrainingTestDegradation.py +8 -10
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/VMeasure.py +5 -7
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/WeakspotsDiagnosis.py +8 -10
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/AutoARIMA.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/BoxPierce.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/CumulativePredictionProbabilities.py +3 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/DurbinWatsonTest.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/GINITable.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/JarqueBera.py +7 -9
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/KolmogorovSmirnov.py +7 -9
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/LJungBox.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/Lilliefors.py +7 -9
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/PredictionProbabilitiesHistogram.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/RegressionCoeffsPlot.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/RegressionFeatureSignificance.py +7 -9
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/RegressionModelForecastPlot.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/RegressionModelForecastPlotLevels.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/RegressionModelSensitivityPlot.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/RegressionModelSummary.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/RegressionModelsCoeffs.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/RegressionPermutationFeatureImportance.py +6 -8
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/RunsTest.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/ScorecardHistogram.py +3 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/ShapiroWilk.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/prompt_validation/Bias.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/prompt_validation/Clarity.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/prompt_validation/Conciseness.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/prompt_validation/Delimitation.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/prompt_validation/NegativeInstruction.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/prompt_validation/Robustness.py +2 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/prompt_validation/Specificity.py +2 -4
- validmind-2.4.1/validmind/tests/run.py +394 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/test_providers.py +12 -0
- validmind-2.4.1/validmind/tests/utils.py +16 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/unit_metrics/__init__.py +12 -4
- {validmind-2.3.5 → validmind-2.4.1}/validmind/unit_metrics/composite.py +3 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/test/metric.py +8 -5
- {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/test/result_wrapper.py +2 -1
- {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/test/test.py +14 -11
- {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/test/threshold_test.py +1 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/test_suite/runner.py +1 -0
- validmind-2.3.5/validmind/__version__.py +0 -1
- validmind-2.3.5/validmind/tests/__init__.py +0 -493
- {validmind-2.3.5 → validmind-2.4.1}/LICENSE +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/README.pypi.md +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/__init__.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/api_client.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/client_config.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/__init__.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/classification/__init__.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/classification/customer_churn.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/classification/datasets/bank_customer_churn.csv +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/classification/datasets/taiwan_credit.csv +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/classification/taiwan_credit.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/cluster/digits.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/credit_risk/__init__.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/credit_risk/datasets/lending_club_loan_data_2007_2014_clean.csv.gz +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/credit_risk/lending_club.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/llm/rag/__init__.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_1.csv +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_2.csv +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_3.csv +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_4.csv +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_5.csv +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/llm/rag/rfp.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/nlp/__init__.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/nlp/cnn_dailymail.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/nlp/datasets/Covid_19.csv +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/nlp/datasets/cnn_dailymail_100_with_predictions.csv +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/nlp/datasets/cnn_dailymail_500_with_predictions.csv +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/nlp/datasets/sentiments_with_predictions.csv +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/nlp/twitter_covid_19.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/__init__.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/california_housing.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/datasets/fred/CPIAUCSL.csv +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/datasets/fred/CSUSHPISA.csv +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/datasets/fred/DRSFRMACBS.csv +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/datasets/fred/FEDFUNDS.csv +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/datasets/fred/GDP.csv +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/datasets/fred/GDPC1.csv +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/datasets/fred/GS10.csv +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/datasets/fred/GS3.csv +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/datasets/fred/GS5.csv +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/datasets/fred/MORTGAGE30US.csv +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/datasets/fred/UNRATE.csv +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/datasets/fred_loan_rates.csv +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/datasets/fred_loan_rates_test_1.csv +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/datasets/fred_loan_rates_test_2.csv +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/datasets/fred_loan_rates_test_3.csv +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/datasets/fred_loan_rates_test_4.csv +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/datasets/fred_loan_rates_test_5.csv +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/datasets/leanding_club_loan_rates.csv +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/fred.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/fred_timeseries.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/lending_club.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/models/fred_loan_rates_model_1.pkl +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/models/fred_loan_rates_model_2.pkl +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/models/fred_loan_rates_model_3.pkl +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/models/fred_loan_rates_model_4.pkl +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/models/fred_loan_rates_model_5.pkl +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/errors.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/html_templates/__init__.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/html_templates/content_blocks.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/input_registry.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/logging.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/models/__init__.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/models/foundation.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/models/function.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/models/huggingface.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/models/metadata.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/models/pipeline.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/models/pytorch.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/models/r_model.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/models/sklearn.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/test_suites/__init__.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/test_suites/classifier.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/test_suites/cluster.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/test_suites/embeddings.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/test_suites/llm.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/test_suites/nlp.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/test_suites/parameters_optimization.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/test_suites/regression.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/test_suites/statsmodels_timeseries.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/test_suites/summarization.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/test_suites/tabular_datasets.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/test_suites/text_data.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/test_suites/time_series.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/__types__.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/TimeSeriesDescription.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/TimeSeriesDescriptiveStatistics.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/TimeSeriesHistogram.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/__init__.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/nlp/LanguageDetection.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/nlp/PolarityAndSubjectivity.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/nlp/Sentiment.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/nlp/Toxicity.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/nlp/__init__.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/BertScore.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/BleuScore.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/ContextualRecall.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/MeteorScore.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/ModelMetadataComparison.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/ModelPredictionResiduals.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/RegardScore.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/RougeScore.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/TimeSeriesPredictionWithCI.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/TimeSeriesPredictionsPlot.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/TimeSeriesR2SquareBySegments.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/TokenDisparity.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/ToxicityScore.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/__init__.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/embeddings/CosineSimilarityComparison.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/embeddings/CosineSimilarityHeatmap.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/embeddings/EuclideanDistanceComparison.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/embeddings/EuclideanDistanceHeatmap.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/embeddings/PCAComponentsPairwisePlots.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/embeddings/StabilityAnalysisKeyword.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/embeddings/StabilityAnalysisRandomNoise.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/embeddings/StabilityAnalysisSynonyms.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/embeddings/StabilityAnalysisTranslation.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/embeddings/TSNEComponentsPairwisePlots.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/ragas/AnswerCorrectness.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/ragas/AnswerRelevance.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/ragas/AnswerSimilarity.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/ragas/AspectCritique.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/ragas/ContextEntityRecall.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/ragas/ContextPrecision.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/ragas/ContextRecall.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/ragas/ContextRelevancy.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/ragas/Faithfulness.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/ragas/utils.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/FeatureImportanceComparison.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/RegressionErrorsComparison.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/RegressionR2SquareComparison.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/__init__.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/__init__.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/statsutils.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/prompt_validation/__init__.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/prompt_validation/ai_powered_test.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/unit_metrics/classification/sklearn/Accuracy.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/unit_metrics/classification/sklearn/F1.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/unit_metrics/classification/sklearn/Precision.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/unit_metrics/classification/sklearn/ROC_AUC.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/unit_metrics/classification/sklearn/Recall.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/unit_metrics/regression/GiniCoefficient.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/unit_metrics/regression/HuberLoss.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/unit_metrics/regression/KolmogorovSmirnovStatistic.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/unit_metrics/regression/MeanAbsolutePercentageError.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/unit_metrics/regression/MeanBiasDeviation.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/unit_metrics/regression/QuantileLoss.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/unit_metrics/regression/sklearn/AdjustedRSquaredScore.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/unit_metrics/regression/sklearn/MeanAbsoluteError.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/unit_metrics/regression/sklearn/MeanSquaredError.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/unit_metrics/regression/sklearn/RSquaredScore.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/unit_metrics/regression/sklearn/RootMeanSquaredError.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/utils.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/__init__.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/dataset/__init__.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/dataset/dataset.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/dataset/utils.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/figure.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/model.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/test/metric_result.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/test/output_template.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/test/result_summary.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/test/threshold_test_result.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/test_context.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/test_suite/summary.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/test_suite/test.py +0 -0
- {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/test_suite/test_suite.py +0 -0
@@ -0,0 +1 @@
|
|
1
|
+
__version__ = "2.4.1"
|
@@ -218,6 +218,7 @@ def get_description_metadata(
|
|
218
218
|
summary=None,
|
219
219
|
figures=None,
|
220
220
|
prefix="metric_description",
|
221
|
+
should_generate=True,
|
221
222
|
):
|
222
223
|
"""Get Metadata Dictionary for a Test or Metric Result
|
223
224
|
|
@@ -238,6 +239,7 @@ def get_description_metadata(
|
|
238
239
|
summary (Any): The test summary or results to interpret
|
239
240
|
figures (List[Figure]): The figures to attach to the test suite result
|
240
241
|
prefix (str): The prefix to use for the content ID (Default: "metric_description")
|
242
|
+
should_generate (bool): Whether to generate the description or not (Default: True)
|
241
243
|
|
242
244
|
Returns:
|
243
245
|
dict: The metadata object to be logged with the test results
|
@@ -250,7 +252,12 @@ def get_description_metadata(
|
|
250
252
|
# TODO: fix circular import
|
251
253
|
from validmind.ai.utils import is_configured
|
252
254
|
|
253
|
-
if (
|
255
|
+
if (
|
256
|
+
should_generate
|
257
|
+
and (summary or figures)
|
258
|
+
and not env_disabled
|
259
|
+
and is_configured()
|
260
|
+
):
|
254
261
|
revision_name = AI_REVISION_NAME
|
255
262
|
|
256
263
|
# get description future and set it as the description in the metadata
|
@@ -3,6 +3,7 @@
|
|
3
3
|
# SPDX-License-Identifier: AGPL-3.0 AND ValidMind Commercial
|
4
4
|
|
5
5
|
import os
|
6
|
+
from urllib.parse import urljoin
|
6
7
|
|
7
8
|
from openai import AzureOpenAI, Client, OpenAI
|
8
9
|
|
@@ -63,7 +64,7 @@ def get_client_and_model():
|
|
63
64
|
# TODO: improve this to be a bit more dynamic
|
64
65
|
"http://localhost:4000/genai"
|
65
66
|
if "localhost" in get_api_host()
|
66
|
-
else
|
67
|
+
else urljoin(get_api_host(), "/genai")
|
67
68
|
),
|
68
69
|
api_key=response["key"],
|
69
70
|
)
|
@@ -0,0 +1,39 @@
|
|
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
|
+
"""ValidMind Tests Module"""
|
6
|
+
|
7
|
+
from ..errors import LoadTestError
|
8
|
+
from ..logging import get_logger
|
9
|
+
from .decorator import metric, tags, tasks, test
|
10
|
+
from .load import describe_test, list_tests, load_test
|
11
|
+
from .metadata import list_tags, list_tasks, list_tasks_and_tags
|
12
|
+
from .run import run_test
|
13
|
+
from .test_providers import LocalTestProvider, TestProvider, register_test_provider
|
14
|
+
|
15
|
+
logger = get_logger(__name__)
|
16
|
+
|
17
|
+
|
18
|
+
__all__ = [
|
19
|
+
"data_validation",
|
20
|
+
"model_validation",
|
21
|
+
"prompt_validation",
|
22
|
+
"list_tests",
|
23
|
+
"load_test",
|
24
|
+
"describe_test",
|
25
|
+
"run_test",
|
26
|
+
"register_test_provider",
|
27
|
+
"LoadTestError",
|
28
|
+
"LocalTestProvider",
|
29
|
+
"TestProvider",
|
30
|
+
# Metadata
|
31
|
+
"list_tags",
|
32
|
+
"list_tasks",
|
33
|
+
"list_tasks_and_tags",
|
34
|
+
# Decorators for functional metrics
|
35
|
+
"test",
|
36
|
+
"metric", # DEPRECATED
|
37
|
+
"tags",
|
38
|
+
"tasks",
|
39
|
+
]
|
@@ -0,0 +1,102 @@
|
|
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
|
+
"""Module for storing loaded tests and test providers"""
|
6
|
+
|
7
|
+
|
8
|
+
def singleton(cls):
|
9
|
+
"""Decorator to make a class a singleton"""
|
10
|
+
instances = {}
|
11
|
+
|
12
|
+
def get_instance(*args, **kwargs):
|
13
|
+
if cls not in instances:
|
14
|
+
instances[cls] = cls(*args, **kwargs)
|
15
|
+
return instances[cls]
|
16
|
+
|
17
|
+
return get_instance
|
18
|
+
|
19
|
+
|
20
|
+
@singleton
|
21
|
+
class TestProviderStore:
|
22
|
+
"""Singleton class for storing test providers"""
|
23
|
+
|
24
|
+
def __init__(self):
|
25
|
+
self.test_providers = {}
|
26
|
+
|
27
|
+
def has_test_provider(self, namespace: str) -> bool:
|
28
|
+
"""Check if a test provider exists by namespace
|
29
|
+
|
30
|
+
Args:
|
31
|
+
namespace (str): The namespace of the test provider
|
32
|
+
|
33
|
+
Returns:
|
34
|
+
bool: True if the test provider exists
|
35
|
+
"""
|
36
|
+
return namespace in self.test_providers
|
37
|
+
|
38
|
+
def get_test_provider(self, namespace: str):
|
39
|
+
"""Get a test provider by namespace
|
40
|
+
|
41
|
+
Args:
|
42
|
+
namespace (str): The namespace of the test provider
|
43
|
+
|
44
|
+
Returns:
|
45
|
+
TestProvider: The test provider
|
46
|
+
"""
|
47
|
+
return self.test_providers.get(namespace)
|
48
|
+
|
49
|
+
def register_test_provider(self, namespace: str, test_provider) -> None:
|
50
|
+
"""Register an external test provider
|
51
|
+
|
52
|
+
Args:
|
53
|
+
namespace (str): The namespace of the test provider
|
54
|
+
test_provider (TestProvider): The test provider
|
55
|
+
"""
|
56
|
+
self.test_providers[namespace] = test_provider
|
57
|
+
|
58
|
+
|
59
|
+
class TestStore:
|
60
|
+
"""Singleton class for storing loaded tests"""
|
61
|
+
|
62
|
+
def __init__(self):
|
63
|
+
self.tests = {}
|
64
|
+
self.custom_tests = {}
|
65
|
+
|
66
|
+
def get_test(self, test_id: str):
|
67
|
+
"""Get a test by test ID
|
68
|
+
|
69
|
+
Args:
|
70
|
+
test_id (str): The test ID
|
71
|
+
|
72
|
+
Returns:
|
73
|
+
object: The test class or function
|
74
|
+
"""
|
75
|
+
return self.tests.get(test_id)
|
76
|
+
|
77
|
+
def get_custom_test(self, test_id: str):
|
78
|
+
"""Get a custom test by test ID
|
79
|
+
|
80
|
+
Args:
|
81
|
+
test_id (str): The test ID
|
82
|
+
|
83
|
+
Returns:
|
84
|
+
object: The test class or function
|
85
|
+
"""
|
86
|
+
return self.custom_tests.get(test_id)
|
87
|
+
|
88
|
+
def get_test_ids(self) -> list:
|
89
|
+
"""Get all registered test IDs"""
|
90
|
+
return list(self.tests.keys())
|
91
|
+
|
92
|
+
def register_test(self, test_id: str, test: object = None):
|
93
|
+
"""Register a test"""
|
94
|
+
self.tests[test_id] = test
|
95
|
+
|
96
|
+
def register_custom_test(self, test_id: str, test: object):
|
97
|
+
"""Register a single one-off custom test"""
|
98
|
+
self.custom_tests[test_id] = test
|
99
|
+
|
100
|
+
|
101
|
+
test_store = TestStore()
|
102
|
+
test_provider_store = TestProviderStore()
|
@@ -50,15 +50,13 @@ class ACFandPACFPlot(Metric):
|
|
50
50
|
|
51
51
|
name = "acf_pacf_plot"
|
52
52
|
required_inputs = ["dataset"]
|
53
|
-
|
54
|
-
|
55
|
-
"
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
],
|
61
|
-
}
|
53
|
+
tasks = ["regression"]
|
54
|
+
tags = [
|
55
|
+
"time_series_data",
|
56
|
+
"forecasting",
|
57
|
+
"statistical_test",
|
58
|
+
"visualization",
|
59
|
+
]
|
62
60
|
|
63
61
|
def run(self):
|
64
62
|
# Check if index is datetime
|
@@ -47,16 +47,14 @@ class ADF(Metric):
|
|
47
47
|
|
48
48
|
name = "adf"
|
49
49
|
required_inputs = ["dataset"]
|
50
|
-
|
51
|
-
|
52
|
-
"
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
],
|
59
|
-
}
|
50
|
+
tasks = ["regression"]
|
51
|
+
tags = [
|
52
|
+
"time_series_data",
|
53
|
+
"statsmodels",
|
54
|
+
"forecasting",
|
55
|
+
"statistical_test",
|
56
|
+
"stationarity",
|
57
|
+
]
|
60
58
|
|
61
59
|
def summary(self, metric_value: dict):
|
62
60
|
table = pd.DataFrame.from_dict(metric_value, orient="index")
|
@@ -57,16 +57,14 @@ class ANOVAOneWayTable(Metric):
|
|
57
57
|
name = "anova_one_way_table"
|
58
58
|
required_inputs = ["dataset"]
|
59
59
|
default_params = {"features": None, "p_threshold": 0.05}
|
60
|
-
|
61
|
-
|
62
|
-
"
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
],
|
69
|
-
}
|
60
|
+
tasks = ["classification"]
|
61
|
+
tags = [
|
62
|
+
"tabular_data",
|
63
|
+
"statistical_test",
|
64
|
+
"multiclass_classification",
|
65
|
+
"binary_classification",
|
66
|
+
"numerical_data",
|
67
|
+
]
|
70
68
|
|
71
69
|
def run(self):
|
72
70
|
features = self.params["features"]
|
@@ -61,10 +61,8 @@ class AutoAR(Metric):
|
|
61
61
|
name = "auto_ar"
|
62
62
|
required_inputs = ["dataset"]
|
63
63
|
default_params = {"max_ar_order": 3}
|
64
|
-
|
65
|
-
|
66
|
-
"tags": ["time_series_data", "statsmodels", "forecasting", "statistical_test"],
|
67
|
-
}
|
64
|
+
tasks = ["regression"]
|
65
|
+
tags = ["time_series_data", "statsmodels", "forecasting", "statistical_test"]
|
68
66
|
|
69
67
|
def run(self):
|
70
68
|
if "max_ar_order" not in self.params:
|
@@ -57,10 +57,8 @@ class AutoMA(Metric):
|
|
57
57
|
name = "auto_ma"
|
58
58
|
required_inputs = ["dataset"]
|
59
59
|
default_params = {"max_ma_order": 3}
|
60
|
-
|
61
|
-
|
62
|
-
"tags": ["time_series_data", "statsmodels", "forecasting", "statistical_test"],
|
63
|
-
}
|
60
|
+
tasks = ["regression"]
|
61
|
+
tags = ["time_series_data", "statsmodels", "forecasting", "statistical_test"]
|
64
62
|
|
65
63
|
def run(self):
|
66
64
|
if "max_ma_order" not in self.params:
|
@@ -61,16 +61,14 @@ class AutoSeasonality(Metric):
|
|
61
61
|
name = "auto_seasonality"
|
62
62
|
required_inputs = ["dataset"]
|
63
63
|
default_params = {"min_period": 1, "max_period": 4}
|
64
|
-
|
65
|
-
|
66
|
-
"
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
],
|
73
|
-
}
|
64
|
+
tasks = ["regression"]
|
65
|
+
tags = [
|
66
|
+
"time_series_data",
|
67
|
+
"forecasting",
|
68
|
+
"statistical_test",
|
69
|
+
"statsmodels",
|
70
|
+
"seasonality",
|
71
|
+
]
|
74
72
|
|
75
73
|
def evaluate_seasonal_periods(self, series, min_period, max_period):
|
76
74
|
seasonal_periods = []
|
@@ -54,16 +54,14 @@ class AutoStationarity(Metric):
|
|
54
54
|
name = "auto_stationarity"
|
55
55
|
required_inputs = ["dataset"]
|
56
56
|
default_params = {"max_order": 5, "threshold": 0.05}
|
57
|
-
|
58
|
-
|
59
|
-
"
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
],
|
66
|
-
}
|
57
|
+
tasks = ["regression"]
|
58
|
+
tags = [
|
59
|
+
"time_series_data",
|
60
|
+
"statsmodels",
|
61
|
+
"forecasting",
|
62
|
+
"statistical_test",
|
63
|
+
"stationarity",
|
64
|
+
]
|
67
65
|
|
68
66
|
def run(self):
|
69
67
|
if "max_order" not in self.params:
|
{validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/BivariateFeaturesBarPlots.py
RENAMED
@@ -56,16 +56,14 @@ class BivariateFeaturesBarPlots(Metric):
|
|
56
56
|
name = "bivariate_features_bar_plots"
|
57
57
|
required_inputs = ["dataset"]
|
58
58
|
default_params = {"features_pairs": None}
|
59
|
-
|
60
|
-
|
61
|
-
"
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
],
|
68
|
-
}
|
59
|
+
tasks = ["classification"]
|
60
|
+
tags = [
|
61
|
+
"tabular_data",
|
62
|
+
"categorical_data",
|
63
|
+
"binary_classification",
|
64
|
+
"multiclass_classification",
|
65
|
+
"visualization",
|
66
|
+
]
|
69
67
|
|
70
68
|
def run(self):
|
71
69
|
features_pairs = self.params["features_pairs"]
|
@@ -55,16 +55,14 @@ class BivariateHistograms(Metric):
|
|
55
55
|
name = "bivariate_histograms"
|
56
56
|
required_inputs = ["dataset"]
|
57
57
|
default_params = {"features_pairs": None, "target_filter": None}
|
58
|
-
|
59
|
-
|
60
|
-
"
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
],
|
67
|
-
}
|
58
|
+
tasks = ["classification"]
|
59
|
+
tags = [
|
60
|
+
"tabular_data",
|
61
|
+
"categorical_data",
|
62
|
+
"binary_classification",
|
63
|
+
"multiclass_classification",
|
64
|
+
"visualization",
|
65
|
+
]
|
68
66
|
|
69
67
|
def plot_bivariate_histogram(self, features_pairs, target_filter):
|
70
68
|
status_var = self.inputs.dataset.target_column
|
{validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/BivariateScatterPlots.py
RENAMED
@@ -54,16 +54,14 @@ class BivariateScatterPlots(Metric):
|
|
54
54
|
name = "bivariate_scatter_plots"
|
55
55
|
required_inputs = ["dataset"]
|
56
56
|
default_params = {"selected_columns": None}
|
57
|
-
|
58
|
-
|
59
|
-
"
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
],
|
66
|
-
}
|
57
|
+
tasks = ["classification"]
|
58
|
+
tags = [
|
59
|
+
"tabular_data",
|
60
|
+
"categorical_data",
|
61
|
+
"binary_classification",
|
62
|
+
"multiclass_classification",
|
63
|
+
"visualization",
|
64
|
+
]
|
67
65
|
|
68
66
|
def plot_bivariate_scatter(self, columns):
|
69
67
|
figures = []
|
{validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/ChiSquaredFeaturesTable.py
RENAMED
@@ -54,16 +54,14 @@ class ChiSquaredFeaturesTable(Metric):
|
|
54
54
|
name = "chi_squared_features_table"
|
55
55
|
required_inputs = ["dataset"]
|
56
56
|
default_params = {"cat_features": None, "p_threshold": 0.05}
|
57
|
-
|
58
|
-
|
59
|
-
"
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
],
|
66
|
-
}
|
57
|
+
tasks = ["classification"]
|
58
|
+
tags = [
|
59
|
+
"tabular_data",
|
60
|
+
"categorical_data",
|
61
|
+
"statistical_test",
|
62
|
+
"binary_classification",
|
63
|
+
"multiclass_classification",
|
64
|
+
]
|
67
65
|
|
68
66
|
def run(self):
|
69
67
|
target_column = self.inputs.dataset.target_column
|
@@ -73,10 +73,8 @@ class ClassImbalance(ThresholdTest):
|
|
73
73
|
name = "class_imbalance"
|
74
74
|
required_inputs = ["dataset"]
|
75
75
|
default_params = {"min_percent_threshold": 10}
|
76
|
-
|
77
|
-
|
78
|
-
"tags": ["tabular_data", "binary_classification", "multiclass_classification"],
|
79
|
-
}
|
76
|
+
tasks = ["classification"]
|
77
|
+
tags = ["tabular_data", "binary_classification", "multiclass_classification"]
|
80
78
|
|
81
79
|
def summary(self, results: List[ThresholdTestResult], all_passed: bool):
|
82
80
|
return ResultSummary(
|
@@ -53,10 +53,8 @@ class DFGLSArch(Metric):
|
|
53
53
|
|
54
54
|
name = "dickey_fuller_gls"
|
55
55
|
required_inputs = ["dataset"]
|
56
|
-
|
57
|
-
|
58
|
-
"tags": ["time_series_data", "forecasting", "unit_root_test"],
|
59
|
-
}
|
56
|
+
tasks = ["regression"]
|
57
|
+
tags = ["time_series_data", "forecasting", "unit_root_test"]
|
60
58
|
|
61
59
|
def run(self):
|
62
60
|
"""
|
@@ -69,15 +69,13 @@ class DatasetDescription(Metric):
|
|
69
69
|
|
70
70
|
name = "dataset_description"
|
71
71
|
required_inputs = ["dataset"]
|
72
|
-
|
73
|
-
"
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
"tags": ["tabular_data", "time_series_data", "text_data"],
|
80
|
-
}
|
72
|
+
tasks = [
|
73
|
+
"classification",
|
74
|
+
"regression",
|
75
|
+
"text_classification",
|
76
|
+
"text_summarization",
|
77
|
+
]
|
78
|
+
tags = ["tabular_data", "time_series_data", "text_data"]
|
81
79
|
|
82
80
|
def summary(self, metric_value):
|
83
81
|
"""
|
@@ -48,15 +48,14 @@ class DatasetSplit(Metric):
|
|
48
48
|
|
49
49
|
name = "dataset_split"
|
50
50
|
required_inputs = ["datasets"]
|
51
|
-
|
52
|
-
"
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
}
|
51
|
+
tasks = [
|
52
|
+
"classification",
|
53
|
+
"regression",
|
54
|
+
"text_classification",
|
55
|
+
"text_summarization",
|
56
|
+
]
|
57
|
+
|
58
|
+
tags = ["tabular_data", "time_series_data", "text_data"]
|
60
59
|
|
61
60
|
dataset_labels = {
|
62
61
|
"train_ds": "Training",
|
{validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/DescriptiveStatistics.py
RENAMED
@@ -53,10 +53,8 @@ class DescriptiveStatistics(Metric):
|
|
53
53
|
|
54
54
|
name = "descriptive_statistics"
|
55
55
|
required_inputs = ["dataset"]
|
56
|
-
|
57
|
-
|
58
|
-
"tags": ["tabular_data", "time_series_data"],
|
59
|
-
}
|
56
|
+
tasks = ["classification", "regression"]
|
57
|
+
tags = ["tabular_data", "time_series_data"]
|
60
58
|
|
61
59
|
def get_summary_statistics_numerical(self, df, numerical_fields):
|
62
60
|
percentiles = [0.25, 0.5, 0.75, 0.90, 0.95]
|
@@ -55,10 +55,8 @@ class Duplicates(ThresholdTest):
|
|
55
55
|
name = "duplicates"
|
56
56
|
required_inputs = ["dataset"]
|
57
57
|
default_params = {"min_threshold": 1}
|
58
|
-
|
59
|
-
|
60
|
-
"tags": ["tabular_data", "data_quality", "text_data"],
|
61
|
-
}
|
58
|
+
tasks = ["classification", "regression"]
|
59
|
+
tags = ["tabular_data", "data_quality", "text_data"]
|
62
60
|
|
63
61
|
def summary(self, results: List[ThresholdTestResult], all_passed: bool):
|
64
62
|
"""
|
@@ -51,10 +51,8 @@ class EngleGrangerCoint(Metric):
|
|
51
51
|
name = "engle_granger_coint"
|
52
52
|
required_inputs = ["dataset"]
|
53
53
|
default_params = {"threshold": 0.05}
|
54
|
-
|
55
|
-
|
56
|
-
"tags": ["time_series_data", "statistical_test", "forecasting"],
|
57
|
-
}
|
54
|
+
tasks = ["regression"]
|
55
|
+
tags = ["time_series_data", "statistical_test", "forecasting"]
|
58
56
|
|
59
57
|
def run(self):
|
60
58
|
threshold = self.params["threshold"]
|
{validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/FeatureTargetCorrelationPlot.py
RENAMED
@@ -48,10 +48,8 @@ class FeatureTargetCorrelationPlot(Metric):
|
|
48
48
|
name = "feature_target_correlation_plot"
|
49
49
|
required_inputs = ["dataset"]
|
50
50
|
default_params = {"features": None, "fig_height": 600}
|
51
|
-
|
52
|
-
|
53
|
-
"tags": ["tabular_data", "visualization", "feature_importance", "correlation"],
|
54
|
-
}
|
51
|
+
tasks = ["classification", "regression"]
|
52
|
+
tags = ["tabular_data", "visualization", "feature_importance", "correlation"]
|
55
53
|
|
56
54
|
def run(self):
|
57
55
|
fig_height = self.params["fig_height"]
|
{validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/HeatmapFeatureCorrelations.py
RENAMED
@@ -56,10 +56,8 @@ class HeatmapFeatureCorrelations(Metric):
|
|
56
56
|
name = "heatmap_feature_correlations"
|
57
57
|
required_inputs = ["dataset"]
|
58
58
|
default_params = {"declutter": None, "fontsize": None, "num_features": None}
|
59
|
-
|
60
|
-
|
61
|
-
"tags": ["tabular_data", "visualization", "correlation"],
|
62
|
-
}
|
59
|
+
tasks = ["classification", "regression"]
|
60
|
+
tags = ["tabular_data", "visualization", "correlation"]
|
63
61
|
|
64
62
|
def run(self):
|
65
63
|
features = self.params.get("features")
|