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
teradataml/analytics/mle/SAX.py
DELETED
|
@@ -1,779 +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: Pankaj Purandare (pankajvinod.purandare@teradata.com)
|
|
8
|
-
# Secondary Owner: Mounika Kotha (mounika.kotha@teradata.com)
|
|
9
|
-
#
|
|
10
|
-
# Version: 1.2
|
|
11
|
-
# Function Version: 1.9
|
|
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 SAX:
|
|
31
|
-
|
|
32
|
-
def __init__(self,
|
|
33
|
-
data = None,
|
|
34
|
-
meanstats_data = None,
|
|
35
|
-
stdevstats_data = None,
|
|
36
|
-
value_columns = None,
|
|
37
|
-
time_column = None,
|
|
38
|
-
window_type = "global",
|
|
39
|
-
output = "string",
|
|
40
|
-
mean = None,
|
|
41
|
-
st_dev = None,
|
|
42
|
-
window_size = None,
|
|
43
|
-
output_frequency = 1,
|
|
44
|
-
points_persymbol = 1,
|
|
45
|
-
symbols_perwindow = None,
|
|
46
|
-
alphabet_size = 4,
|
|
47
|
-
bitmap_level = 2,
|
|
48
|
-
print_stats = False,
|
|
49
|
-
accumulate = None,
|
|
50
|
-
data_sequence_column = None,
|
|
51
|
-
meanstats_data_sequence_column = None,
|
|
52
|
-
stdevstats_data_sequence_column = None,
|
|
53
|
-
data_partition_column = None,
|
|
54
|
-
meanstats_data_partition_column = None,
|
|
55
|
-
stdevstats_data_partition_column = None,
|
|
56
|
-
data_order_column = None,
|
|
57
|
-
meanstats_data_order_column = None,
|
|
58
|
-
stdevstats_data_order_column = None):
|
|
59
|
-
"""
|
|
60
|
-
DESCRIPTION:
|
|
61
|
-
The SAX (Symbolic Aggregate approXimation) function transforms a time
|
|
62
|
-
series data item into a smaller sequence of symbols, which are more
|
|
63
|
-
suitable for additional types of manipulation, because of their smaller
|
|
64
|
-
size and the relative ease with which patterns can be identified and
|
|
65
|
-
compared. Input and output formats allow it to be analyzed using NPath
|
|
66
|
-
or Shapelet Functions, or by other hashing or regular-expression pattern
|
|
67
|
-
matching algorithms.
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
PARAMETERS:
|
|
71
|
-
data:
|
|
72
|
-
Required Argument.
|
|
73
|
-
Specifies the teradataml DataFrame containing timeseries data.
|
|
74
|
-
|
|
75
|
-
data_partition_column:
|
|
76
|
-
Required Argument.
|
|
77
|
-
Specifies Partition By columns for data.
|
|
78
|
-
Values to this argument can be provided as list, if multiple columns
|
|
79
|
-
are used for partition.
|
|
80
|
-
Types: str OR list of Strings (str)
|
|
81
|
-
|
|
82
|
-
data_order_column:
|
|
83
|
-
Required Argument.
|
|
84
|
-
Specifies Order By columns for data.
|
|
85
|
-
Values to this argument can be provided as list, if multiple columns
|
|
86
|
-
are used for ordering.
|
|
87
|
-
Types: str OR list of Strings (str)
|
|
88
|
-
|
|
89
|
-
meanstats_data:
|
|
90
|
-
Optional Argument.
|
|
91
|
-
Specifies teradataml DataFrame that contains the global means of each
|
|
92
|
-
value_column of the input teradataml DataFrame.
|
|
93
|
-
|
|
94
|
-
meanstats_data_partition_column:
|
|
95
|
-
Optional Argument. Required if 'meanstats_data' is used.
|
|
96
|
-
Specifies Partition By columns for meanstats_data.
|
|
97
|
-
Values to this argument can be provided as list, if multiple columns
|
|
98
|
-
are used for partition.
|
|
99
|
-
Types: str OR list of Strings (str)
|
|
100
|
-
|
|
101
|
-
meanstats_data_order_column:
|
|
102
|
-
Optional Argument.
|
|
103
|
-
Specifies Order By columns for meanstats_data.
|
|
104
|
-
Values to this argument can be provided as list, if multiple columns
|
|
105
|
-
are used for ordering.
|
|
106
|
-
Types: str OR list of Strings (str)
|
|
107
|
-
|
|
108
|
-
stdevstats_data:
|
|
109
|
-
Optional Argument.
|
|
110
|
-
Specifies teradataml DataFrame that contains the global standard deviations
|
|
111
|
-
of each value_column of the input teradataml DataFrame.
|
|
112
|
-
|
|
113
|
-
stdevstats_data_partition_column:
|
|
114
|
-
Optional Argument. Required if 'stdevstats_data' is used.
|
|
115
|
-
Specifies Partition By columns for stdevstats_data.
|
|
116
|
-
Values to this argument can be provided as list, if multiple columns
|
|
117
|
-
are used for partition.
|
|
118
|
-
Types: str OR list of Strings (str)
|
|
119
|
-
|
|
120
|
-
stdevstats_data_order_column:
|
|
121
|
-
Optional Argument.
|
|
122
|
-
Specifies Order By columns for stdevstats_data.
|
|
123
|
-
Values to this argument can be provided as list, if multiple columns
|
|
124
|
-
are used for ordering.
|
|
125
|
-
Types: str OR list of Strings (str)
|
|
126
|
-
|
|
127
|
-
value_columns:
|
|
128
|
-
Required Argument.
|
|
129
|
-
Specifies the names of the input teradataml DataFrame columns that
|
|
130
|
-
contain the time series data to be transformed.
|
|
131
|
-
Types: str OR list of Strings (str)
|
|
132
|
-
|
|
133
|
-
time_column:
|
|
134
|
-
Optional Argument.
|
|
135
|
-
Specifies the name of the input teradataml DataFrame column that
|
|
136
|
-
contains the time axis of the data.
|
|
137
|
-
Types: str
|
|
138
|
-
|
|
139
|
-
window_type:
|
|
140
|
-
Optional Argument.
|
|
141
|
-
Determines how much data the function processes at one time:
|
|
142
|
-
"global": The function computes the SAX code using a single
|
|
143
|
-
mean and standard deviation for the entire data set.
|
|
144
|
-
"sliding": The function recomputes the mean and standard
|
|
145
|
-
deviation for a sliding window of the data set.
|
|
146
|
-
Default Value: "global"
|
|
147
|
-
Permitted Values: sliding, global
|
|
148
|
-
Types: str
|
|
149
|
-
|
|
150
|
-
output:
|
|
151
|
-
Optional Argument.
|
|
152
|
-
Determines how the function outputs the results:
|
|
153
|
-
"string": The function outputs a list of SAX codes for each window.
|
|
154
|
-
"bytes": The function outputs the list of SAX codes as compact
|
|
155
|
-
byte arrays (which are not "human-readable").
|
|
156
|
-
"bitmap": The function outputs a JSON representation of a SAX bitmap.
|
|
157
|
-
"characters": The function outputs one character for each line.
|
|
158
|
-
Default Value: "string"
|
|
159
|
-
Permitted Values: STRING, BITMAP, BYTES, CHARACTERS
|
|
160
|
-
Types: str
|
|
161
|
-
|
|
162
|
-
mean:
|
|
163
|
-
Optional Argument.
|
|
164
|
-
Specifies the global mean values that the function uses to calculate
|
|
165
|
-
the SAX code for every partition. A mean value has the data type
|
|
166
|
-
float. If mean specifies only one value and value_columns specifies
|
|
167
|
-
multiple columns, then the specified value applies to every
|
|
168
|
-
value_column. If mean specifies multiple values, then it must specify
|
|
169
|
-
a value for each value_column. The nth mean value corresponds to the
|
|
170
|
-
nth value_column.
|
|
171
|
-
Tip: To specify a different global mean value for each partition,
|
|
172
|
-
use the multiple-input syntax and put the values in the meanstats
|
|
173
|
-
teradataml DataFrame.
|
|
174
|
-
Types: float OR list of floats
|
|
175
|
-
|
|
176
|
-
st_dev:
|
|
177
|
-
Optional Argument.
|
|
178
|
-
Specifies the global standard deviation values that the function uses
|
|
179
|
-
to calculate the SAX code for every partition. A stdev value has the
|
|
180
|
-
data type float and its value must be greater than 0. If Stdev
|
|
181
|
-
specifies only one value and value_columns specifies multiple
|
|
182
|
-
columns, then the specified value applies to every value_column. If
|
|
183
|
-
Stdev specifies multiple values, then it must specify a value for
|
|
184
|
-
each value_column. The nth stdev value corresponds to the nth
|
|
185
|
-
value_column.
|
|
186
|
-
Tip: To specify a different global standard deviation value for each
|
|
187
|
-
partition, use the multiple-input syntax and put the values in the
|
|
188
|
-
stdevstats teradataml DataFrame.
|
|
189
|
-
Types: float OR list of floats
|
|
190
|
-
|
|
191
|
-
window_size:
|
|
192
|
-
Required if window_type is 'sliding', disallowed otherwise.
|
|
193
|
-
Specifies the size of the sliding window. The value must be an
|
|
194
|
-
integer greater than 0.
|
|
195
|
-
Types: int
|
|
196
|
-
|
|
197
|
-
output_frequency:
|
|
198
|
-
Optional Argument.
|
|
199
|
-
Specifies the number of data points that the window slides between
|
|
200
|
-
successive outputs. The value must be an integer greater than 0.
|
|
201
|
-
Note: window_type value must be "sliding" and Output value cannot be
|
|
202
|
-
"characters". If window_type is "sliding" and Output value is
|
|
203
|
-
"characters", then output_frequency is automatically set to the value
|
|
204
|
-
of window_size, to ensure that a single character is assigned to each
|
|
205
|
-
time point. If the number of data points in the time series is not an
|
|
206
|
-
integer multiple of the window size, then the function ignores the
|
|
207
|
-
leftover parts.
|
|
208
|
-
Default Value: 1
|
|
209
|
-
Types: int
|
|
210
|
-
|
|
211
|
-
points_persymbol:
|
|
212
|
-
Optional Argument.
|
|
213
|
-
Specifies the number of data points to be converted into one SAX
|
|
214
|
-
symbol. Each value must be an integer greater than 0.
|
|
215
|
-
Note: window_type value must be "global".
|
|
216
|
-
Default Value: 1
|
|
217
|
-
Types: int
|
|
218
|
-
|
|
219
|
-
symbols_perwindow:
|
|
220
|
-
Optional Argument.
|
|
221
|
-
Specifies the number of SAX symbols to be generated for each window.
|
|
222
|
-
Each value must be an integer greater than 0. The default value is
|
|
223
|
-
the value of window_size.
|
|
224
|
-
Note: window_type value must be "sliding".
|
|
225
|
-
Types: int
|
|
226
|
-
|
|
227
|
-
alphabet_size:
|
|
228
|
-
Optional Argument.
|
|
229
|
-
Specifies the number of symbols in the SAX alphabet. The value must
|
|
230
|
-
be an integer in the range [2, 20].
|
|
231
|
-
Default Value: 4
|
|
232
|
-
Types: int
|
|
233
|
-
|
|
234
|
-
bitmap_level:
|
|
235
|
-
Optional Argument.
|
|
236
|
-
Specifies the number of consecutive symbols to be converted to one
|
|
237
|
-
symbol on a bitmap. For bitmap level 1, the bitmap contains the
|
|
238
|
-
symbols "a", "b", "c", and so on; for bitmap level 2, the bitmap
|
|
239
|
-
contains the symbols "aa", "ab", "ac", and so on. The input value
|
|
240
|
-
must be an integer in the range [1, 4].
|
|
241
|
-
Note: Output value must be "bitmap".
|
|
242
|
-
Default Value: 2
|
|
243
|
-
Types: int
|
|
244
|
-
|
|
245
|
-
print_stats:
|
|
246
|
-
Optional Argument.
|
|
247
|
-
Specifies whether the function prints the mean and standard
|
|
248
|
-
deviation.
|
|
249
|
-
Note: Output value must be "string".
|
|
250
|
-
Default Value: False
|
|
251
|
-
Types: bool
|
|
252
|
-
|
|
253
|
-
accumulate:
|
|
254
|
-
Optional Argument.
|
|
255
|
-
The names of the input teradataml DataFrame columns that are to
|
|
256
|
-
appear in the output teradataml DataFrame. For each sequence in the
|
|
257
|
-
input teradataml DataFrame, SAX choose the value corresponding to
|
|
258
|
-
the first time point in the sequence to output as the accumulate value.
|
|
259
|
-
Types: str OR list of Strings (str)
|
|
260
|
-
|
|
261
|
-
data_sequence_column:
|
|
262
|
-
Optional Argument.
|
|
263
|
-
Specifies the list of column(s) that uniquely identifies each row of
|
|
264
|
-
the input argument "data". The argument is used to ensure
|
|
265
|
-
deterministic results for functions which produce results that vary
|
|
266
|
-
from run to run.
|
|
267
|
-
Types: str OR list of Strings (str)
|
|
268
|
-
|
|
269
|
-
meanstats_data_sequence_column:
|
|
270
|
-
Optional Argument.
|
|
271
|
-
Specifies the list of column(s) that uniquely identifies each row of
|
|
272
|
-
the input argument "meanstats_data". The argument is used to ensure
|
|
273
|
-
deterministic results for functions which produce results that vary
|
|
274
|
-
from run to run.
|
|
275
|
-
Types: str OR list of Strings (str)
|
|
276
|
-
|
|
277
|
-
stdevstats_data_sequence_column:
|
|
278
|
-
Optional Argument.
|
|
279
|
-
Specifies the list of column(s) that uniquely identifies each row of
|
|
280
|
-
the input argument "stdevstats_data". The argument is used to ensure
|
|
281
|
-
deterministic results for functions which produce results that vary
|
|
282
|
-
from run to run.
|
|
283
|
-
Types: str OR list of Strings (str)
|
|
284
|
-
|
|
285
|
-
RETURNS:
|
|
286
|
-
Instance of SAX.
|
|
287
|
-
Output teradataml DataFrames can be accessed using attribute
|
|
288
|
-
references, such as SAXObj.<attribute_name>.
|
|
289
|
-
Output teradataml DataFrame attribute name is:
|
|
290
|
-
result
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
RAISES:
|
|
294
|
-
TeradataMlException
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
EXAMPLES:
|
|
298
|
-
# Load example data.
|
|
299
|
-
load_example_data("sax", "finance_data3")
|
|
300
|
-
|
|
301
|
-
# Create teradataml DataFrame objects
|
|
302
|
-
finance_data3 = DataFrame.from_table("finance_data3")
|
|
303
|
-
|
|
304
|
-
# Example 1 - This example uses window_type as global and default output value.
|
|
305
|
-
SAX_Out = SAX(data = finance_data3,
|
|
306
|
-
data_partition_column = ["id"],
|
|
307
|
-
data_order_column = ["period"],
|
|
308
|
-
value_columns = ["expenditure","income","investment"],
|
|
309
|
-
time_column = "period",
|
|
310
|
-
window_type = "global",
|
|
311
|
-
print_stats = True,
|
|
312
|
-
accumulate = ["id"]
|
|
313
|
-
)
|
|
314
|
-
# Print the results
|
|
315
|
-
print(SAX_Out)
|
|
316
|
-
|
|
317
|
-
# Example 2 - This example uses window_type as sliding and default output value.
|
|
318
|
-
# window_size should also be specified when window_type is set as sliding.
|
|
319
|
-
SAX_Out2 = SAX(data = finance_data3,
|
|
320
|
-
data_partition_column = ["id"],
|
|
321
|
-
data_order_column = ["period"],
|
|
322
|
-
value_columns = ["expenditure"],
|
|
323
|
-
time_column = "period",
|
|
324
|
-
window_type = "sliding",
|
|
325
|
-
window_size = 20,
|
|
326
|
-
print_stats = True,
|
|
327
|
-
accumulate = ["id"]
|
|
328
|
-
)
|
|
329
|
-
# Print the results
|
|
330
|
-
print(SAX_Out2)
|
|
331
|
-
|
|
332
|
-
# Example 3 - This example uses the multiple-input version, where the
|
|
333
|
-
# mean and standard deviation statistics are applied globally with
|
|
334
|
-
# meanstats and the stdevstats tables.
|
|
335
|
-
meanstats = DataFrame.from_table("finance_data3").groupby("id").mean()
|
|
336
|
-
meanstats = meanstats.assign(drop_columns=True, id=meanstats.id, expenditure=meanstats.mean_expenditure,
|
|
337
|
-
income=meanstats.mean_income, investment=meanstats.mean_investment)
|
|
338
|
-
stdevstats = DataFrame.from_table("finance_data3").groupby("id").std()
|
|
339
|
-
stdevstats = stdevstats.assign(drop_columns=True, id=stdevstats.id, expenditure=stdevstats.std_expenditure,
|
|
340
|
-
income=stdevstats.std_income, investment=stdevstats.std_investment)
|
|
341
|
-
|
|
342
|
-
SAX_Out3 = SAX(data = finance_data3,
|
|
343
|
-
data_partition_column = ["id"],
|
|
344
|
-
data_order_column = ["id"],
|
|
345
|
-
meanstats_data = meanstats,
|
|
346
|
-
meanstats_data_partition_column = ["id"],
|
|
347
|
-
stdevstats_data = stdevstats,
|
|
348
|
-
stdevstats_data_partition_column = ["id"],
|
|
349
|
-
value_columns = ["expenditure","income","investment"],
|
|
350
|
-
time_column = "period",
|
|
351
|
-
window_type = "global",
|
|
352
|
-
accumulate = ["id"]
|
|
353
|
-
)
|
|
354
|
-
# Print the results
|
|
355
|
-
print(SAX_Out3)
|
|
356
|
-
|
|
357
|
-
"""
|
|
358
|
-
|
|
359
|
-
# Start the timer to get the build time
|
|
360
|
-
_start_time = time.time()
|
|
361
|
-
|
|
362
|
-
self.data = data
|
|
363
|
-
self.meanstats_data = meanstats_data
|
|
364
|
-
self.stdevstats_data = stdevstats_data
|
|
365
|
-
self.value_columns = value_columns
|
|
366
|
-
self.time_column = time_column
|
|
367
|
-
self.window_type = window_type
|
|
368
|
-
self.output = output
|
|
369
|
-
self.mean = mean
|
|
370
|
-
self.st_dev = st_dev
|
|
371
|
-
self.window_size = window_size
|
|
372
|
-
self.output_frequency = output_frequency
|
|
373
|
-
self.points_persymbol = points_persymbol
|
|
374
|
-
self.symbols_perwindow = symbols_perwindow
|
|
375
|
-
self.alphabet_size = alphabet_size
|
|
376
|
-
self.bitmap_level = bitmap_level
|
|
377
|
-
self.print_stats = print_stats
|
|
378
|
-
self.accumulate = accumulate
|
|
379
|
-
self.data_sequence_column = data_sequence_column
|
|
380
|
-
self.meanstats_data_sequence_column = meanstats_data_sequence_column
|
|
381
|
-
self.stdevstats_data_sequence_column = stdevstats_data_sequence_column
|
|
382
|
-
self.data_partition_column = data_partition_column
|
|
383
|
-
self.meanstats_data_partition_column = meanstats_data_partition_column
|
|
384
|
-
self.stdevstats_data_partition_column = stdevstats_data_partition_column
|
|
385
|
-
self.data_order_column = data_order_column
|
|
386
|
-
self.meanstats_data_order_column = meanstats_data_order_column
|
|
387
|
-
self.stdevstats_data_order_column = stdevstats_data_order_column
|
|
388
|
-
|
|
389
|
-
# Create TeradataPyWrapperUtils instance which contains validation functions.
|
|
390
|
-
self.__awu = AnalyticsWrapperUtils()
|
|
391
|
-
self.__aed_utils = AedUtils()
|
|
392
|
-
|
|
393
|
-
# Create argument information matrix to do parameter checking
|
|
394
|
-
self.__arg_info_matrix = []
|
|
395
|
-
self.__arg_info_matrix.append(["data", self.data, False, (DataFrame)])
|
|
396
|
-
self.__arg_info_matrix.append(["data_partition_column", self.data_partition_column, False, (str,list)])
|
|
397
|
-
self.__arg_info_matrix.append(["data_order_column", self.data_order_column, False, (str,list)])
|
|
398
|
-
self.__arg_info_matrix.append(["meanstats_data", self.meanstats_data, True, (DataFrame)])
|
|
399
|
-
self.__arg_info_matrix.append(["meanstats_data_partition_column", self.meanstats_data_partition_column, self.meanstats_data is None, (str,list)])
|
|
400
|
-
self.__arg_info_matrix.append(["meanstats_data_order_column", self.meanstats_data_order_column, True, (str,list)])
|
|
401
|
-
self.__arg_info_matrix.append(["stdevstats_data", self.stdevstats_data, True, (DataFrame)])
|
|
402
|
-
self.__arg_info_matrix.append(["stdevstats_data_partition_column", self.stdevstats_data_partition_column, self.stdevstats_data is None, (str,list)])
|
|
403
|
-
self.__arg_info_matrix.append(["stdevstats_data_order_column", self.stdevstats_data_order_column, True, (str,list)])
|
|
404
|
-
self.__arg_info_matrix.append(["value_columns", self.value_columns, False, (str,list)])
|
|
405
|
-
self.__arg_info_matrix.append(["time_column", self.time_column, True, (str)])
|
|
406
|
-
self.__arg_info_matrix.append(["window_type", self.window_type, True, (str)])
|
|
407
|
-
self.__arg_info_matrix.append(["output", self.output, True, (str)])
|
|
408
|
-
self.__arg_info_matrix.append(["mean", self.mean, True, (float,list)])
|
|
409
|
-
self.__arg_info_matrix.append(["st_dev", self.st_dev, True, (float,list)])
|
|
410
|
-
self.__arg_info_matrix.append(["window_size", self.window_size, True, (int)])
|
|
411
|
-
self.__arg_info_matrix.append(["output_frequency", self.output_frequency, True, (int)])
|
|
412
|
-
self.__arg_info_matrix.append(["points_persymbol", self.points_persymbol, True, (int)])
|
|
413
|
-
self.__arg_info_matrix.append(["symbols_perwindow", self.symbols_perwindow, True, (int)])
|
|
414
|
-
self.__arg_info_matrix.append(["alphabet_size", self.alphabet_size, True, (int)])
|
|
415
|
-
self.__arg_info_matrix.append(["bitmap_level", self.bitmap_level, True, (int)])
|
|
416
|
-
self.__arg_info_matrix.append(["print_stats", self.print_stats, True, (bool)])
|
|
417
|
-
self.__arg_info_matrix.append(["accumulate", self.accumulate, True, (str,list)])
|
|
418
|
-
self.__arg_info_matrix.append(["data_sequence_column", self.data_sequence_column, True, (str,list)])
|
|
419
|
-
self.__arg_info_matrix.append(["meanstats_data_sequence_column", self.meanstats_data_sequence_column, True, (str,list)])
|
|
420
|
-
self.__arg_info_matrix.append(["stdevstats_data_sequence_column", self.stdevstats_data_sequence_column, True, (str,list)])
|
|
421
|
-
|
|
422
|
-
if inspect.stack()[1][3] != '_from_model_catalog':
|
|
423
|
-
# Perform the function validations
|
|
424
|
-
self.__validate()
|
|
425
|
-
# Generate the ML query
|
|
426
|
-
self.__form_tdml_query()
|
|
427
|
-
# Execute ML query
|
|
428
|
-
self.__execute()
|
|
429
|
-
# Get the prediction type
|
|
430
|
-
self._prediction_type = self.__awu._get_function_prediction_type(self)
|
|
431
|
-
|
|
432
|
-
# End the timer to get the build time
|
|
433
|
-
_end_time = time.time()
|
|
434
|
-
|
|
435
|
-
# Calculate the build time
|
|
436
|
-
self._build_time = (int)(_end_time - _start_time)
|
|
437
|
-
|
|
438
|
-
def __validate(self):
|
|
439
|
-
"""
|
|
440
|
-
Function to validate sqlmr function arguments, which verifies missing
|
|
441
|
-
arguments, input argument and table types. Also processes the
|
|
442
|
-
argument values.
|
|
443
|
-
"""
|
|
444
|
-
|
|
445
|
-
# Make sure that a non-NULL value has been supplied for all mandatory arguments
|
|
446
|
-
self.__awu._validate_missing_required_arguments(self.__arg_info_matrix)
|
|
447
|
-
|
|
448
|
-
# Make sure that a non-NULL value has been supplied correct type of argument
|
|
449
|
-
self.__awu._validate_argument_types(self.__arg_info_matrix)
|
|
450
|
-
|
|
451
|
-
# Check to make sure input table types are strings or data frame objects or of valid type.
|
|
452
|
-
self.__awu._validate_input_table_datatype(self.data, "data", None)
|
|
453
|
-
self.__awu._validate_input_table_datatype(self.meanstats_data, "meanstats_data", None)
|
|
454
|
-
self.__awu._validate_input_table_datatype(self.stdevstats_data, "stdevstats_data", None)
|
|
455
|
-
|
|
456
|
-
# Check for permitted values
|
|
457
|
-
window_type_permitted_values = ["SLIDING", "GLOBAL"]
|
|
458
|
-
self.__awu._validate_permitted_values(self.window_type, window_type_permitted_values, "window_type")
|
|
459
|
-
|
|
460
|
-
output_permitted_values = ["STRING", "BITMAP", "BYTES", "CHARACTERS"]
|
|
461
|
-
self.__awu._validate_permitted_values(self.output, output_permitted_values, "output")
|
|
462
|
-
|
|
463
|
-
# Check whether the input columns passed to the argument are not empty.
|
|
464
|
-
# Also check whether the input columns passed to the argument valid or not.
|
|
465
|
-
self.__awu._validate_input_columns_not_empty(self.value_columns, "value_columns")
|
|
466
|
-
self.__awu._validate_dataframe_has_argument_columns(self.value_columns, "value_columns", self.data, "data", False)
|
|
467
|
-
|
|
468
|
-
self.__awu._validate_input_columns_not_empty(self.time_column, "time_column")
|
|
469
|
-
self.__awu._validate_dataframe_has_argument_columns(self.time_column, "time_column", self.data, "data", False)
|
|
470
|
-
|
|
471
|
-
self.__awu._validate_input_columns_not_empty(self.accumulate, "accumulate")
|
|
472
|
-
self.__awu._validate_dataframe_has_argument_columns(self.accumulate, "accumulate", self.data, "data", False)
|
|
473
|
-
|
|
474
|
-
self.__awu._validate_input_columns_not_empty(self.data_sequence_column, "data_sequence_column")
|
|
475
|
-
self.__awu._validate_dataframe_has_argument_columns(self.data_sequence_column, "data_sequence_column", self.data, "data", False)
|
|
476
|
-
|
|
477
|
-
self.__awu._validate_input_columns_not_empty(self.meanstats_data_sequence_column, "meanstats_data_sequence_column")
|
|
478
|
-
self.__awu._validate_dataframe_has_argument_columns(self.meanstats_data_sequence_column, "meanstats_data_sequence_column", self.meanstats_data, "meanstats_data", False)
|
|
479
|
-
|
|
480
|
-
self.__awu._validate_input_columns_not_empty(self.stdevstats_data_sequence_column, "stdevstats_data_sequence_column")
|
|
481
|
-
self.__awu._validate_dataframe_has_argument_columns(self.stdevstats_data_sequence_column, "stdevstats_data_sequence_column", self.stdevstats_data, "stdevstats_data", False)
|
|
482
|
-
|
|
483
|
-
self.__awu._validate_input_columns_not_empty(self.data_partition_column, "data_partition_column")
|
|
484
|
-
self.__awu._validate_dataframe_has_argument_columns(self.data_partition_column, "data_partition_column", self.data, "data", True)
|
|
485
|
-
|
|
486
|
-
self.__awu._validate_input_columns_not_empty(self.meanstats_data_partition_column, "meanstats_data_partition_column")
|
|
487
|
-
self.__awu._validate_dataframe_has_argument_columns(self.meanstats_data_partition_column, "meanstats_data_partition_column", self.meanstats_data, "meanstats_data", True)
|
|
488
|
-
|
|
489
|
-
self.__awu._validate_input_columns_not_empty(self.stdevstats_data_partition_column, "stdevstats_data_partition_column")
|
|
490
|
-
self.__awu._validate_dataframe_has_argument_columns(self.stdevstats_data_partition_column, "stdevstats_data_partition_column", self.stdevstats_data, "stdevstats_data", True)
|
|
491
|
-
|
|
492
|
-
self.__awu._validate_input_columns_not_empty(self.data_order_column, "data_order_column")
|
|
493
|
-
self.__awu._validate_dataframe_has_argument_columns(self.data_order_column, "data_order_column", self.data, "data", False)
|
|
494
|
-
|
|
495
|
-
self.__awu._validate_input_columns_not_empty(self.meanstats_data_order_column, "meanstats_data_order_column")
|
|
496
|
-
self.__awu._validate_dataframe_has_argument_columns(self.meanstats_data_order_column, "meanstats_data_order_column", self.meanstats_data, "meanstats_data", False)
|
|
497
|
-
|
|
498
|
-
self.__awu._validate_input_columns_not_empty(self.stdevstats_data_order_column, "stdevstats_data_order_column")
|
|
499
|
-
self.__awu._validate_dataframe_has_argument_columns(self.stdevstats_data_order_column, "stdevstats_data_order_column", self.stdevstats_data, "stdevstats_data", False)
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
def __form_tdml_query(self):
|
|
503
|
-
"""
|
|
504
|
-
Function to generate the analytical function queries. The function defines
|
|
505
|
-
variables and list of arguments required to form the query.
|
|
506
|
-
"""
|
|
507
|
-
|
|
508
|
-
# Output table arguments list
|
|
509
|
-
self.__func_output_args_sql_names = []
|
|
510
|
-
self.__func_output_args = []
|
|
511
|
-
|
|
512
|
-
# Model Cataloging related attributes.
|
|
513
|
-
self._sql_specific_attributes = {}
|
|
514
|
-
self._sql_formula_attribute_mapper = {}
|
|
515
|
-
self._target_column = None
|
|
516
|
-
self._algorithm_name = None
|
|
517
|
-
|
|
518
|
-
# Generate lists for rest of the function arguments
|
|
519
|
-
self.__func_other_arg_sql_names = []
|
|
520
|
-
self.__func_other_args = []
|
|
521
|
-
self.__func_other_arg_json_datatypes = []
|
|
522
|
-
|
|
523
|
-
self.__func_other_arg_sql_names.append("TargetColumns")
|
|
524
|
-
self.__func_other_args.append(UtilFuncs._teradata_collapse_arglist(UtilFuncs._teradata_quote_arg(self.value_columns, "\""), "'"))
|
|
525
|
-
self.__func_other_arg_json_datatypes.append("COLUMNS")
|
|
526
|
-
|
|
527
|
-
if self.time_column is not None:
|
|
528
|
-
self.__func_other_arg_sql_names.append("TimeColumn")
|
|
529
|
-
self.__func_other_args.append(UtilFuncs._teradata_collapse_arglist(UtilFuncs._teradata_quote_arg(self.time_column, "\""), "'"))
|
|
530
|
-
self.__func_other_arg_json_datatypes.append("COLUMNS")
|
|
531
|
-
|
|
532
|
-
if self.accumulate is not None:
|
|
533
|
-
self.__func_other_arg_sql_names.append("Accumulate")
|
|
534
|
-
self.__func_other_args.append(UtilFuncs._teradata_collapse_arglist(UtilFuncs._teradata_quote_arg(self.accumulate, "\""), "'"))
|
|
535
|
-
self.__func_other_arg_json_datatypes.append("COLUMNS")
|
|
536
|
-
|
|
537
|
-
if self.window_type is not None and self.window_type != "global":
|
|
538
|
-
self.__func_other_arg_sql_names.append("WindowType")
|
|
539
|
-
self.__func_other_args.append(UtilFuncs._teradata_collapse_arglist(self.window_type, "'"))
|
|
540
|
-
self.__func_other_arg_json_datatypes.append("STRING")
|
|
541
|
-
|
|
542
|
-
if self.output is not None and self.output != "string":
|
|
543
|
-
self.__func_other_arg_sql_names.append("OutputType")
|
|
544
|
-
self.__func_other_args.append(UtilFuncs._teradata_collapse_arglist(self.output, "'"))
|
|
545
|
-
self.__func_other_arg_json_datatypes.append("STRING")
|
|
546
|
-
|
|
547
|
-
if self.mean is not None:
|
|
548
|
-
self.__func_other_arg_sql_names.append("Mean")
|
|
549
|
-
self.__func_other_args.append(UtilFuncs._teradata_collapse_arglist(self.mean, "'"))
|
|
550
|
-
self.__func_other_arg_json_datatypes.append("DOUBLE")
|
|
551
|
-
|
|
552
|
-
if self.st_dev is not None:
|
|
553
|
-
self.__func_other_arg_sql_names.append("StDev")
|
|
554
|
-
self.__func_other_args.append(UtilFuncs._teradata_collapse_arglist(self.st_dev, "'"))
|
|
555
|
-
self.__func_other_arg_json_datatypes.append("DOUBLE")
|
|
556
|
-
|
|
557
|
-
if self.window_size is not None:
|
|
558
|
-
self.__func_other_arg_sql_names.append("WindowSize")
|
|
559
|
-
self.__func_other_args.append(UtilFuncs._teradata_collapse_arglist(self.window_size, "'"))
|
|
560
|
-
self.__func_other_arg_json_datatypes.append("INTEGER")
|
|
561
|
-
|
|
562
|
-
if self.output_frequency is not None and self.output_frequency != 1:
|
|
563
|
-
self.__func_other_arg_sql_names.append("OutputFrequency")
|
|
564
|
-
self.__func_other_args.append(UtilFuncs._teradata_collapse_arglist(self.output_frequency, "'"))
|
|
565
|
-
self.__func_other_arg_json_datatypes.append("INTEGER")
|
|
566
|
-
|
|
567
|
-
if self.points_persymbol is not None and self.points_persymbol != 1:
|
|
568
|
-
self.__func_other_arg_sql_names.append("PointsPerSymbol")
|
|
569
|
-
self.__func_other_args.append(UtilFuncs._teradata_collapse_arglist(self.points_persymbol, "'"))
|
|
570
|
-
self.__func_other_arg_json_datatypes.append("INTEGER")
|
|
571
|
-
|
|
572
|
-
if self.symbols_perwindow is not None:
|
|
573
|
-
self.__func_other_arg_sql_names.append("SymbolsPerWindow")
|
|
574
|
-
self.__func_other_args.append(UtilFuncs._teradata_collapse_arglist(self.symbols_perwindow, "'"))
|
|
575
|
-
self.__func_other_arg_json_datatypes.append("INTEGER")
|
|
576
|
-
|
|
577
|
-
if self.alphabet_size is not None and self.alphabet_size != 4:
|
|
578
|
-
self.__func_other_arg_sql_names.append("AlphabetSize")
|
|
579
|
-
self.__func_other_args.append(UtilFuncs._teradata_collapse_arglist(self.alphabet_size, "'"))
|
|
580
|
-
self.__func_other_arg_json_datatypes.append("INTEGER")
|
|
581
|
-
|
|
582
|
-
if self.bitmap_level is not None and self.bitmap_level != 2:
|
|
583
|
-
self.__func_other_arg_sql_names.append("BitmapLevel")
|
|
584
|
-
self.__func_other_args.append(UtilFuncs._teradata_collapse_arglist(self.bitmap_level, "'"))
|
|
585
|
-
self.__func_other_arg_json_datatypes.append("INTEGER")
|
|
586
|
-
|
|
587
|
-
if self.print_stats is not None and self.print_stats != False:
|
|
588
|
-
self.__func_other_arg_sql_names.append("OutputStats")
|
|
589
|
-
self.__func_other_args.append(UtilFuncs._teradata_collapse_arglist(self.print_stats, "'"))
|
|
590
|
-
self.__func_other_arg_json_datatypes.append("BOOLEAN")
|
|
591
|
-
|
|
592
|
-
# Generate lists for rest of the function arguments
|
|
593
|
-
sequence_input_by_list = []
|
|
594
|
-
if self.data_sequence_column is not None:
|
|
595
|
-
sequence_input_by_list.append("input:" + UtilFuncs._teradata_collapse_arglist(self.data_sequence_column, ""))
|
|
596
|
-
|
|
597
|
-
if self.meanstats_data_sequence_column is not None:
|
|
598
|
-
sequence_input_by_list.append("meanstats:" + UtilFuncs._teradata_collapse_arglist(self.meanstats_data_sequence_column, ""))
|
|
599
|
-
|
|
600
|
-
if self.stdevstats_data_sequence_column is not None:
|
|
601
|
-
sequence_input_by_list.append("stdevstats:" + UtilFuncs._teradata_collapse_arglist(self.stdevstats_data_sequence_column, ""))
|
|
602
|
-
|
|
603
|
-
if len(sequence_input_by_list) > 0:
|
|
604
|
-
self.__func_other_arg_sql_names.append("SequenceInputBy")
|
|
605
|
-
sequence_input_by_arg_value = UtilFuncs._teradata_collapse_arglist(sequence_input_by_list, "'")
|
|
606
|
-
self.__func_other_args.append(sequence_input_by_arg_value)
|
|
607
|
-
self.__func_other_arg_json_datatypes.append("STRING")
|
|
608
|
-
self._sql_specific_attributes["SequenceInputBy"] = sequence_input_by_arg_value
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
# Declare empty lists to hold input table information.
|
|
612
|
-
self.__func_input_arg_sql_names = []
|
|
613
|
-
self.__func_input_table_view_query = []
|
|
614
|
-
self.__func_input_dataframe_type = []
|
|
615
|
-
self.__func_input_distribution = []
|
|
616
|
-
self.__func_input_partition_by_cols = []
|
|
617
|
-
self.__func_input_order_by_cols = []
|
|
618
|
-
|
|
619
|
-
# Process data
|
|
620
|
-
self.data_partition_column = UtilFuncs._teradata_collapse_arglist(self.data_partition_column, "\"")
|
|
621
|
-
self.__table_ref = self.__awu._teradata_on_clause_from_dataframe(self.data, False)
|
|
622
|
-
self.__func_input_distribution.append("FACT")
|
|
623
|
-
self.__func_input_arg_sql_names.append("input")
|
|
624
|
-
self.__func_input_table_view_query.append(self.__table_ref["ref"])
|
|
625
|
-
self.__func_input_dataframe_type.append(self.__table_ref["ref_type"])
|
|
626
|
-
self.__func_input_partition_by_cols.append(self.data_partition_column)
|
|
627
|
-
self.__func_input_order_by_cols.append(UtilFuncs._teradata_collapse_arglist(self.data_order_column, "\""))
|
|
628
|
-
|
|
629
|
-
# Process meanstats_data
|
|
630
|
-
if self.meanstats_data is not None:
|
|
631
|
-
self.meanstats_data_partition_column = UtilFuncs._teradata_collapse_arglist(self.meanstats_data_partition_column, "\"")
|
|
632
|
-
self.__table_ref = self.__awu._teradata_on_clause_from_dataframe(self.meanstats_data, False)
|
|
633
|
-
self.__func_input_distribution.append("FACT")
|
|
634
|
-
self.__func_input_arg_sql_names.append("meanstats")
|
|
635
|
-
self.__func_input_table_view_query.append(self.__table_ref["ref"])
|
|
636
|
-
self.__func_input_dataframe_type.append(self.__table_ref["ref_type"])
|
|
637
|
-
self.__func_input_partition_by_cols.append(self.meanstats_data_partition_column)
|
|
638
|
-
self.__func_input_order_by_cols.append(UtilFuncs._teradata_collapse_arglist(self.meanstats_data_order_column, "\""))
|
|
639
|
-
|
|
640
|
-
# Process stdevstats_data
|
|
641
|
-
if self.stdevstats_data is not None:
|
|
642
|
-
self.stdevstats_data_partition_column = UtilFuncs._teradata_collapse_arglist(self.stdevstats_data_partition_column, "\"")
|
|
643
|
-
self.__table_ref = self.__awu._teradata_on_clause_from_dataframe(self.stdevstats_data, False)
|
|
644
|
-
self.__func_input_distribution.append("FACT")
|
|
645
|
-
self.__func_input_arg_sql_names.append("stdevstats")
|
|
646
|
-
self.__func_input_table_view_query.append(self.__table_ref["ref"])
|
|
647
|
-
self.__func_input_dataframe_type.append(self.__table_ref["ref_type"])
|
|
648
|
-
self.__func_input_partition_by_cols.append(self.stdevstats_data_partition_column)
|
|
649
|
-
self.__func_input_order_by_cols.append(UtilFuncs._teradata_collapse_arglist(self.stdevstats_data_order_column, "\""))
|
|
650
|
-
|
|
651
|
-
function_name = "SAX"
|
|
652
|
-
# Create instance to generate SQLMR.
|
|
653
|
-
self.__aqg_obj = AnalyticQueryGenerator(function_name,
|
|
654
|
-
self.__func_input_arg_sql_names,
|
|
655
|
-
self.__func_input_table_view_query,
|
|
656
|
-
self.__func_input_dataframe_type,
|
|
657
|
-
self.__func_input_distribution,
|
|
658
|
-
self.__func_input_partition_by_cols,
|
|
659
|
-
self.__func_input_order_by_cols,
|
|
660
|
-
self.__func_other_arg_sql_names,
|
|
661
|
-
self.__func_other_args,
|
|
662
|
-
self.__func_other_arg_json_datatypes,
|
|
663
|
-
self.__func_output_args_sql_names,
|
|
664
|
-
self.__func_output_args,
|
|
665
|
-
engine="ENGINE_ML")
|
|
666
|
-
# Invoke call to SQL-MR generation.
|
|
667
|
-
self.sqlmr_query = self.__aqg_obj._gen_sqlmr_select_stmt_sql()
|
|
668
|
-
|
|
669
|
-
# Print SQL-MR query if requested to do so.
|
|
670
|
-
if display.print_sqlmr_query:
|
|
671
|
-
print(self.sqlmr_query)
|
|
672
|
-
|
|
673
|
-
# Set the algorithm name for Model Cataloging.
|
|
674
|
-
self._algorithm_name = self.__aqg_obj._get_alias_name_for_function(function_name)
|
|
675
|
-
|
|
676
|
-
def __execute(self):
|
|
677
|
-
"""
|
|
678
|
-
Function to execute SQL-MR queries.
|
|
679
|
-
Create DataFrames for the required SQL-MR outputs.
|
|
680
|
-
"""
|
|
681
|
-
# Generate STDOUT table name and add it to the output table list.
|
|
682
|
-
sqlmr_stdout_temp_tablename = UtilFuncs._generate_temp_table_name(prefix="td_sqlmr_out_", use_default_database=True, gc_on_quit=True, quote=False)
|
|
683
|
-
try:
|
|
684
|
-
# Generate the output.
|
|
685
|
-
UtilFuncs._create_view(sqlmr_stdout_temp_tablename, self.sqlmr_query)
|
|
686
|
-
except Exception as emsg:
|
|
687
|
-
raise TeradataMlException(Messages.get_message(MessageCodes.TDMLDF_EXEC_SQL_FAILED, str(emsg)), MessageCodes.TDMLDF_EXEC_SQL_FAILED)
|
|
688
|
-
|
|
689
|
-
# Update output table data frames.
|
|
690
|
-
self._mlresults = []
|
|
691
|
-
self.result = 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))
|
|
692
|
-
self._mlresults.append(self.result)
|
|
693
|
-
|
|
694
|
-
def show_query(self):
|
|
695
|
-
"""
|
|
696
|
-
Function to return the underlying SQL query.
|
|
697
|
-
When model object is created using retrieve_model(), then None is returned.
|
|
698
|
-
"""
|
|
699
|
-
return self.sqlmr_query
|
|
700
|
-
|
|
701
|
-
def get_prediction_type(self):
|
|
702
|
-
"""
|
|
703
|
-
Function to return the Prediction type of the algorithm.
|
|
704
|
-
When model object is created using retrieve_model(), then the value returned is
|
|
705
|
-
as saved in the Model Catalog.
|
|
706
|
-
"""
|
|
707
|
-
return self._prediction_type
|
|
708
|
-
|
|
709
|
-
def get_target_column(self):
|
|
710
|
-
"""
|
|
711
|
-
Function to return the Target Column of the algorithm.
|
|
712
|
-
When model object is created using retrieve_model(), then the value returned is
|
|
713
|
-
as saved in the Model Catalog.
|
|
714
|
-
"""
|
|
715
|
-
return self._target_column
|
|
716
|
-
|
|
717
|
-
def get_build_time(self):
|
|
718
|
-
"""
|
|
719
|
-
Function to return the build time of the algorithm in seconds.
|
|
720
|
-
When model object is created using retrieve_model(), then the value returned is
|
|
721
|
-
as saved in the Model Catalog.
|
|
722
|
-
"""
|
|
723
|
-
return self._build_time
|
|
724
|
-
|
|
725
|
-
def _get_algorithm_name(self):
|
|
726
|
-
"""
|
|
727
|
-
Function to return the name of the algorithm.
|
|
728
|
-
"""
|
|
729
|
-
return self._algorithm_name
|
|
730
|
-
|
|
731
|
-
def _get_sql_specific_attributes(self):
|
|
732
|
-
"""
|
|
733
|
-
Function to return the dictionary containing the SQL specific attributes of the algorithm.
|
|
734
|
-
"""
|
|
735
|
-
return self._sql_specific_attributes
|
|
736
|
-
|
|
737
|
-
@classmethod
|
|
738
|
-
def _from_model_catalog(cls,
|
|
739
|
-
result = None,
|
|
740
|
-
**kwargs):
|
|
741
|
-
"""
|
|
742
|
-
Classmethod is used by Model Cataloging, to instantiate this wrapper class.
|
|
743
|
-
"""
|
|
744
|
-
kwargs.pop("result", None)
|
|
745
|
-
|
|
746
|
-
# Model Cataloging related attributes.
|
|
747
|
-
target_column = kwargs.pop("__target_column", None)
|
|
748
|
-
prediction_type = kwargs.pop("__prediction_type", None)
|
|
749
|
-
algorithm_name = kwargs.pop("__algorithm_name", None)
|
|
750
|
-
build_time = kwargs.pop("__build_time", None)
|
|
751
|
-
|
|
752
|
-
# Let's create an object of this class.
|
|
753
|
-
obj = cls(**kwargs)
|
|
754
|
-
obj.result = result
|
|
755
|
-
|
|
756
|
-
# Initialize the sqlmr_query class attribute.
|
|
757
|
-
obj.sqlmr_query = None
|
|
758
|
-
|
|
759
|
-
# Initialize the SQL specific Model Cataloging attributes.
|
|
760
|
-
obj._sql_specific_attributes = None
|
|
761
|
-
obj._target_column = target_column
|
|
762
|
-
obj._prediction_type = prediction_type
|
|
763
|
-
obj._algorithm_name = algorithm_name
|
|
764
|
-
obj._build_time = build_time
|
|
765
|
-
|
|
766
|
-
# Update output table data frames.
|
|
767
|
-
obj._mlresults = []
|
|
768
|
-
obj.result = obj.__awu._create_data_set_object(df_input=UtilFuncs._extract_table_name(obj.result), source_type="table", database_name=UtilFuncs._extract_db_name(obj.result))
|
|
769
|
-
obj._mlresults.append(obj.result)
|
|
770
|
-
return obj
|
|
771
|
-
|
|
772
|
-
def __repr__(self):
|
|
773
|
-
"""
|
|
774
|
-
Returns the string representation for a SAX class instance.
|
|
775
|
-
"""
|
|
776
|
-
repr_string="############ STDOUT Output ############"
|
|
777
|
-
repr_string = "{}\n\n{}".format(repr_string,self.result)
|
|
778
|
-
return repr_string
|
|
779
|
-
|