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
|
@@ -1,651 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/python
|
|
2
|
-
# ##################################################################
|
|
3
|
-
#
|
|
4
|
-
# Copyright 2018 Teradata. All rights reserved.
|
|
5
|
-
# TERADATA CONFIDENTIAL AND TRADE SECRET
|
|
6
|
-
#
|
|
7
|
-
# Primary Owner: Rohit Khurd (rohit.khurd@teradata.com)
|
|
8
|
-
# Secondary Owner: Pankaj Purandare (pankajvinod.purandare@teradata.com)
|
|
9
|
-
#
|
|
10
|
-
# Version: 1.2
|
|
11
|
-
# Function Version: 1.31
|
|
12
|
-
#
|
|
13
|
-
# ##################################################################
|
|
14
|
-
|
|
15
|
-
import inspect
|
|
16
|
-
import time
|
|
17
|
-
from teradataml.common.wrapper_utils import AnalyticsWrapperUtils
|
|
18
|
-
from teradataml.common.utils import UtilFuncs
|
|
19
|
-
from teradataml.context.context import *
|
|
20
|
-
from teradataml.dataframe.dataframe import DataFrame
|
|
21
|
-
from teradataml.common.aed_utils import AedUtils
|
|
22
|
-
from teradataml.analytics.analytic_query_generator import AnalyticQueryGenerator
|
|
23
|
-
from teradataml.common.exceptions import TeradataMlException
|
|
24
|
-
from teradataml.common.messages import Messages
|
|
25
|
-
from teradataml.common.messagecodes import MessageCodes
|
|
26
|
-
from teradataml.common.constants import TeradataConstants
|
|
27
|
-
from teradataml.dataframe.dataframe_utils import DataFrameUtils as df_utils
|
|
28
|
-
from teradataml.options.display import display
|
|
29
|
-
|
|
30
|
-
class AdaBoost:
|
|
31
|
-
|
|
32
|
-
def __init__(self,
|
|
33
|
-
attribute_data = None,
|
|
34
|
-
attribute_name_columns = None,
|
|
35
|
-
attribute_value_column = None,
|
|
36
|
-
categorical_attribute_data = None,
|
|
37
|
-
response_data = None,
|
|
38
|
-
id_columns = None,
|
|
39
|
-
response_column = None,
|
|
40
|
-
iter_num = 20,
|
|
41
|
-
num_splits = 10,
|
|
42
|
-
approx_splits = True,
|
|
43
|
-
split_measure = "gini",
|
|
44
|
-
max_depth = 3,
|
|
45
|
-
min_node_size = 100,
|
|
46
|
-
output_response_probdist = False,
|
|
47
|
-
categorical_encoding = "graycode",
|
|
48
|
-
attribute_data_sequence_column = None,
|
|
49
|
-
response_data_sequence_column = None,
|
|
50
|
-
categorical_attribute_data_sequence_column = None):
|
|
51
|
-
"""
|
|
52
|
-
DESCRIPTION:
|
|
53
|
-
The AdaBoost function takes a training data set and a single
|
|
54
|
-
decision tree and uses adaptive boosting to produce a strong classifying model
|
|
55
|
-
that can be input to the function AdaBoostPredict.
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
PARAMETERS:
|
|
59
|
-
attribute_data:
|
|
60
|
-
Required Argument.
|
|
61
|
-
Specifies the name of the teradataml DataFrame that contains the
|
|
62
|
-
attributes and values of the data.
|
|
63
|
-
|
|
64
|
-
attribute_name_columns:
|
|
65
|
-
Required Argument.
|
|
66
|
-
Specifies the names of attribute teradataml DataFrame columns that
|
|
67
|
-
contain the data attributes.
|
|
68
|
-
Types: str OR list of Strings (str)
|
|
69
|
-
|
|
70
|
-
attribute_value_column:
|
|
71
|
-
Required Argument.
|
|
72
|
-
Specifies the names of attribute teradataml DataFrame columns that
|
|
73
|
-
contain the data values.
|
|
74
|
-
Types: str
|
|
75
|
-
|
|
76
|
-
categorical_attribute_data:
|
|
77
|
-
Optional Argument.
|
|
78
|
-
Specifies the name of the teradataml DataFrame that contains the
|
|
79
|
-
names of the categorical attributes.
|
|
80
|
-
|
|
81
|
-
response_data:
|
|
82
|
-
Required Argument.
|
|
83
|
-
Specifies the name of the teradataml DataFrame that contains the
|
|
84
|
-
responses (labels) of the data.
|
|
85
|
-
|
|
86
|
-
id_columns:
|
|
87
|
-
Required Argument.
|
|
88
|
-
Specifies the names of the columns in the response and attribute
|
|
89
|
-
teradataml DataFrames that specify the identifier of the instance.
|
|
90
|
-
Types: str OR list of Strings (str)
|
|
91
|
-
|
|
92
|
-
response_column:
|
|
93
|
-
Required Argument.
|
|
94
|
-
Specifies the name of the response teradataml DataFrame column that
|
|
95
|
-
contains the responses (labels) of the data.
|
|
96
|
-
Types: str
|
|
97
|
-
|
|
98
|
-
iter_num:
|
|
99
|
-
Optional Argument.
|
|
100
|
-
Specifies the number of iterations to boost the weak classifiers,
|
|
101
|
-
which is also the number of weak classifiers in the ensemble (T). The
|
|
102
|
-
iterations must be an int in the range [2, 200].
|
|
103
|
-
Default Value: 20
|
|
104
|
-
Types: int
|
|
105
|
-
|
|
106
|
-
num_splits:
|
|
107
|
-
Optional Argument.
|
|
108
|
-
Specifies the number of splits to try for each attribute in the node
|
|
109
|
-
splitting.
|
|
110
|
-
Default Value: 10
|
|
111
|
-
Types: int
|
|
112
|
-
|
|
113
|
-
approx_splits:
|
|
114
|
-
Optional Argument.
|
|
115
|
-
Specifies whether to use approximate percentiles.
|
|
116
|
-
Default Value: True
|
|
117
|
-
Types: bool
|
|
118
|
-
|
|
119
|
-
split_measure:
|
|
120
|
-
Optional Argument.
|
|
121
|
-
Specifies the type of measure to use in node splitting.
|
|
122
|
-
Default Value: "gini"
|
|
123
|
-
Permitted Values: GINI, ENTROPY
|
|
124
|
-
Types: str
|
|
125
|
-
|
|
126
|
-
max_depth:
|
|
127
|
-
Optional Argument.
|
|
128
|
-
Specifies the maximum depth of the tree. The max_depth must be an int in
|
|
129
|
-
the range [1, 10].
|
|
130
|
-
Default Value: 3
|
|
131
|
-
Types: int
|
|
132
|
-
|
|
133
|
-
min_node_size:
|
|
134
|
-
Optional Argument.
|
|
135
|
-
Specifies the minimum size of any particular node within each
|
|
136
|
-
decision tree.
|
|
137
|
-
Default Value: 100
|
|
138
|
-
Types: int
|
|
139
|
-
|
|
140
|
-
output_response_probdist:
|
|
141
|
-
Optional Argument.
|
|
142
|
-
Specifies the value for the switch to enable/disable output of
|
|
143
|
-
probability distribution for output labels.
|
|
144
|
-
Default Value: False
|
|
145
|
-
Types: bool
|
|
146
|
-
|
|
147
|
-
categorical_encoding:
|
|
148
|
-
Optional Argument.
|
|
149
|
-
Specifies which encoding method is used for categorical variables.
|
|
150
|
-
Note: categorical_encoding argument support is only available
|
|
151
|
-
when teradataml is connected to Vantage 1.1 or later.
|
|
152
|
-
Default Value: "graycode"
|
|
153
|
-
Permitted Values: graycode, hashing
|
|
154
|
-
Types: str
|
|
155
|
-
|
|
156
|
-
attribute_data_sequence_column:
|
|
157
|
-
Optional Argument.
|
|
158
|
-
Specifies the list of column(s) that uniquely identifies each row of
|
|
159
|
-
the input argument "attribute_data". The argument is used to ensure
|
|
160
|
-
deterministic results for functions which produce results that vary
|
|
161
|
-
from run to run.
|
|
162
|
-
Types: str OR list of Strings (str)
|
|
163
|
-
|
|
164
|
-
response_data_sequence_column:
|
|
165
|
-
Optional Argument.
|
|
166
|
-
Specifies the list of column(s) that uniquely identifies each row of
|
|
167
|
-
the input argument "response_data". The argument is used to ensure
|
|
168
|
-
deterministic results for functions which produce results that vary
|
|
169
|
-
from run to run.
|
|
170
|
-
Types: str OR list of Strings (str)
|
|
171
|
-
|
|
172
|
-
categorical_attribute_data_sequence_column:
|
|
173
|
-
Optional Argument.
|
|
174
|
-
Specifies the list of column(s) that uniquely identifies each row of
|
|
175
|
-
the input argument "categorical_attribute_data". The argument is used
|
|
176
|
-
to ensure deterministic results for functions which produce results
|
|
177
|
-
that vary from run to run.
|
|
178
|
-
Types: str OR list of Strings (str)
|
|
179
|
-
|
|
180
|
-
RETURNS:
|
|
181
|
-
Instance of AdaBoost.
|
|
182
|
-
Output teradataml DataFrames can be accessed using attribute
|
|
183
|
-
references, such as AdaBoostObj.<attribute_name>.
|
|
184
|
-
Output teradataml DataFrame attribute names are:
|
|
185
|
-
1. model_table
|
|
186
|
-
2. output
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
RAISES:
|
|
190
|
-
TeradataMlException
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
EXAMPLES:
|
|
194
|
-
# Load example data.
|
|
195
|
-
load_example_data("adaboost", ["housing_train", "housing_cat", "housing_train_response", "iris_attribute_train", "iris_response_train"])
|
|
196
|
-
|
|
197
|
-
# Create teradataml DataFrame objects.
|
|
198
|
-
housing_train = DataFrame.from_table("housing_train")
|
|
199
|
-
housing_cat = DataFrame.from_table("housing_cat")
|
|
200
|
-
housing_train_response = DataFrame.from_table("housing_train_response")
|
|
201
|
-
iris_attribute_train = DataFrame.from_table("iris_attribute_train")
|
|
202
|
-
iris_response_train = DataFrame.from_table("iris_response_train")
|
|
203
|
-
|
|
204
|
-
# Example 1 -
|
|
205
|
-
# This example uses home sales data to create a model that predicts home style when input to AdaBoostPredict.
|
|
206
|
-
|
|
207
|
-
# Input description:
|
|
208
|
-
# housing_train (attribute_data) : teradataml DataFrame containing real estate sales data.
|
|
209
|
-
# There are six numerical predictors and six categorical predictors.
|
|
210
|
-
# The response variable is 'homestyle'.
|
|
211
|
-
# housing_cat (categorical_attribute_data) : teradataml DataFrame that lists all the categorical predictors.
|
|
212
|
-
# housing_response (response_data) : teradataml DataFrame that lists the responses for each instance
|
|
213
|
-
# in 'attribute_data' as specified by 'id_columms'.
|
|
214
|
-
|
|
215
|
-
# The attribute data (housing_train) needs to have the data in the sparse form where each attribute
|
|
216
|
-
# and its corresponding value are specified in an individual row.
|
|
217
|
-
unpivot_out = Unpivot(data=housing_train,
|
|
218
|
-
unpivot = ["price", "lotsize", "bedrooms", "bathrms", "stories","driveway", "recroom", "fullbase", "gashw", "airco", "garagepl", "prefarea"],
|
|
219
|
-
accumulate = ["sn"])
|
|
220
|
-
|
|
221
|
-
AdaBoost_out_1 = AdaBoost(attribute_data = unpivot_out.result,
|
|
222
|
-
attribute_name_columns = ["attribute"],
|
|
223
|
-
attribute_value_column = "value_col",
|
|
224
|
-
categorical_attribute_data = housing_cat,
|
|
225
|
-
response_data = housing_train_response,
|
|
226
|
-
id_columns = ["sn"],
|
|
227
|
-
response_column = "response",
|
|
228
|
-
iter_num = 2,
|
|
229
|
-
num_splits = 10,
|
|
230
|
-
max_depth = 3,
|
|
231
|
-
min_node_size = 100
|
|
232
|
-
)
|
|
233
|
-
|
|
234
|
-
# Print the results
|
|
235
|
-
print(AdaBoost_out_1.output)
|
|
236
|
-
print(AdaBoost_out_1.model_table)
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
# Example 2 -
|
|
240
|
-
# This example uses the iris flower dataset to create a model that predicts the species when input to AdaBoostPredict.
|
|
241
|
-
|
|
242
|
-
# Input description:
|
|
243
|
-
# iris_attribute_train (attribute_data) : teradataml DataFrame containing the iris flower dataset in the sparse format.
|
|
244
|
-
# iris_response_train (response_data) : teradataml DataFrame specifying the response variable for each instance
|
|
245
|
-
# in 'attribute_data' as specified by 'id_columms'.
|
|
246
|
-
|
|
247
|
-
AdaBoost_out_2 = AdaBoost(attribute_data = iris_attribute_train,
|
|
248
|
-
attribute_name_columns = ["attribute"],
|
|
249
|
-
attribute_value_column = "attrvalue",
|
|
250
|
-
response_data = iris_response_train,
|
|
251
|
-
id_columns = ["pid"],
|
|
252
|
-
response_column = "response",
|
|
253
|
-
iter_num = 3,
|
|
254
|
-
num_splits = 10,
|
|
255
|
-
approx_splits = False,
|
|
256
|
-
max_depth = 3,
|
|
257
|
-
min_node_size = 5,
|
|
258
|
-
output_response_probdist = True
|
|
259
|
-
)
|
|
260
|
-
|
|
261
|
-
# Print the results
|
|
262
|
-
print(AdaBoost_out_2.output)
|
|
263
|
-
print(AdaBoost_out_2.model_table)
|
|
264
|
-
|
|
265
|
-
"""
|
|
266
|
-
|
|
267
|
-
# Start the timer to get the build time
|
|
268
|
-
_start_time = time.time()
|
|
269
|
-
|
|
270
|
-
self.attribute_data = attribute_data
|
|
271
|
-
self.attribute_name_columns = attribute_name_columns
|
|
272
|
-
self.attribute_value_column = attribute_value_column
|
|
273
|
-
self.categorical_attribute_data = categorical_attribute_data
|
|
274
|
-
self.response_data = response_data
|
|
275
|
-
self.id_columns = id_columns
|
|
276
|
-
self.response_column = response_column
|
|
277
|
-
self.iter_num = iter_num
|
|
278
|
-
self.num_splits = num_splits
|
|
279
|
-
self.approx_splits = approx_splits
|
|
280
|
-
self.split_measure = split_measure
|
|
281
|
-
self.max_depth = max_depth
|
|
282
|
-
self.min_node_size = min_node_size
|
|
283
|
-
self.output_response_probdist = output_response_probdist
|
|
284
|
-
self.categorical_encoding = categorical_encoding
|
|
285
|
-
self.attribute_data_sequence_column = attribute_data_sequence_column
|
|
286
|
-
self.response_data_sequence_column = response_data_sequence_column
|
|
287
|
-
self.categorical_attribute_data_sequence_column = categorical_attribute_data_sequence_column
|
|
288
|
-
|
|
289
|
-
# Create TeradataPyWrapperUtils instance which contains validation functions.
|
|
290
|
-
self.__awu = AnalyticsWrapperUtils()
|
|
291
|
-
self.__aed_utils = AedUtils()
|
|
292
|
-
|
|
293
|
-
# Create argument information matrix to do parameter checking
|
|
294
|
-
self.__arg_info_matrix = []
|
|
295
|
-
self.__arg_info_matrix.append(["attribute_data", self.attribute_data, False, (DataFrame)])
|
|
296
|
-
self.__arg_info_matrix.append(["attribute_name_columns", self.attribute_name_columns, False, (str,list)])
|
|
297
|
-
self.__arg_info_matrix.append(["attribute_value_column", self.attribute_value_column, False, (str)])
|
|
298
|
-
self.__arg_info_matrix.append(["categorical_attribute_data", self.categorical_attribute_data, True, (DataFrame)])
|
|
299
|
-
self.__arg_info_matrix.append(["response_data", self.response_data, False, (DataFrame)])
|
|
300
|
-
self.__arg_info_matrix.append(["id_columns", self.id_columns, False, (str,list)])
|
|
301
|
-
self.__arg_info_matrix.append(["response_column", self.response_column, False, (str)])
|
|
302
|
-
self.__arg_info_matrix.append(["iter_num", self.iter_num, True, (int)])
|
|
303
|
-
self.__arg_info_matrix.append(["num_splits", self.num_splits, True, (int)])
|
|
304
|
-
self.__arg_info_matrix.append(["approx_splits", self.approx_splits, True, (bool)])
|
|
305
|
-
self.__arg_info_matrix.append(["split_measure", self.split_measure, True, (str)])
|
|
306
|
-
self.__arg_info_matrix.append(["max_depth", self.max_depth, True, (int)])
|
|
307
|
-
self.__arg_info_matrix.append(["min_node_size", self.min_node_size, True, (int)])
|
|
308
|
-
self.__arg_info_matrix.append(["output_response_probdist", self.output_response_probdist, True, (bool)])
|
|
309
|
-
self.__arg_info_matrix.append(["categorical_encoding", self.categorical_encoding, True, (str)])
|
|
310
|
-
self.__arg_info_matrix.append(["attribute_data_sequence_column", self.attribute_data_sequence_column, True, (str,list)])
|
|
311
|
-
self.__arg_info_matrix.append(["response_data_sequence_column", self.response_data_sequence_column, True, (str,list)])
|
|
312
|
-
self.__arg_info_matrix.append(["categorical_attribute_data_sequence_column", self.categorical_attribute_data_sequence_column, True, (str,list)])
|
|
313
|
-
|
|
314
|
-
if inspect.stack()[1][3] != '_from_model_catalog':
|
|
315
|
-
# Perform the function validations
|
|
316
|
-
self.__validate()
|
|
317
|
-
# Generate the ML query
|
|
318
|
-
self.__form_tdml_query()
|
|
319
|
-
# Execute ML query
|
|
320
|
-
self.__execute()
|
|
321
|
-
# Get the prediction type
|
|
322
|
-
self._prediction_type = self.__awu._get_function_prediction_type(self)
|
|
323
|
-
|
|
324
|
-
# End the timer to get the build time
|
|
325
|
-
_end_time = time.time()
|
|
326
|
-
|
|
327
|
-
# Calculate the build time
|
|
328
|
-
self._build_time = (int)(_end_time - _start_time)
|
|
329
|
-
|
|
330
|
-
def __validate(self):
|
|
331
|
-
"""
|
|
332
|
-
Function to validate sqlmr function arguments, which verifies missing
|
|
333
|
-
arguments, input argument and table types. Also processes the
|
|
334
|
-
argument values.
|
|
335
|
-
"""
|
|
336
|
-
|
|
337
|
-
# Make sure that a non-NULL value has been supplied for all mandatory arguments
|
|
338
|
-
self.__awu._validate_missing_required_arguments(self.__arg_info_matrix)
|
|
339
|
-
|
|
340
|
-
# Make sure that a non-NULL value has been supplied correct type of argument
|
|
341
|
-
self.__awu._validate_argument_types(self.__arg_info_matrix)
|
|
342
|
-
|
|
343
|
-
# Check to make sure input table types are strings or data frame objects or of valid type.
|
|
344
|
-
self.__awu._validate_input_table_datatype(self.attribute_data, "attribute_data", None)
|
|
345
|
-
self.__awu._validate_input_table_datatype(self.response_data, "response_data", None)
|
|
346
|
-
self.__awu._validate_input_table_datatype(self.categorical_attribute_data, "categorical_attribute_data", None)
|
|
347
|
-
|
|
348
|
-
# Check for permitted values
|
|
349
|
-
split_measure_permitted_values = ["GINI", "ENTROPY"]
|
|
350
|
-
self.__awu._validate_permitted_values(self.split_measure, split_measure_permitted_values, "split_measure")
|
|
351
|
-
|
|
352
|
-
categorical_encoding_permitted_values = ["GRAYCODE", "HASHING"]
|
|
353
|
-
self.__awu._validate_permitted_values(self.categorical_encoding, categorical_encoding_permitted_values, "categorical_encoding")
|
|
354
|
-
|
|
355
|
-
# Check whether the input columns passed to the argument are not empty.
|
|
356
|
-
# Also check whether the input columns passed to the argument valid or not.
|
|
357
|
-
self.__awu._validate_input_columns_not_empty(self.id_columns, "id_columns")
|
|
358
|
-
self.__awu._validate_dataframe_has_argument_columns(self.id_columns, "id_columns", self.attribute_data, "attribute_data", False)
|
|
359
|
-
|
|
360
|
-
self.__awu._validate_input_columns_not_empty(self.attribute_name_columns, "attribute_name_columns")
|
|
361
|
-
self.__awu._validate_dataframe_has_argument_columns(self.attribute_name_columns, "attribute_name_columns", self.attribute_data, "attribute_data", False)
|
|
362
|
-
|
|
363
|
-
self.__awu._validate_input_columns_not_empty(self.attribute_value_column, "attribute_value_column")
|
|
364
|
-
self.__awu._validate_dataframe_has_argument_columns(self.attribute_value_column, "attribute_value_column", self.attribute_data, "attribute_data", False)
|
|
365
|
-
|
|
366
|
-
self.__awu._validate_input_columns_not_empty(self.response_column, "response_column")
|
|
367
|
-
self.__awu._validate_dataframe_has_argument_columns(self.response_column, "response_column", self.response_data, "response_data", False)
|
|
368
|
-
|
|
369
|
-
self.__awu._validate_input_columns_not_empty(self.attribute_data_sequence_column, "attribute_data_sequence_column")
|
|
370
|
-
self.__awu._validate_dataframe_has_argument_columns(self.attribute_data_sequence_column, "attribute_data_sequence_column", self.attribute_data, "attribute_data", False)
|
|
371
|
-
|
|
372
|
-
self.__awu._validate_input_columns_not_empty(self.response_data_sequence_column, "response_data_sequence_column")
|
|
373
|
-
self.__awu._validate_dataframe_has_argument_columns(self.response_data_sequence_column, "response_data_sequence_column", self.response_data, "response_data", False)
|
|
374
|
-
|
|
375
|
-
self.__awu._validate_input_columns_not_empty(self.categorical_attribute_data_sequence_column, "categorical_attribute_data_sequence_column")
|
|
376
|
-
self.__awu._validate_dataframe_has_argument_columns(self.categorical_attribute_data_sequence_column, "categorical_attribute_data_sequence_column", self.categorical_attribute_data, "categorical_attribute_data", False)
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
def __form_tdml_query(self):
|
|
380
|
-
"""
|
|
381
|
-
Function to generate the analytical function queries. The function defines
|
|
382
|
-
variables and list of arguments required to form the query.
|
|
383
|
-
"""
|
|
384
|
-
# Generate temp table names for output table parameters if any.
|
|
385
|
-
self.__model_table_temp_tablename = UtilFuncs._generate_temp_table_name(prefix="td_adaboost0", use_default_database=True, gc_on_quit=True, quote=False, table_type=TeradataConstants.TERADATA_TABLE)
|
|
386
|
-
|
|
387
|
-
# Output table arguments list
|
|
388
|
-
self.__func_output_args_sql_names = ["OutputTable"]
|
|
389
|
-
self.__func_output_args = [self.__model_table_temp_tablename]
|
|
390
|
-
|
|
391
|
-
# Model Cataloging related attributes.
|
|
392
|
-
self._sql_specific_attributes = {}
|
|
393
|
-
self._sql_formula_attribute_mapper = {}
|
|
394
|
-
self._target_column = None
|
|
395
|
-
self._algorithm_name = None
|
|
396
|
-
|
|
397
|
-
# Generate lists for rest of the function arguments
|
|
398
|
-
self.__func_other_arg_sql_names = []
|
|
399
|
-
self.__func_other_args = []
|
|
400
|
-
self.__func_other_arg_json_datatypes = []
|
|
401
|
-
|
|
402
|
-
self.__func_other_arg_sql_names.append("IdColumns")
|
|
403
|
-
self.__func_other_args.append(UtilFuncs._teradata_collapse_arglist(UtilFuncs._teradata_quote_arg(self.id_columns, "\""), "'"))
|
|
404
|
-
self.__func_other_arg_json_datatypes.append("COLUMN_NAMES")
|
|
405
|
-
|
|
406
|
-
self.__func_other_arg_sql_names.append("AttributeNameColumns")
|
|
407
|
-
self.__func_other_args.append(UtilFuncs._teradata_collapse_arglist(UtilFuncs._teradata_quote_arg(self.attribute_name_columns, "\""), "'"))
|
|
408
|
-
self.__func_other_arg_json_datatypes.append("COLUMN_NAMES")
|
|
409
|
-
|
|
410
|
-
self.__func_other_arg_sql_names.append("AttributeValueColumn")
|
|
411
|
-
self.__func_other_args.append(UtilFuncs._teradata_collapse_arglist(UtilFuncs._teradata_quote_arg(self.attribute_value_column, "\""), "'"))
|
|
412
|
-
self.__func_other_arg_json_datatypes.append("COLUMN_NAMES")
|
|
413
|
-
|
|
414
|
-
self.__func_other_arg_sql_names.append("ResponseColumn")
|
|
415
|
-
self.__func_other_args.append(UtilFuncs._teradata_collapse_arglist(UtilFuncs._teradata_quote_arg(self.response_column, "\""), "'"))
|
|
416
|
-
self.__func_other_arg_json_datatypes.append("COLUMN_NAMES")
|
|
417
|
-
|
|
418
|
-
if self.iter_num is not None and self.iter_num != 20:
|
|
419
|
-
self.__func_other_arg_sql_names.append("IterNum")
|
|
420
|
-
self.__func_other_args.append(UtilFuncs._teradata_collapse_arglist(self.iter_num, "'"))
|
|
421
|
-
self.__func_other_arg_json_datatypes.append("INTEGER")
|
|
422
|
-
|
|
423
|
-
if self.num_splits is not None and self.num_splits != 10:
|
|
424
|
-
self.__func_other_arg_sql_names.append("NumSplits")
|
|
425
|
-
self.__func_other_args.append(UtilFuncs._teradata_collapse_arglist(self.num_splits, "'"))
|
|
426
|
-
self.__func_other_arg_json_datatypes.append("INTEGER")
|
|
427
|
-
|
|
428
|
-
if self.approx_splits is not None and self.approx_splits != True:
|
|
429
|
-
self.__func_other_arg_sql_names.append("ApproxSplits")
|
|
430
|
-
self.__func_other_args.append(UtilFuncs._teradata_collapse_arglist(self.approx_splits, "'"))
|
|
431
|
-
self.__func_other_arg_json_datatypes.append("BOOLEAN")
|
|
432
|
-
|
|
433
|
-
if self.split_measure is not None and self.split_measure != "gini":
|
|
434
|
-
self.__func_other_arg_sql_names.append("SplitMeasure")
|
|
435
|
-
self.__func_other_args.append(UtilFuncs._teradata_collapse_arglist(self.split_measure, "'"))
|
|
436
|
-
self.__func_other_arg_json_datatypes.append("STRING")
|
|
437
|
-
|
|
438
|
-
if self.max_depth is not None and self.max_depth != 3:
|
|
439
|
-
self.__func_other_arg_sql_names.append("maxDepth")
|
|
440
|
-
self.__func_other_args.append(UtilFuncs._teradata_collapse_arglist(self.max_depth, "'"))
|
|
441
|
-
self.__func_other_arg_json_datatypes.append("INTEGER")
|
|
442
|
-
|
|
443
|
-
if self.min_node_size is not None and self.min_node_size != 100:
|
|
444
|
-
self.__func_other_arg_sql_names.append("MinNodeSize")
|
|
445
|
-
self.__func_other_args.append(UtilFuncs._teradata_collapse_arglist(self.min_node_size, "'"))
|
|
446
|
-
self.__func_other_arg_json_datatypes.append("INTEGER")
|
|
447
|
-
|
|
448
|
-
if self.output_response_probdist is not None and self.output_response_probdist != False:
|
|
449
|
-
self.__func_other_arg_sql_names.append("OutputResponseProbDist")
|
|
450
|
-
self.__func_other_args.append(UtilFuncs._teradata_collapse_arglist(self.output_response_probdist, "'"))
|
|
451
|
-
self.__func_other_arg_json_datatypes.append("BOOLEAN")
|
|
452
|
-
|
|
453
|
-
if self.categorical_encoding is not None and self.categorical_encoding != "graycode":
|
|
454
|
-
self.__func_other_arg_sql_names.append("CategoricalEncoding")
|
|
455
|
-
self.__func_other_args.append(UtilFuncs._teradata_collapse_arglist(self.categorical_encoding, "'"))
|
|
456
|
-
self.__func_other_arg_json_datatypes.append("STRING")
|
|
457
|
-
|
|
458
|
-
# Generate lists for rest of the function arguments
|
|
459
|
-
sequence_input_by_list = []
|
|
460
|
-
if self.attribute_data_sequence_column is not None:
|
|
461
|
-
sequence_input_by_list.append("AttributeTable:" + UtilFuncs._teradata_collapse_arglist(self.attribute_data_sequence_column, ""))
|
|
462
|
-
|
|
463
|
-
if self.response_data_sequence_column is not None:
|
|
464
|
-
sequence_input_by_list.append("ResponseTable:" + UtilFuncs._teradata_collapse_arglist(self.response_data_sequence_column, ""))
|
|
465
|
-
|
|
466
|
-
if self.categorical_attribute_data_sequence_column is not None:
|
|
467
|
-
sequence_input_by_list.append("CategoricalAttributeTable:" + UtilFuncs._teradata_collapse_arglist(self.categorical_attribute_data_sequence_column, ""))
|
|
468
|
-
|
|
469
|
-
if len(sequence_input_by_list) > 0:
|
|
470
|
-
self.__func_other_arg_sql_names.append("SequenceInputBy")
|
|
471
|
-
sequence_input_by_arg_value = UtilFuncs._teradata_collapse_arglist(sequence_input_by_list, "'")
|
|
472
|
-
self.__func_other_args.append(sequence_input_by_arg_value)
|
|
473
|
-
self.__func_other_arg_json_datatypes.append("STRING")
|
|
474
|
-
self._sql_specific_attributes["SequenceInputBy"] = sequence_input_by_arg_value
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
# Declare empty lists to hold input table information.
|
|
478
|
-
self.__func_input_arg_sql_names = []
|
|
479
|
-
self.__func_input_table_view_query = []
|
|
480
|
-
self.__func_input_dataframe_type = []
|
|
481
|
-
self.__func_input_distribution = []
|
|
482
|
-
self.__func_input_partition_by_cols = []
|
|
483
|
-
self.__func_input_order_by_cols = []
|
|
484
|
-
|
|
485
|
-
# Process attribute_data
|
|
486
|
-
self.__table_ref = self.__awu._teradata_on_clause_from_dataframe(self.attribute_data, False)
|
|
487
|
-
self.__func_input_distribution.append("NONE")
|
|
488
|
-
self.__func_input_arg_sql_names.append("AttributeTable")
|
|
489
|
-
self.__func_input_table_view_query.append(self.__table_ref["ref"])
|
|
490
|
-
self.__func_input_dataframe_type.append(self.__table_ref["ref_type"])
|
|
491
|
-
self.__func_input_partition_by_cols.append("NA_character_")
|
|
492
|
-
self.__func_input_order_by_cols.append("NA_character_")
|
|
493
|
-
|
|
494
|
-
# Process response_data
|
|
495
|
-
self.__table_ref = self.__awu._teradata_on_clause_from_dataframe(self.response_data, False)
|
|
496
|
-
self.__func_input_distribution.append("NONE")
|
|
497
|
-
self.__func_input_arg_sql_names.append("ResponseTable")
|
|
498
|
-
self.__func_input_table_view_query.append(self.__table_ref["ref"])
|
|
499
|
-
self.__func_input_dataframe_type.append(self.__table_ref["ref_type"])
|
|
500
|
-
self.__func_input_partition_by_cols.append("NA_character_")
|
|
501
|
-
self.__func_input_order_by_cols.append("NA_character_")
|
|
502
|
-
|
|
503
|
-
# Process categorical_attribute_data
|
|
504
|
-
if self.categorical_attribute_data is not None:
|
|
505
|
-
self.__table_ref = self.__awu._teradata_on_clause_from_dataframe(self.categorical_attribute_data, False)
|
|
506
|
-
self.__func_input_distribution.append("NONE")
|
|
507
|
-
self.__func_input_arg_sql_names.append("CategoricalAttributeTable")
|
|
508
|
-
self.__func_input_table_view_query.append(self.__table_ref["ref"])
|
|
509
|
-
self.__func_input_dataframe_type.append(self.__table_ref["ref_type"])
|
|
510
|
-
self.__func_input_partition_by_cols.append("NA_character_")
|
|
511
|
-
self.__func_input_order_by_cols.append("NA_character_")
|
|
512
|
-
|
|
513
|
-
function_name = "AdaBoost"
|
|
514
|
-
# Create instance to generate SQLMR.
|
|
515
|
-
self.__aqg_obj = AnalyticQueryGenerator(function_name,
|
|
516
|
-
self.__func_input_arg_sql_names,
|
|
517
|
-
self.__func_input_table_view_query,
|
|
518
|
-
self.__func_input_dataframe_type,
|
|
519
|
-
self.__func_input_distribution,
|
|
520
|
-
self.__func_input_partition_by_cols,
|
|
521
|
-
self.__func_input_order_by_cols,
|
|
522
|
-
self.__func_other_arg_sql_names,
|
|
523
|
-
self.__func_other_args,
|
|
524
|
-
self.__func_other_arg_json_datatypes,
|
|
525
|
-
self.__func_output_args_sql_names,
|
|
526
|
-
self.__func_output_args,
|
|
527
|
-
engine="ENGINE_ML")
|
|
528
|
-
# Invoke call to SQL-MR generation.
|
|
529
|
-
self.sqlmr_query = self.__aqg_obj._gen_sqlmr_select_stmt_sql()
|
|
530
|
-
|
|
531
|
-
# Print SQL-MR query if requested to do so.
|
|
532
|
-
if display.print_sqlmr_query:
|
|
533
|
-
print(self.sqlmr_query)
|
|
534
|
-
|
|
535
|
-
# Set the algorithm name for Model Cataloging.
|
|
536
|
-
self._algorithm_name = self.__aqg_obj._get_alias_name_for_function(function_name)
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
def __execute(self):
|
|
540
|
-
"""
|
|
541
|
-
Function to execute SQL-MR queries.
|
|
542
|
-
Create DataFrames for the required SQL-MR outputs.
|
|
543
|
-
"""
|
|
544
|
-
# Generate STDOUT table name and add it to the output table list.
|
|
545
|
-
sqlmr_stdout_temp_tablename = UtilFuncs._generate_temp_table_name(prefix="td_sqlmr_out_", use_default_database=True, gc_on_quit=True, quote=False, table_type=TeradataConstants.TERADATA_TABLE)
|
|
546
|
-
try:
|
|
547
|
-
# Generate the output.
|
|
548
|
-
UtilFuncs._create_table(sqlmr_stdout_temp_tablename, self.sqlmr_query)
|
|
549
|
-
except Exception as emsg:
|
|
550
|
-
raise TeradataMlException(Messages.get_message(MessageCodes.TDMLDF_EXEC_SQL_FAILED, str(emsg)), MessageCodes.TDMLDF_EXEC_SQL_FAILED)
|
|
551
|
-
|
|
552
|
-
# Update output table data frames.
|
|
553
|
-
self._mlresults = []
|
|
554
|
-
self.model_table = self.__awu._create_data_set_object(df_input=UtilFuncs._extract_table_name(self.__model_table_temp_tablename), source_type="table", database_name=UtilFuncs._extract_db_name(self.__model_table_temp_tablename))
|
|
555
|
-
self.output = self.__awu._create_data_set_object(df_input=UtilFuncs._extract_table_name(sqlmr_stdout_temp_tablename), source_type="table", database_name=UtilFuncs._extract_db_name(sqlmr_stdout_temp_tablename))
|
|
556
|
-
self._mlresults.append(self.model_table)
|
|
557
|
-
self._mlresults.append(self.output)
|
|
558
|
-
|
|
559
|
-
def show_query(self):
|
|
560
|
-
"""
|
|
561
|
-
Function to return the underlying SQL query.
|
|
562
|
-
When model object is created using retrieve_model(), then None is returned.
|
|
563
|
-
"""
|
|
564
|
-
return self.sqlmr_query
|
|
565
|
-
|
|
566
|
-
def get_prediction_type(self):
|
|
567
|
-
"""
|
|
568
|
-
Function to return the Prediction type of the algorithm.
|
|
569
|
-
When model object is created using retrieve_model(), then the value returned is
|
|
570
|
-
as saved in the Model Catalog.
|
|
571
|
-
"""
|
|
572
|
-
return self._prediction_type
|
|
573
|
-
|
|
574
|
-
def get_target_column(self):
|
|
575
|
-
"""
|
|
576
|
-
Function to return the Target Column of the algorithm.
|
|
577
|
-
When model object is created using retrieve_model(), then the value returned is
|
|
578
|
-
as saved in the Model Catalog.
|
|
579
|
-
"""
|
|
580
|
-
return self._target_column
|
|
581
|
-
|
|
582
|
-
def get_build_time(self):
|
|
583
|
-
"""
|
|
584
|
-
Function to return the build time of the algorithm in seconds.
|
|
585
|
-
When model object is created using retrieve_model(), then the value returned is
|
|
586
|
-
as saved in the Model Catalog.
|
|
587
|
-
"""
|
|
588
|
-
return self._build_time
|
|
589
|
-
|
|
590
|
-
def _get_algorithm_name(self):
|
|
591
|
-
"""
|
|
592
|
-
Function to return the name of the algorithm.
|
|
593
|
-
"""
|
|
594
|
-
return self._algorithm_name
|
|
595
|
-
|
|
596
|
-
def _get_sql_specific_attributes(self):
|
|
597
|
-
"""
|
|
598
|
-
Function to return the dictionary containing the SQL specific attributes of the algorithm.
|
|
599
|
-
"""
|
|
600
|
-
return self._sql_specific_attributes
|
|
601
|
-
|
|
602
|
-
@classmethod
|
|
603
|
-
def _from_model_catalog(cls,
|
|
604
|
-
model_table = None,
|
|
605
|
-
output = None,
|
|
606
|
-
**kwargs):
|
|
607
|
-
"""
|
|
608
|
-
Classmethod is used by Model Cataloging, to instantiate this wrapper class.
|
|
609
|
-
"""
|
|
610
|
-
kwargs.pop("model_table", None)
|
|
611
|
-
kwargs.pop("output", None)
|
|
612
|
-
|
|
613
|
-
# Model Cataloging related attributes.
|
|
614
|
-
target_column = kwargs.pop("__target_column", None)
|
|
615
|
-
prediction_type = kwargs.pop("__prediction_type", None)
|
|
616
|
-
algorithm_name = kwargs.pop("__algorithm_name", None)
|
|
617
|
-
build_time = kwargs.pop("__build_time", None)
|
|
618
|
-
|
|
619
|
-
# Let's create an object of this class.
|
|
620
|
-
obj = cls(**kwargs)
|
|
621
|
-
obj.model_table = model_table
|
|
622
|
-
obj.output = output
|
|
623
|
-
|
|
624
|
-
# Initialize the sqlmr_query class attribute.
|
|
625
|
-
obj.sqlmr_query = None
|
|
626
|
-
|
|
627
|
-
# Initialize the SQL specific Model Cataloging attributes.
|
|
628
|
-
obj._sql_specific_attributes = None
|
|
629
|
-
obj._target_column = target_column
|
|
630
|
-
obj._prediction_type = prediction_type
|
|
631
|
-
obj._algorithm_name = algorithm_name
|
|
632
|
-
obj._build_time = build_time
|
|
633
|
-
|
|
634
|
-
# Update output table data frames.
|
|
635
|
-
obj._mlresults = []
|
|
636
|
-
obj.model_table = obj.__awu._create_data_set_object(df_input=UtilFuncs._extract_table_name(obj.model_table), source_type="table", database_name=UtilFuncs._extract_db_name(obj.model_table))
|
|
637
|
-
obj.output = obj.__awu._create_data_set_object(df_input=UtilFuncs._extract_table_name(obj.output), source_type="table", database_name=UtilFuncs._extract_db_name(obj.output))
|
|
638
|
-
obj._mlresults.append(obj.model_table)
|
|
639
|
-
obj._mlresults.append(obj.output)
|
|
640
|
-
return obj
|
|
641
|
-
|
|
642
|
-
def __repr__(self):
|
|
643
|
-
"""
|
|
644
|
-
Returns the string representation for a AdaBoost class instance.
|
|
645
|
-
"""
|
|
646
|
-
repr_string="############ STDOUT Output ############"
|
|
647
|
-
repr_string = "{}\n\n{}".format(repr_string,self.output)
|
|
648
|
-
repr_string="{}\n\n\n############ model_table Output ############".format(repr_string)
|
|
649
|
-
repr_string = "{}\n\n{}".format(repr_string,self.model_table)
|
|
650
|
-
return repr_string
|
|
651
|
-
|