teradataml 17.20.0.6__py3-none-any.whl → 20.0.0.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of teradataml might be problematic. Click here for more details.
- teradataml/LICENSE-3RD-PARTY.pdf +0 -0
- teradataml/LICENSE.pdf +0 -0
- teradataml/README.md +238 -1
- teradataml/__init__.py +13 -3
- teradataml/_version.py +1 -1
- teradataml/analytics/Transformations.py +4 -4
- teradataml/analytics/__init__.py +0 -2
- teradataml/analytics/analytic_function_executor.py +3 -0
- teradataml/analytics/json_parser/utils.py +13 -12
- teradataml/analytics/sqle/DecisionTreePredict.py +15 -30
- teradataml/analytics/sqle/NaiveBayesPredict.py +11 -20
- teradataml/analytics/sqle/__init__.py +0 -13
- teradataml/analytics/utils.py +1 -0
- teradataml/analytics/valib.py +3 -0
- teradataml/automl/__init__.py +1628 -0
- teradataml/automl/custom_json_utils.py +1270 -0
- teradataml/automl/data_preparation.py +993 -0
- teradataml/automl/data_transformation.py +727 -0
- teradataml/automl/feature_engineering.py +1648 -0
- teradataml/automl/feature_exploration.py +547 -0
- teradataml/automl/model_evaluation.py +163 -0
- teradataml/automl/model_training.py +887 -0
- teradataml/catalog/__init__.py +0 -2
- teradataml/catalog/byom.py +49 -6
- teradataml/catalog/function_argument_mapper.py +0 -2
- teradataml/catalog/model_cataloging_utils.py +2 -1021
- teradataml/common/aed_utils.py +6 -2
- teradataml/common/constants.py +50 -58
- teradataml/common/deprecations.py +160 -0
- teradataml/common/garbagecollector.py +61 -104
- teradataml/common/messagecodes.py +27 -36
- teradataml/common/messages.py +11 -15
- teradataml/common/utils.py +205 -287
- teradataml/common/wrapper_utils.py +1 -110
- teradataml/context/context.py +150 -78
- teradataml/data/bank_churn.csv +10001 -0
- teradataml/data/bmi.csv +501 -0
- teradataml/data/docs/sqle/docs_17_10/BincodeFit.py +3 -3
- teradataml/data/docs/sqle/docs_17_10/BincodeTransform.py +6 -5
- teradataml/data/docs/sqle/docs_17_10/Fit.py +1 -1
- teradataml/data/docs/sqle/docs_17_10/OneHotEncodingTransform.py +1 -1
- teradataml/data/docs/sqle/docs_17_10/OutlierFilterTransform.py +1 -1
- teradataml/data/docs/sqle/docs_17_10/PolynomialFeaturesTransform.py +2 -2
- teradataml/data/docs/sqle/docs_17_10/RowNormalizeTransform.py +2 -1
- teradataml/data/docs/sqle/docs_17_10/ScaleTransform.py +1 -0
- teradataml/data/docs/sqle/docs_17_10/SimpleImputeTransform.py +1 -1
- teradataml/data/docs/sqle/docs_17_10/Transform.py +2 -1
- teradataml/data/docs/sqle/docs_17_20/BincodeFit.py +3 -3
- teradataml/data/docs/sqle/docs_17_20/BincodeTransform.py +6 -5
- teradataml/data/docs/sqle/docs_17_20/Fit.py +1 -1
- teradataml/data/docs/sqle/docs_17_20/GLM.py +1 -1
- teradataml/data/docs/sqle/docs_17_20/GLMPredictPerSegment.py +9 -10
- teradataml/data/docs/sqle/docs_17_20/KMeansPredict.py +3 -2
- teradataml/data/docs/sqle/docs_17_20/NaiveBayesTextClassifierPredict.py +16 -15
- teradataml/data/docs/sqle/docs_17_20/NaiveBayesTextClassifierTrainer.py +2 -2
- teradataml/data/docs/sqle/docs_17_20/NonLinearCombineFit.py +2 -2
- teradataml/data/docs/sqle/docs_17_20/NonLinearCombineTransform.py +8 -8
- teradataml/data/docs/sqle/docs_17_20/OneClassSVMPredict.py +21 -20
- teradataml/data/docs/sqle/docs_17_20/OneHotEncodingTransform.py +1 -1
- teradataml/data/docs/sqle/docs_17_20/OutlierFilterTransform.py +8 -3
- teradataml/data/docs/sqle/docs_17_20/PolynomialFeaturesTransform.py +6 -5
- teradataml/data/docs/sqle/docs_17_20/RandomProjectionTransform.py +6 -6
- teradataml/data/docs/sqle/docs_17_20/RowNormalizeTransform.py +2 -1
- teradataml/data/docs/sqle/docs_17_20/SVM.py +1 -1
- teradataml/data/docs/sqle/docs_17_20/SVMPredict.py +16 -16
- teradataml/data/docs/sqle/docs_17_20/ScaleTransform.py +1 -0
- teradataml/data/docs/sqle/docs_17_20/SimpleImputeTransform.py +3 -2
- teradataml/data/docs/sqle/docs_17_20/TDDecisionForestPredict.py +4 -4
- teradataml/data/docs/sqle/docs_17_20/TDGLMPredict.py +19 -19
- teradataml/data/docs/sqle/docs_17_20/TargetEncodingTransform.py +5 -4
- teradataml/data/docs/sqle/docs_17_20/Transform.py +2 -2
- teradataml/data/docs/sqle/docs_17_20/XGBoostPredict.py +9 -9
- teradataml/data/fish.csv +160 -0
- teradataml/data/glass_types.csv +215 -0
- teradataml/data/insurance.csv +1 -1
- teradataml/data/iris_data.csv +151 -0
- teradataml/data/jsons/sqle/17.10/TD_FunctionTransform.json +1 -0
- teradataml/data/jsons/sqle/17.10/TD_OneHotEncodingTransform.json +1 -0
- teradataml/data/jsons/sqle/17.10/TD_OutlierFilterTransform.json +1 -0
- teradataml/data/jsons/sqle/17.10/TD_PolynomialFeaturesTransform.json +1 -0
- teradataml/data/jsons/sqle/17.10/TD_RowNormalizeTransform.json +1 -0
- teradataml/data/jsons/sqle/17.10/TD_ScaleTransform.json +1 -0
- teradataml/data/jsons/sqle/17.10/TD_SimpleImputeTransform.json +1 -0
- teradataml/data/load_example_data.py +3 -0
- teradataml/data/multi_model_classification.csv +401 -0
- teradataml/data/multi_model_regression.csv +401 -0
- teradataml/data/openml_example.json +63 -0
- teradataml/data/scripts/deploy_script.py +65 -0
- teradataml/data/scripts/mapper.R +20 -0
- teradataml/data/scripts/sklearn/__init__.py +0 -0
- teradataml/data/scripts/sklearn/sklearn_fit.py +175 -0
- teradataml/data/scripts/sklearn/sklearn_fit_predict.py +135 -0
- teradataml/data/scripts/sklearn/sklearn_function.template +113 -0
- teradataml/data/scripts/sklearn/sklearn_model_selection_split.py +158 -0
- teradataml/data/scripts/sklearn/sklearn_neighbors.py +152 -0
- teradataml/data/scripts/sklearn/sklearn_score.py +128 -0
- teradataml/data/scripts/sklearn/sklearn_transform.py +179 -0
- teradataml/data/templates/open_source_ml.json +9 -0
- teradataml/data/teradataml_example.json +73 -1
- teradataml/data/test_classification.csv +101 -0
- teradataml/data/test_prediction.csv +101 -0
- teradataml/data/test_regression.csv +101 -0
- teradataml/data/train_multiclass.csv +101 -0
- teradataml/data/train_regression.csv +101 -0
- teradataml/data/train_regression_multiple_labels.csv +101 -0
- teradataml/data/wine_data.csv +1600 -0
- teradataml/dataframe/copy_to.py +79 -13
- teradataml/dataframe/data_transfer.py +8 -0
- teradataml/dataframe/dataframe.py +910 -311
- teradataml/dataframe/dataframe_utils.py +102 -5
- teradataml/dataframe/fastload.py +11 -3
- teradataml/dataframe/setop.py +15 -2
- teradataml/dataframe/sql.py +3735 -77
- teradataml/dataframe/sql_function_parameters.py +56 -5
- teradataml/dataframe/vantage_function_types.py +45 -1
- teradataml/dataframe/window.py +30 -29
- teradataml/dbutils/dbutils.py +18 -1
- teradataml/geospatial/geodataframe.py +18 -7
- teradataml/geospatial/geodataframecolumn.py +5 -0
- teradataml/hyperparameter_tuner/optimizer.py +910 -120
- teradataml/hyperparameter_tuner/utils.py +131 -37
- teradataml/lib/aed_0_1.dll +0 -0
- teradataml/lib/libaed_0_1.dylib +0 -0
- teradataml/lib/libaed_0_1.so +0 -0
- teradataml/libaed_0_1.dylib +0 -0
- teradataml/libaed_0_1.so +0 -0
- teradataml/opensource/__init__.py +1 -0
- teradataml/opensource/sklearn/__init__.py +1 -0
- teradataml/opensource/sklearn/_class.py +255 -0
- teradataml/opensource/sklearn/_sklearn_wrapper.py +1668 -0
- teradataml/opensource/sklearn/_wrapper_utils.py +268 -0
- teradataml/opensource/sklearn/constants.py +54 -0
- teradataml/options/__init__.py +3 -6
- teradataml/options/configure.py +21 -20
- teradataml/scriptmgmt/UserEnv.py +61 -5
- teradataml/scriptmgmt/lls_utils.py +135 -53
- teradataml/table_operators/Apply.py +38 -6
- teradataml/table_operators/Script.py +45 -308
- teradataml/table_operators/TableOperator.py +182 -591
- teradataml/table_operators/__init__.py +0 -1
- teradataml/table_operators/table_operator_util.py +32 -40
- teradataml/utils/validators.py +127 -3
- {teradataml-17.20.0.6.dist-info → teradataml-20.0.0.0.dist-info}/METADATA +243 -3
- {teradataml-17.20.0.6.dist-info → teradataml-20.0.0.0.dist-info}/RECORD +147 -391
- teradataml/analytics/mle/AdaBoost.py +0 -651
- teradataml/analytics/mle/AdaBoostPredict.py +0 -564
- teradataml/analytics/mle/Antiselect.py +0 -342
- teradataml/analytics/mle/Arima.py +0 -641
- teradataml/analytics/mle/ArimaPredict.py +0 -477
- teradataml/analytics/mle/Attribution.py +0 -1070
- teradataml/analytics/mle/Betweenness.py +0 -658
- teradataml/analytics/mle/Burst.py +0 -711
- teradataml/analytics/mle/CCM.py +0 -600
- teradataml/analytics/mle/CCMPrepare.py +0 -324
- teradataml/analytics/mle/CFilter.py +0 -460
- teradataml/analytics/mle/ChangePointDetection.py +0 -572
- teradataml/analytics/mle/ChangePointDetectionRT.py +0 -477
- teradataml/analytics/mle/Closeness.py +0 -737
- teradataml/analytics/mle/ConfusionMatrix.py +0 -420
- teradataml/analytics/mle/Correlation.py +0 -477
- teradataml/analytics/mle/Correlation2.py +0 -573
- teradataml/analytics/mle/CoxHazardRatio.py +0 -679
- teradataml/analytics/mle/CoxPH.py +0 -556
- teradataml/analytics/mle/CoxSurvival.py +0 -478
- teradataml/analytics/mle/CumulativeMovAvg.py +0 -363
- teradataml/analytics/mle/DTW.py +0 -623
- teradataml/analytics/mle/DWT.py +0 -564
- teradataml/analytics/mle/DWT2D.py +0 -599
- teradataml/analytics/mle/DecisionForest.py +0 -716
- teradataml/analytics/mle/DecisionForestEvaluator.py +0 -363
- teradataml/analytics/mle/DecisionForestPredict.py +0 -561
- teradataml/analytics/mle/DecisionTree.py +0 -830
- teradataml/analytics/mle/DecisionTreePredict.py +0 -528
- teradataml/analytics/mle/ExponentialMovAvg.py +0 -418
- teradataml/analytics/mle/FMeasure.py +0 -402
- teradataml/analytics/mle/FPGrowth.py +0 -734
- teradataml/analytics/mle/FrequentPaths.py +0 -695
- teradataml/analytics/mle/GLM.py +0 -558
- teradataml/analytics/mle/GLML1L2.py +0 -547
- teradataml/analytics/mle/GLML1L2Predict.py +0 -519
- teradataml/analytics/mle/GLMPredict.py +0 -529
- teradataml/analytics/mle/HMMDecoder.py +0 -945
- teradataml/analytics/mle/HMMEvaluator.py +0 -901
- teradataml/analytics/mle/HMMSupervised.py +0 -521
- teradataml/analytics/mle/HMMUnsupervised.py +0 -572
- teradataml/analytics/mle/Histogram.py +0 -561
- teradataml/analytics/mle/IDWT.py +0 -476
- teradataml/analytics/mle/IDWT2D.py +0 -493
- teradataml/analytics/mle/IdentityMatch.py +0 -763
- teradataml/analytics/mle/Interpolator.py +0 -918
- teradataml/analytics/mle/KMeans.py +0 -485
- teradataml/analytics/mle/KNN.py +0 -627
- teradataml/analytics/mle/KNNRecommender.py +0 -488
- teradataml/analytics/mle/KNNRecommenderPredict.py +0 -581
- teradataml/analytics/mle/LAR.py +0 -439
- teradataml/analytics/mle/LARPredict.py +0 -478
- teradataml/analytics/mle/LDA.py +0 -548
- teradataml/analytics/mle/LDAInference.py +0 -492
- teradataml/analytics/mle/LDATopicSummary.py +0 -464
- teradataml/analytics/mle/LevenshteinDistance.py +0 -450
- teradataml/analytics/mle/LinReg.py +0 -433
- teradataml/analytics/mle/LinRegPredict.py +0 -438
- teradataml/analytics/mle/MinHash.py +0 -544
- teradataml/analytics/mle/Modularity.py +0 -587
- teradataml/analytics/mle/NEREvaluator.py +0 -410
- teradataml/analytics/mle/NERExtractor.py +0 -595
- teradataml/analytics/mle/NERTrainer.py +0 -458
- teradataml/analytics/mle/NGrams.py +0 -570
- teradataml/analytics/mle/NPath.py +0 -634
- teradataml/analytics/mle/NTree.py +0 -549
- teradataml/analytics/mle/NaiveBayes.py +0 -462
- teradataml/analytics/mle/NaiveBayesPredict.py +0 -513
- teradataml/analytics/mle/NaiveBayesTextClassifier.py +0 -607
- teradataml/analytics/mle/NaiveBayesTextClassifier2.py +0 -531
- teradataml/analytics/mle/NaiveBayesTextClassifierPredict.py +0 -799
- teradataml/analytics/mle/NamedEntityFinder.py +0 -529
- teradataml/analytics/mle/NamedEntityFinderEvaluator.py +0 -414
- teradataml/analytics/mle/NamedEntityFinderTrainer.py +0 -396
- teradataml/analytics/mle/POSTagger.py +0 -417
- teradataml/analytics/mle/Pack.py +0 -411
- teradataml/analytics/mle/PageRank.py +0 -535
- teradataml/analytics/mle/PathAnalyzer.py +0 -426
- teradataml/analytics/mle/PathGenerator.py +0 -367
- teradataml/analytics/mle/PathStart.py +0 -464
- teradataml/analytics/mle/PathSummarizer.py +0 -470
- teradataml/analytics/mle/Pivot.py +0 -471
- teradataml/analytics/mle/ROC.py +0 -425
- teradataml/analytics/mle/RandomSample.py +0 -637
- teradataml/analytics/mle/RandomWalkSample.py +0 -490
- teradataml/analytics/mle/SAX.py +0 -779
- teradataml/analytics/mle/SVMDense.py +0 -677
- teradataml/analytics/mle/SVMDensePredict.py +0 -536
- teradataml/analytics/mle/SVMDenseSummary.py +0 -437
- teradataml/analytics/mle/SVMSparse.py +0 -557
- teradataml/analytics/mle/SVMSparsePredict.py +0 -553
- teradataml/analytics/mle/SVMSparseSummary.py +0 -435
- teradataml/analytics/mle/Sampling.py +0 -549
- teradataml/analytics/mle/Scale.py +0 -565
- teradataml/analytics/mle/ScaleByPartition.py +0 -496
- teradataml/analytics/mle/ScaleMap.py +0 -378
- teradataml/analytics/mle/ScaleSummary.py +0 -320
- teradataml/analytics/mle/SentenceExtractor.py +0 -363
- teradataml/analytics/mle/SentimentEvaluator.py +0 -432
- teradataml/analytics/mle/SentimentExtractor.py +0 -578
- teradataml/analytics/mle/SentimentTrainer.py +0 -405
- teradataml/analytics/mle/SeriesSplitter.py +0 -641
- teradataml/analytics/mle/Sessionize.py +0 -475
- teradataml/analytics/mle/SimpleMovAvg.py +0 -397
- teradataml/analytics/mle/StringSimilarity.py +0 -425
- teradataml/analytics/mle/TF.py +0 -389
- teradataml/analytics/mle/TFIDF.py +0 -504
- teradataml/analytics/mle/TextChunker.py +0 -414
- teradataml/analytics/mle/TextClassifier.py +0 -399
- teradataml/analytics/mle/TextClassifierEvaluator.py +0 -413
- teradataml/analytics/mle/TextClassifierTrainer.py +0 -565
- teradataml/analytics/mle/TextMorph.py +0 -494
- teradataml/analytics/mle/TextParser.py +0 -623
- teradataml/analytics/mle/TextTagger.py +0 -530
- teradataml/analytics/mle/TextTokenizer.py +0 -502
- teradataml/analytics/mle/UnivariateStatistics.py +0 -488
- teradataml/analytics/mle/Unpack.py +0 -526
- teradataml/analytics/mle/Unpivot.py +0 -438
- teradataml/analytics/mle/VarMax.py +0 -776
- teradataml/analytics/mle/VectorDistance.py +0 -762
- teradataml/analytics/mle/WeightedMovAvg.py +0 -400
- teradataml/analytics/mle/XGBoost.py +0 -842
- teradataml/analytics/mle/XGBoostPredict.py +0 -627
- teradataml/analytics/mle/__init__.py +0 -123
- teradataml/analytics/mle/json/adaboost_mle.json +0 -135
- teradataml/analytics/mle/json/adaboostpredict_mle.json +0 -85
- teradataml/analytics/mle/json/antiselect_mle.json +0 -34
- teradataml/analytics/mle/json/antiselect_mle_mle.json +0 -34
- teradataml/analytics/mle/json/arima_mle.json +0 -172
- teradataml/analytics/mle/json/arimapredict_mle.json +0 -52
- teradataml/analytics/mle/json/attribution_mle_mle.json +0 -143
- teradataml/analytics/mle/json/betweenness_mle.json +0 -97
- teradataml/analytics/mle/json/burst_mle.json +0 -140
- teradataml/analytics/mle/json/ccm_mle.json +0 -124
- teradataml/analytics/mle/json/ccmprepare_mle.json +0 -14
- teradataml/analytics/mle/json/cfilter_mle.json +0 -93
- teradataml/analytics/mle/json/changepointdetection_mle.json +0 -92
- teradataml/analytics/mle/json/changepointdetectionrt_mle.json +0 -78
- teradataml/analytics/mle/json/closeness_mle.json +0 -104
- teradataml/analytics/mle/json/confusionmatrix_mle.json +0 -79
- teradataml/analytics/mle/json/correlation_mle.json +0 -86
- teradataml/analytics/mle/json/correlationreduce_mle.json +0 -49
- teradataml/analytics/mle/json/coxhazardratio_mle.json +0 -89
- teradataml/analytics/mle/json/coxph_mle.json +0 -98
- teradataml/analytics/mle/json/coxsurvival_mle.json +0 -79
- teradataml/analytics/mle/json/cumulativemovavg_mle.json +0 -34
- teradataml/analytics/mle/json/decisionforest_mle.json +0 -167
- teradataml/analytics/mle/json/decisionforestevaluator_mle.json +0 -33
- teradataml/analytics/mle/json/decisionforestpredict_mle_mle.json +0 -74
- teradataml/analytics/mle/json/decisiontree_mle.json +0 -194
- teradataml/analytics/mle/json/decisiontreepredict_mle_mle.json +0 -86
- teradataml/analytics/mle/json/dtw_mle.json +0 -97
- teradataml/analytics/mle/json/dwt2d_mle.json +0 -116
- teradataml/analytics/mle/json/dwt_mle.json +0 -101
- teradataml/analytics/mle/json/exponentialmovavg_mle.json +0 -55
- teradataml/analytics/mle/json/fmeasure_mle.json +0 -58
- teradataml/analytics/mle/json/fpgrowth_mle.json +0 -159
- teradataml/analytics/mle/json/frequentpaths_mle.json +0 -129
- teradataml/analytics/mle/json/glm_mle.json +0 -111
- teradataml/analytics/mle/json/glml1l2_mle.json +0 -106
- teradataml/analytics/mle/json/glml1l2predict_mle.json +0 -57
- teradataml/analytics/mle/json/glmpredict_mle_mle.json +0 -74
- teradataml/analytics/mle/json/histogram_mle.json +0 -100
- teradataml/analytics/mle/json/hmmdecoder_mle.json +0 -192
- teradataml/analytics/mle/json/hmmevaluator_mle.json +0 -206
- teradataml/analytics/mle/json/hmmsupervised_mle.json +0 -91
- teradataml/analytics/mle/json/hmmunsupervised_mle.json +0 -114
- teradataml/analytics/mle/json/identitymatch_mle.json +0 -88
- teradataml/analytics/mle/json/idwt2d_mle.json +0 -73
- teradataml/analytics/mle/json/idwt_mle.json +0 -66
- teradataml/analytics/mle/json/interpolator_mle.json +0 -151
- teradataml/analytics/mle/json/kmeans_mle.json +0 -97
- teradataml/analytics/mle/json/knn_mle.json +0 -141
- teradataml/analytics/mle/json/knnrecommender_mle.json +0 -111
- teradataml/analytics/mle/json/knnrecommenderpredict_mle.json +0 -75
- teradataml/analytics/mle/json/lar_mle.json +0 -78
- teradataml/analytics/mle/json/larpredict_mle.json +0 -69
- teradataml/analytics/mle/json/lda_mle.json +0 -130
- teradataml/analytics/mle/json/ldainference_mle.json +0 -78
- teradataml/analytics/mle/json/ldatopicsummary_mle.json +0 -64
- teradataml/analytics/mle/json/levenshteindistance_mle.json +0 -92
- teradataml/analytics/mle/json/linreg_mle.json +0 -42
- teradataml/analytics/mle/json/linregpredict_mle.json +0 -56
- teradataml/analytics/mle/json/minhash_mle.json +0 -113
- teradataml/analytics/mle/json/modularity_mle.json +0 -91
- teradataml/analytics/mle/json/naivebayespredict_mle_mle.json +0 -85
- teradataml/analytics/mle/json/naivebayesreduce_mle.json +0 -52
- teradataml/analytics/mle/json/naivebayestextclassifierpredict_mle_mle.json +0 -147
- teradataml/analytics/mle/json/naivebayestextclassifiertrainer2_mle.json +0 -108
- teradataml/analytics/mle/json/naivebayestextclassifiertrainer_mle.json +0 -102
- teradataml/analytics/mle/json/namedentityfinder_mle.json +0 -84
- teradataml/analytics/mle/json/namedentityfinderevaluatorreduce_mle.json +0 -43
- teradataml/analytics/mle/json/namedentityfindertrainer_mle.json +0 -64
- teradataml/analytics/mle/json/nerevaluator_mle.json +0 -54
- teradataml/analytics/mle/json/nerextractor_mle.json +0 -87
- teradataml/analytics/mle/json/nertrainer_mle.json +0 -89
- teradataml/analytics/mle/json/ngrams_mle.json +0 -137
- teradataml/analytics/mle/json/ngramsplitter_mle_mle.json +0 -137
- teradataml/analytics/mle/json/npath@coprocessor_mle.json +0 -73
- teradataml/analytics/mle/json/ntree@coprocessor_mle.json +0 -123
- teradataml/analytics/mle/json/pack_mle.json +0 -58
- teradataml/analytics/mle/json/pack_mle_mle.json +0 -58
- teradataml/analytics/mle/json/pagerank_mle.json +0 -81
- teradataml/analytics/mle/json/pathanalyzer_mle.json +0 -63
- teradataml/analytics/mle/json/pathgenerator_mle.json +0 -40
- teradataml/analytics/mle/json/pathstart_mle.json +0 -62
- teradataml/analytics/mle/json/pathsummarizer_mle.json +0 -72
- teradataml/analytics/mle/json/pivoting_mle.json +0 -71
- teradataml/analytics/mle/json/postagger_mle.json +0 -51
- teradataml/analytics/mle/json/randomsample_mle.json +0 -131
- teradataml/analytics/mle/json/randomwalksample_mle.json +0 -85
- teradataml/analytics/mle/json/roc_mle.json +0 -73
- teradataml/analytics/mle/json/sampling_mle.json +0 -75
- teradataml/analytics/mle/json/sax_mle.json +0 -154
- teradataml/analytics/mle/json/scale_mle.json +0 -93
- teradataml/analytics/mle/json/scalebypartition_mle.json +0 -89
- teradataml/analytics/mle/json/scalemap_mle.json +0 -44
- teradataml/analytics/mle/json/scalesummary_mle.json +0 -14
- teradataml/analytics/mle/json/sentenceextractor_mle.json +0 -41
- teradataml/analytics/mle/json/sentimentevaluator_mle.json +0 -43
- teradataml/analytics/mle/json/sentimentextractor_mle.json +0 -100
- teradataml/analytics/mle/json/sentimenttrainer_mle.json +0 -68
- teradataml/analytics/mle/json/seriessplitter_mle.json +0 -133
- teradataml/analytics/mle/json/sessionize_mle_mle.json +0 -62
- teradataml/analytics/mle/json/simplemovavg_mle.json +0 -48
- teradataml/analytics/mle/json/stringsimilarity_mle.json +0 -50
- teradataml/analytics/mle/json/stringsimilarity_mle_mle.json +0 -50
- teradataml/analytics/mle/json/svmdense_mle.json +0 -165
- teradataml/analytics/mle/json/svmdensepredict_mle.json +0 -95
- teradataml/analytics/mle/json/svmdensesummary_mle.json +0 -58
- teradataml/analytics/mle/json/svmsparse_mle.json +0 -148
- teradataml/analytics/mle/json/svmsparsepredict_mle_mle.json +0 -103
- teradataml/analytics/mle/json/svmsparsesummary_mle.json +0 -57
- teradataml/analytics/mle/json/textchunker_mle.json +0 -40
- teradataml/analytics/mle/json/textclassifier_mle.json +0 -51
- teradataml/analytics/mle/json/textclassifierevaluator_mle.json +0 -43
- teradataml/analytics/mle/json/textclassifiertrainer_mle.json +0 -103
- teradataml/analytics/mle/json/textmorph_mle.json +0 -63
- teradataml/analytics/mle/json/textparser_mle.json +0 -166
- teradataml/analytics/mle/json/texttagger_mle.json +0 -81
- teradataml/analytics/mle/json/texttokenizer_mle.json +0 -91
- teradataml/analytics/mle/json/tf_mle.json +0 -33
- teradataml/analytics/mle/json/tfidf_mle.json +0 -34
- teradataml/analytics/mle/json/univariatestatistics_mle.json +0 -81
- teradataml/analytics/mle/json/unpack_mle.json +0 -91
- teradataml/analytics/mle/json/unpack_mle_mle.json +0 -91
- teradataml/analytics/mle/json/unpivoting_mle.json +0 -63
- teradataml/analytics/mle/json/varmax_mle.json +0 -176
- teradataml/analytics/mle/json/vectordistance_mle.json +0 -179
- teradataml/analytics/mle/json/weightedmovavg_mle.json +0 -48
- teradataml/analytics/mle/json/xgboost_mle.json +0 -178
- teradataml/analytics/mle/json/xgboostpredict_mle.json +0 -104
- teradataml/analytics/sqle/Antiselect.py +0 -321
- teradataml/analytics/sqle/Attribution.py +0 -603
- teradataml/analytics/sqle/DecisionForestPredict.py +0 -408
- teradataml/analytics/sqle/GLMPredict.py +0 -430
- teradataml/analytics/sqle/MovingAverage.py +0 -543
- teradataml/analytics/sqle/NGramSplitter.py +0 -548
- teradataml/analytics/sqle/NPath.py +0 -632
- teradataml/analytics/sqle/NaiveBayesTextClassifierPredict.py +0 -515
- teradataml/analytics/sqle/Pack.py +0 -388
- teradataml/analytics/sqle/SVMSparsePredict.py +0 -464
- teradataml/analytics/sqle/Sessionize.py +0 -390
- teradataml/analytics/sqle/StringSimilarity.py +0 -400
- teradataml/analytics/sqle/Unpack.py +0 -503
- teradataml/analytics/sqle/json/antiselect_sqle.json +0 -21
- teradataml/analytics/sqle/json/attribution_sqle.json +0 -92
- teradataml/analytics/sqle/json/decisionforestpredict_sqle.json +0 -48
- teradataml/analytics/sqle/json/glmpredict_sqle.json +0 -48
- teradataml/analytics/sqle/json/h2opredict_sqle.json +0 -63
- teradataml/analytics/sqle/json/movingaverage_sqle.json +0 -58
- teradataml/analytics/sqle/json/naivebayestextclassifierpredict_sqle.json +0 -76
- teradataml/analytics/sqle/json/ngramsplitter_sqle.json +0 -126
- teradataml/analytics/sqle/json/npath_sqle.json +0 -67
- teradataml/analytics/sqle/json/pack_sqle.json +0 -47
- teradataml/analytics/sqle/json/pmmlpredict_sqle.json +0 -55
- teradataml/analytics/sqle/json/sessionize_sqle.json +0 -43
- teradataml/analytics/sqle/json/stringsimilarity_sqle.json +0 -39
- teradataml/analytics/sqle/json/svmsparsepredict_sqle.json +0 -74
- teradataml/analytics/sqle/json/unpack_sqle.json +0 -80
- teradataml/catalog/model_cataloging.py +0 -980
- teradataml/config/mlengine_alias_definitions_v1.0 +0 -118
- teradataml/config/mlengine_alias_definitions_v1.1 +0 -127
- teradataml/config/mlengine_alias_definitions_v1.3 +0 -129
- teradataml/table_operators/sandbox_container_util.py +0 -643
- {teradataml-17.20.0.6.dist-info → teradataml-20.0.0.0.dist-info}/WHEEL +0 -0
- {teradataml-17.20.0.6.dist-info → teradataml-20.0.0.0.dist-info}/top_level.txt +0 -0
- {teradataml-17.20.0.6.dist-info → teradataml-20.0.0.0.dist-info}/zip-safe +0 -0
|
@@ -0,0 +1,547 @@
|
|
|
1
|
+
# ##################################################################
|
|
2
|
+
#
|
|
3
|
+
# Copyright 2024 Teradata. All rights reserved.
|
|
4
|
+
# TERADATA CONFIDENTIAL AND TRADE SECRET
|
|
5
|
+
#
|
|
6
|
+
# Primary Owner: Sweta Shaw
|
|
7
|
+
# Email Id: Sweta.Shaw@Teradata.com
|
|
8
|
+
#
|
|
9
|
+
# Secondary Owner: Akhil Bisht
|
|
10
|
+
# Email Id: AKHIL.BISHT@Teradata.com
|
|
11
|
+
#
|
|
12
|
+
# Version: 1.1
|
|
13
|
+
# Function Version: 1.0
|
|
14
|
+
# ##################################################################
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# Teradata libraries
|
|
18
|
+
from teradataml.dataframe.dataframe import DataFrame
|
|
19
|
+
from teradataml.dataframe.copy_to import copy_to_sql
|
|
20
|
+
from teradataml import ColumnSummary, CategoricalSummary, GetFutileColumns
|
|
21
|
+
from teradataml import OutlierFilterFit, OutlierFilterTransform
|
|
22
|
+
from teradataml.hyperparameter_tuner.utils import _ProgressBar
|
|
23
|
+
from teradataml.common.messages import Messages, MessageCodes
|
|
24
|
+
|
|
25
|
+
def _is_terminal():
|
|
26
|
+
"""
|
|
27
|
+
DESCRIPTION:
|
|
28
|
+
Common Function detects whether code is running in
|
|
29
|
+
terminal/console or IPython supported environment.
|
|
30
|
+
|
|
31
|
+
RETURNS:
|
|
32
|
+
bool.
|
|
33
|
+
"""
|
|
34
|
+
if not hasattr(_is_terminal, 'ipython_imported'):
|
|
35
|
+
try:
|
|
36
|
+
# Check IPython environment
|
|
37
|
+
__IPYTHON__
|
|
38
|
+
# Check if IPython library is installed
|
|
39
|
+
from IPython.display import display, HTML
|
|
40
|
+
_is_terminal.ipython_imported = True
|
|
41
|
+
except (NameError, ImportError):
|
|
42
|
+
# If error, then terminal
|
|
43
|
+
_is_terminal.ipython_imported = False
|
|
44
|
+
|
|
45
|
+
return not _is_terminal.ipython_imported
|
|
46
|
+
|
|
47
|
+
# # conditional import
|
|
48
|
+
if not _is_terminal():
|
|
49
|
+
from IPython.display import display, HTML
|
|
50
|
+
|
|
51
|
+
class _FeatureExplore:
|
|
52
|
+
|
|
53
|
+
def __init__(self,
|
|
54
|
+
data=None,
|
|
55
|
+
target_column=None,
|
|
56
|
+
verbose=0):
|
|
57
|
+
"""
|
|
58
|
+
DESCRIPTION:
|
|
59
|
+
Internal function initializes the data, target column for feature exploration.
|
|
60
|
+
|
|
61
|
+
PARAMETERS:
|
|
62
|
+
data:
|
|
63
|
+
Required Argument.
|
|
64
|
+
Specifies the input teradataml DataFrame for feature exploration.
|
|
65
|
+
Types: teradataml Dataframe
|
|
66
|
+
|
|
67
|
+
target_column:
|
|
68
|
+
Required Arugment.
|
|
69
|
+
Specifies the name of the target column in "data".
|
|
70
|
+
Types: str
|
|
71
|
+
|
|
72
|
+
verbose:
|
|
73
|
+
Optional Argument.
|
|
74
|
+
Specifies the detailed execution steps based on verbose level.
|
|
75
|
+
Default Value: 0
|
|
76
|
+
Permitted Values:
|
|
77
|
+
* 0: prints the progress bar and leaderboard
|
|
78
|
+
* 1: prints the execution steps of AutoML.
|
|
79
|
+
* 2: prints the intermediate data between the execution of each step of AutoML.
|
|
80
|
+
Types: int
|
|
81
|
+
"""
|
|
82
|
+
self.data = data
|
|
83
|
+
self.target_column = target_column
|
|
84
|
+
self.verbose = verbose
|
|
85
|
+
self.terminal_print = _is_terminal()
|
|
86
|
+
self.style = self._common_style()
|
|
87
|
+
|
|
88
|
+
def _exploration(self):
|
|
89
|
+
"""
|
|
90
|
+
DESCRIPTION:
|
|
91
|
+
Internal function performs following operations:
|
|
92
|
+
1. Column summary of columns of the dataset
|
|
93
|
+
2. Statistics of numeric columns of the dataset
|
|
94
|
+
3. Categorical column summary
|
|
95
|
+
4. Futile columns in the dataset
|
|
96
|
+
5. Target column distribution
|
|
97
|
+
6. Outlier Percentage in numeric columns of the dataset
|
|
98
|
+
"""
|
|
99
|
+
numerical_columns = []
|
|
100
|
+
categorical_columns= []
|
|
101
|
+
date_column_list = []
|
|
102
|
+
|
|
103
|
+
self._display_heading(phase=0)
|
|
104
|
+
self._display_msg(msg='Feature Exploration started ...')
|
|
105
|
+
|
|
106
|
+
# Detecting numerical and categorical column
|
|
107
|
+
for col, d_type in self.data._column_names_and_types:
|
|
108
|
+
if d_type in ['int','float']:
|
|
109
|
+
numerical_columns.append(col)
|
|
110
|
+
elif d_type in ['str']:
|
|
111
|
+
categorical_columns.append(col)
|
|
112
|
+
elif d_type in ['datetime.date','datetime.datetime']:
|
|
113
|
+
date_column_list.append(col)
|
|
114
|
+
|
|
115
|
+
# Display initial Count of data
|
|
116
|
+
self._display_msg(msg = '\nData Overview:', show_data=True)
|
|
117
|
+
print(f"Total Rows in the data: {self.data.shape[0]}\n"\
|
|
118
|
+
f"Total Columns in the data: {self.data.shape[1]}")
|
|
119
|
+
|
|
120
|
+
# Displaying date columns
|
|
121
|
+
if len(date_column_list)!=0:
|
|
122
|
+
self._display_msg(msg='Identified Date Columns:',
|
|
123
|
+
data=date_column_list)
|
|
124
|
+
|
|
125
|
+
# Column Summary of each feature of data
|
|
126
|
+
# such as null count, datatype, non null count
|
|
127
|
+
self._column_summary()
|
|
128
|
+
|
|
129
|
+
# Displays statistics such as mean/median/mode
|
|
130
|
+
self._statistics()
|
|
131
|
+
|
|
132
|
+
# Categorcial Summary and futile column detection
|
|
133
|
+
if len(categorical_columns) != 0:
|
|
134
|
+
categorical_obj = self._categorical_summary(categorical_columns)
|
|
135
|
+
self._futile_column(categorical_obj)
|
|
136
|
+
|
|
137
|
+
# Plot a graph of target column
|
|
138
|
+
self._target_column_details()
|
|
139
|
+
|
|
140
|
+
# Displays outlier percentage
|
|
141
|
+
outlier_method = "Tukey"
|
|
142
|
+
df = self._outlier_detection(outlier_method,numerical_columns)
|
|
143
|
+
|
|
144
|
+
def _statistics(self):
|
|
145
|
+
"""
|
|
146
|
+
DESCRIPTION:
|
|
147
|
+
Internal function displays the statistics of numeric columns such mean, mode, median.
|
|
148
|
+
"""
|
|
149
|
+
# Statistics of numerical columns
|
|
150
|
+
self._display_msg(msg='\nStatistics of Data:',
|
|
151
|
+
data=self.data.describe(),
|
|
152
|
+
show_data=True)
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
def _column_summary(self):
|
|
156
|
+
"""
|
|
157
|
+
DESCRIPTION:
|
|
158
|
+
Internal function displays the column summary of categorical column such as
|
|
159
|
+
datatype, null count, non null count, zero count.
|
|
160
|
+
"""
|
|
161
|
+
# Column Summary of all columns of dataset
|
|
162
|
+
obj = ColumnSummary(data=self.data,
|
|
163
|
+
target_columns=self.data.columns,
|
|
164
|
+
volatile=True)
|
|
165
|
+
self._display_msg(msg='\nColumn Summary:',
|
|
166
|
+
data=obj.result,
|
|
167
|
+
show_data=True)
|
|
168
|
+
|
|
169
|
+
def _categorical_summary(self,
|
|
170
|
+
categorical_columns=None):
|
|
171
|
+
"""
|
|
172
|
+
DESCRIPTION:
|
|
173
|
+
Internal function display the categorical summary of categorical column such count, distinct values.
|
|
174
|
+
|
|
175
|
+
PARAMETERS:
|
|
176
|
+
categorical_columns:
|
|
177
|
+
Required Argument.
|
|
178
|
+
Specifies the categorical columns.
|
|
179
|
+
Types: str or list of strings (str)
|
|
180
|
+
|
|
181
|
+
RETURNS:
|
|
182
|
+
Instance of ColumnSummary.
|
|
183
|
+
"""
|
|
184
|
+
self._display_msg(msg='\nCategorical Columns with their Distinct values:',
|
|
185
|
+
show_data=True)
|
|
186
|
+
|
|
187
|
+
# Categorical Summary of categorical columns
|
|
188
|
+
obj = CategoricalSummary(data=self.data,
|
|
189
|
+
target_columns=categorical_columns)
|
|
190
|
+
|
|
191
|
+
catg_obj = obj.result[obj.result['DistinctValue'] != None]
|
|
192
|
+
print("{:<25} {:<10}".format("ColumnName", "DistinctValueCount"))
|
|
193
|
+
for col in categorical_columns:
|
|
194
|
+
dst_val = catg_obj[catg_obj['ColumnName'] == col].size//3
|
|
195
|
+
print("{:<25} {:<10}".format(col, dst_val))
|
|
196
|
+
|
|
197
|
+
return obj
|
|
198
|
+
|
|
199
|
+
def _futile_column(self,
|
|
200
|
+
categorical_obj):
|
|
201
|
+
"""
|
|
202
|
+
DESCRIPTION:
|
|
203
|
+
Internal function detects the futile columns.
|
|
204
|
+
|
|
205
|
+
PARAMETERS:
|
|
206
|
+
categorical_obj:
|
|
207
|
+
Required Argument.
|
|
208
|
+
Specifies the instance of CategoricalSummary for futile column detection..
|
|
209
|
+
Types: Instance of CategoricalSummary
|
|
210
|
+
"""
|
|
211
|
+
# Futile columns detection using categorical column object
|
|
212
|
+
gfc_out = GetFutileColumns(data=self.data,
|
|
213
|
+
object=categorical_obj,
|
|
214
|
+
category_summary_column="ColumnName",
|
|
215
|
+
threshold_value=0.7)
|
|
216
|
+
|
|
217
|
+
# Extracts the futile column present in the first column
|
|
218
|
+
f_cols = [i[0] for i in gfc_out.result.itertuples()]
|
|
219
|
+
|
|
220
|
+
if len(f_cols) == 0:
|
|
221
|
+
self._display_msg(inline_msg='\nNo Futile columns found.',
|
|
222
|
+
show_data=True)
|
|
223
|
+
else:
|
|
224
|
+
self._display_msg(msg='\nFutile columns in dataset:',
|
|
225
|
+
data=gfc_out.result,
|
|
226
|
+
show_data=True)
|
|
227
|
+
|
|
228
|
+
def _target_column_details(self,
|
|
229
|
+
plot_data = None):
|
|
230
|
+
"""
|
|
231
|
+
DESCRIPTION:
|
|
232
|
+
Internal function displays the target column distribution of Target column/ Response column.
|
|
233
|
+
|
|
234
|
+
PARAMETERS:
|
|
235
|
+
plot_data:
|
|
236
|
+
Required Argument.
|
|
237
|
+
Specifies the input teradataml DataFrame for plotting distribution.
|
|
238
|
+
Types: teradataml Dataframe
|
|
239
|
+
"""
|
|
240
|
+
if self._check_visualization_libraries() and not _is_terminal():
|
|
241
|
+
import matplotlib.pyplot as plt
|
|
242
|
+
import seaborn as sns
|
|
243
|
+
if plot_data is None:
|
|
244
|
+
target_data = self.data.select([self.target_column]).to_pandas()
|
|
245
|
+
else:
|
|
246
|
+
target_data = plot_data[[self.target_column]]
|
|
247
|
+
self._display_msg(msg='\nTarget Column Distribution:',
|
|
248
|
+
show_data=True)
|
|
249
|
+
plt.figure(figsize=(8, 6))
|
|
250
|
+
# Ploting a histogram for target column
|
|
251
|
+
plt.hist(target_data, bins=10, density=True, edgecolor='black')
|
|
252
|
+
plt.xlabel(self.target_column)
|
|
253
|
+
plt.ylabel('Density')
|
|
254
|
+
plt.show()
|
|
255
|
+
|
|
256
|
+
def _check_visualization_libraries(self):
|
|
257
|
+
"""
|
|
258
|
+
DESCRIPTION:
|
|
259
|
+
Internal function Checks the availability of data visualization libraries.
|
|
260
|
+
|
|
261
|
+
RETURNS:
|
|
262
|
+
Boolean, True if data visualization libraries are available. Otherwise return False.
|
|
263
|
+
"""
|
|
264
|
+
|
|
265
|
+
# Conditional import
|
|
266
|
+
try:
|
|
267
|
+
import matplotlib.pyplot as plt
|
|
268
|
+
import seaborn as sns
|
|
269
|
+
except ImportError:
|
|
270
|
+
print("Install seaborn and matplotlib libraries to visualize the data.")
|
|
271
|
+
return False
|
|
272
|
+
|
|
273
|
+
return True
|
|
274
|
+
|
|
275
|
+
def _outlier_detection(self,
|
|
276
|
+
outlier_method,
|
|
277
|
+
column_list,
|
|
278
|
+
lower_percentile = None,
|
|
279
|
+
upper_percentile = None):
|
|
280
|
+
"""
|
|
281
|
+
DESCRIPTION:
|
|
282
|
+
Function detects the outlier in numerical column and display thier percentage.
|
|
283
|
+
|
|
284
|
+
PARAMETERS:
|
|
285
|
+
outlier_method:
|
|
286
|
+
Required Argument.
|
|
287
|
+
Specifies the outlier method required for outlier detection.
|
|
288
|
+
Types: str
|
|
289
|
+
|
|
290
|
+
column_list:
|
|
291
|
+
Required Argument.
|
|
292
|
+
Specifies the numeric columns for outlier percentage calculation.
|
|
293
|
+
Types: str or list of strings (str)
|
|
294
|
+
|
|
295
|
+
lower_percentile:
|
|
296
|
+
Optional Argument.
|
|
297
|
+
Specifies the lower percentile value for outlier detection in case of percentile method.
|
|
298
|
+
Types: float
|
|
299
|
+
|
|
300
|
+
upper_percentile:
|
|
301
|
+
Optional Argument.
|
|
302
|
+
Specifies the upper percentile value for outlier detection in case of percentile method.
|
|
303
|
+
Types: float
|
|
304
|
+
|
|
305
|
+
RETURNS:
|
|
306
|
+
Pandas DataFrame containing, column name with outlier percentage.
|
|
307
|
+
|
|
308
|
+
"""
|
|
309
|
+
# Performing outlier fit on the data for replacing outliers with NULL value
|
|
310
|
+
fit_params = {
|
|
311
|
+
"data" : self.data,
|
|
312
|
+
"target_columns" : column_list,
|
|
313
|
+
"outlier_method" : outlier_method,
|
|
314
|
+
"lower_percentile" : lower_percentile,
|
|
315
|
+
"upper_percentile" : upper_percentile,
|
|
316
|
+
"replacement_value" : 'NULL'
|
|
317
|
+
}
|
|
318
|
+
OutlierFilterFit_out = OutlierFilterFit(**fit_params)
|
|
319
|
+
transform_params = {
|
|
320
|
+
"data" : self.data,
|
|
321
|
+
"object" : OutlierFilterFit_out.result
|
|
322
|
+
}
|
|
323
|
+
# Performing outlier transformation on each column
|
|
324
|
+
OutlierTransform_obj = OutlierFilterTransform(**transform_params)
|
|
325
|
+
|
|
326
|
+
# Column summary of each column of the data
|
|
327
|
+
fit_params = {
|
|
328
|
+
"data" : OutlierTransform_obj.result,
|
|
329
|
+
"target_columns" : column_list
|
|
330
|
+
}
|
|
331
|
+
colSummary = ColumnSummary(**fit_params)
|
|
332
|
+
|
|
333
|
+
null_count_expr = colSummary.result.NullCount
|
|
334
|
+
non_null_count_expr = colSummary.result.NonNullCount
|
|
335
|
+
|
|
336
|
+
# Calculating outlier percentage
|
|
337
|
+
df = colSummary.result.assign(True,
|
|
338
|
+
ColumnName = colSummary.result.ColumnName,
|
|
339
|
+
OutlierPercentage = (null_count_expr/(non_null_count_expr+null_count_expr))*100)
|
|
340
|
+
|
|
341
|
+
# Displaying non-zero containing outlier percentage for columns
|
|
342
|
+
df = df[df['OutlierPercentage']>0]
|
|
343
|
+
if self.verbose > 0:
|
|
344
|
+
print(" "*500, end='\r')
|
|
345
|
+
if df.shape[0] > 0:
|
|
346
|
+
self._display_msg(msg='Columns with outlier percentage :-',
|
|
347
|
+
show_data=True)
|
|
348
|
+
print(df)
|
|
349
|
+
else:
|
|
350
|
+
print("\nNo outlier found!")
|
|
351
|
+
|
|
352
|
+
return df
|
|
353
|
+
|
|
354
|
+
def _common_style(self):
|
|
355
|
+
"""
|
|
356
|
+
DESCRIPTION:
|
|
357
|
+
Internal Function sets the style tag for HTML.
|
|
358
|
+
|
|
359
|
+
RETURNS:
|
|
360
|
+
string containing style tag.
|
|
361
|
+
|
|
362
|
+
"""
|
|
363
|
+
style = '''
|
|
364
|
+
<style>
|
|
365
|
+
.custom-div {
|
|
366
|
+
background-color: lightgray;
|
|
367
|
+
color: #000000;
|
|
368
|
+
padding: 10px;
|
|
369
|
+
border-radius: 8px;
|
|
370
|
+
box-shadow: 0 3px 4px rgba(0, 0, 0, 0.2);
|
|
371
|
+
margin-bottom: 10px;
|
|
372
|
+
text-align: center;
|
|
373
|
+
}
|
|
374
|
+
</style>
|
|
375
|
+
'''
|
|
376
|
+
return style
|
|
377
|
+
|
|
378
|
+
def _display_heading(self,
|
|
379
|
+
phase=0,
|
|
380
|
+
progress_bar=None):
|
|
381
|
+
"""
|
|
382
|
+
DESCRIPTION:
|
|
383
|
+
Internal function to print the phase of AutoML that
|
|
384
|
+
completed in green color.
|
|
385
|
+
|
|
386
|
+
PARAMETERS:
|
|
387
|
+
phase:
|
|
388
|
+
Optional Argument.
|
|
389
|
+
Specifies the phase of automl that completed.
|
|
390
|
+
Types: int
|
|
391
|
+
|
|
392
|
+
progress_bar:
|
|
393
|
+
Optional Argument.
|
|
394
|
+
Specifies the _ProgressBar object.
|
|
395
|
+
Types: object (_ProgressBar)
|
|
396
|
+
|
|
397
|
+
RETURNS:
|
|
398
|
+
None.
|
|
399
|
+
"""
|
|
400
|
+
# Phases of automl
|
|
401
|
+
steps = ["1. Feature Exploration ->", " 2. Feature Engineering ->",
|
|
402
|
+
" 3. Data Preparation ->", " 4. Model Training & Evaluation"]
|
|
403
|
+
# Check verbose > 0
|
|
404
|
+
if self.verbose > 0:
|
|
405
|
+
|
|
406
|
+
# Check if code is running in IPython enviornment
|
|
407
|
+
if not self.terminal_print:
|
|
408
|
+
# Highlightedt phases of automl
|
|
409
|
+
highlighted_steps = "".join(steps[:phase])
|
|
410
|
+
|
|
411
|
+
# Unhighlighted phases of automl
|
|
412
|
+
unhighlighted_steps = "".join(steps[phase:])
|
|
413
|
+
|
|
414
|
+
# Combining highlighted and unhighlighted phases
|
|
415
|
+
msg = self.style + f'<br><div class="custom-div"><h3><span style="color: green;">{highlighted_steps}</span>{unhighlighted_steps}<center></h3></center></div>'
|
|
416
|
+
# Displaying the msg
|
|
417
|
+
if progress_bar is not None:
|
|
418
|
+
progress_bar.update(msg=msg,
|
|
419
|
+
progress=False,
|
|
420
|
+
ipython=True)
|
|
421
|
+
else:
|
|
422
|
+
display(HTML(msg))
|
|
423
|
+
else:
|
|
424
|
+
try:
|
|
425
|
+
# Try to import colorama if not already imported
|
|
426
|
+
from colorama import Fore, Style, init
|
|
427
|
+
# initalize the color package
|
|
428
|
+
init()
|
|
429
|
+
|
|
430
|
+
# Highlight the phases of automl
|
|
431
|
+
highlighted_steps = "".join([Fore.GREEN + Style.BRIGHT + step + Style.RESET_ALL for step in steps[:phase]])
|
|
432
|
+
|
|
433
|
+
# Unhighlighted the phases of automl
|
|
434
|
+
unhighlighted_steps = "".join(steps[phase:])
|
|
435
|
+
|
|
436
|
+
# Combining highlighted and unhighlighted phases
|
|
437
|
+
msg = f'{highlighted_steps}{unhighlighted_steps}'
|
|
438
|
+
|
|
439
|
+
except ImportError:
|
|
440
|
+
msg = "".join(step for step in steps)
|
|
441
|
+
|
|
442
|
+
if progress_bar is not None:
|
|
443
|
+
progress_bar.update(msg=msg,
|
|
444
|
+
progress=False)
|
|
445
|
+
else:
|
|
446
|
+
print(msg)
|
|
447
|
+
|
|
448
|
+
def _display_msg(self,
|
|
449
|
+
msg=None,
|
|
450
|
+
progress_bar=None,
|
|
451
|
+
inline_msg=None,
|
|
452
|
+
data=None,
|
|
453
|
+
col_lst=None,
|
|
454
|
+
show_data=False):
|
|
455
|
+
"""
|
|
456
|
+
DESCRIPTION:
|
|
457
|
+
Internal Function to print statement according to
|
|
458
|
+
environment.
|
|
459
|
+
|
|
460
|
+
PARAMETERS:
|
|
461
|
+
msg:
|
|
462
|
+
Optional Argument.
|
|
463
|
+
Specifies the message to print.
|
|
464
|
+
Types: str
|
|
465
|
+
|
|
466
|
+
progress_bar:
|
|
467
|
+
Optional Argument.
|
|
468
|
+
Specifies the _ProgressBar object.
|
|
469
|
+
Types: object (_ProgressBar)
|
|
470
|
+
|
|
471
|
+
inline_msg:
|
|
472
|
+
Optional Argument.
|
|
473
|
+
Specifies the additional information to print.
|
|
474
|
+
Types: str
|
|
475
|
+
|
|
476
|
+
data:
|
|
477
|
+
Optional Argument.
|
|
478
|
+
Specifies the teradataml dataframe to print.
|
|
479
|
+
Types: teradataml DataFrame
|
|
480
|
+
|
|
481
|
+
col_lst:
|
|
482
|
+
Optional Argument.
|
|
483
|
+
Specifies the list of columns.
|
|
484
|
+
Types: list of str/int/data.time
|
|
485
|
+
|
|
486
|
+
show_data:
|
|
487
|
+
Optional Argument.
|
|
488
|
+
Specifies whether to print msg/data when verbose<2.
|
|
489
|
+
Default Value: False
|
|
490
|
+
Types: bool
|
|
491
|
+
|
|
492
|
+
RETURNS:
|
|
493
|
+
None.
|
|
494
|
+
|
|
495
|
+
"""
|
|
496
|
+
# If verbose level is set to 2
|
|
497
|
+
if self.verbose == 2:
|
|
498
|
+
# If a progress bar is provided
|
|
499
|
+
if progress_bar:
|
|
500
|
+
# If a message is provided
|
|
501
|
+
if msg:
|
|
502
|
+
# Update the progress bar with the message and either the column list or data (if they are not None)
|
|
503
|
+
progress_bar.update(msg=msg, data=col_lst if col_lst else data if data is not None else None,
|
|
504
|
+
progress=False,
|
|
505
|
+
ipython=not self.terminal_print)
|
|
506
|
+
# If an inline message is provided instead
|
|
507
|
+
elif inline_msg:
|
|
508
|
+
# Update the progress bar with the inline message
|
|
509
|
+
progress_bar.update(msg=inline_msg, progress=False)
|
|
510
|
+
# If no progress bar is provided
|
|
511
|
+
else:
|
|
512
|
+
# If a message is provided
|
|
513
|
+
if msg:
|
|
514
|
+
# Print the message
|
|
515
|
+
print(f"{msg}")
|
|
516
|
+
# If a column list is provided
|
|
517
|
+
if col_lst:
|
|
518
|
+
# Print the column list
|
|
519
|
+
print(col_lst)
|
|
520
|
+
# If data is provided instead
|
|
521
|
+
elif data is not None:
|
|
522
|
+
# Print the data if terminal_print is True, else display the data
|
|
523
|
+
print(data) if self.terminal_print else display(data)
|
|
524
|
+
# If an inline message is provided instead
|
|
525
|
+
elif inline_msg:
|
|
526
|
+
# Print the inline message
|
|
527
|
+
print(f'{inline_msg}')
|
|
528
|
+
# Exit the function after handling verbose level 2
|
|
529
|
+
return
|
|
530
|
+
|
|
531
|
+
# If verbose level is more than 0 and show_data is True
|
|
532
|
+
if self.verbose > 0 and show_data:
|
|
533
|
+
# If a progress bar and a message are provided
|
|
534
|
+
if progress_bar and msg:
|
|
535
|
+
# Update the progress bar with the message and data (if data is not None)
|
|
536
|
+
progress_bar.update(msg=msg, data=data if data is not None else None,
|
|
537
|
+
progress=False, ipython=not self.terminal_print)
|
|
538
|
+
# If no progress bar is provided
|
|
539
|
+
else:
|
|
540
|
+
# If a message is provided
|
|
541
|
+
if msg:
|
|
542
|
+
# Print the message if terminal_print is True, else display the message
|
|
543
|
+
print(f'{msg}') if self.terminal_print else display(HTML(f'<h4>{msg}</h4>'))
|
|
544
|
+
# If data is provided
|
|
545
|
+
if data is not None:
|
|
546
|
+
# Print the data if terminal_print is True, else display the data
|
|
547
|
+
print(data) if self.terminal_print else display(data)
|