From 426e5c6bedddc2b19bd3c7bbd990a117471a6eff Mon Sep 17 00:00:00 2001 From: lhenry15 Date: Tue, 23 Feb 2021 00:42:24 -0600 Subject: [PATCH] merged sk_interface with system_wise example. TODO: fix unittest of detection algorithm --- examples/sklearn_interface/system_KNN.py | 51 ++++++ tods/__init__.py | 1 + tods/sk_interface/__init__.py | 3 + tods/sk_interface/base.py | 142 ++++++++++++++++ .../data_ensemble/Ensemble_skinterface.py | 43 +++++ tods/sk_interface/data_ensemble/__init__.py | 1 + .../detection_algorithm/ABOD_skinterface.py | 2 +- .../detection_algorithm/AutoEncoder_skinterface.py | 2 +- .../AutoRegODetector_skinterface.py | 2 +- .../detection_algorithm/CBLOF_skinterface.py | 2 +- .../detection_algorithm/COF_skinterface.py | 2 +- .../detection_algorithm/DeepLog_skinterface.py | 2 +- .../detection_algorithm/HBOS_skinterface.py | 2 +- .../IsolationForest_skinterface.py | 2 +- .../KDiscordODetector_skinterface.py | 2 +- .../detection_algorithm/KNN_skinterface.py | 2 +- .../detection_algorithm/LODA_skinterface.py | 2 +- .../detection_algorithm/LOF_skinterface.py | 2 +- .../LSTMODetector_skinterface.py | 2 +- .../MatrixProfile_skinterface.py | 2 +- .../detection_algorithm/Mo_Gaal_skinterface.py | 2 +- .../detection_algorithm/OCSVM_skinterface.py | 2 +- .../PCAODetector_skinterface.py | 2 +- .../detection_algorithm/SOD_skinterface.py | 2 +- .../detection_algorithm/So_Gaal_skinterface.py | 2 +- .../SystemWiseDetection_skinterface.py | 2 +- .../detection_algorithm/Telemanom_skinterface.py | 3 +- .../VariationalAutoEncoder_skinterface.py | 2 +- tods/sk_interface/detection_algorithm/__init__.py | 22 +++ .../AutoCorrelation_skinterface.py | 2 +- .../feature_analysis/BKFilter_skinterface.py | 2 +- .../DiscreteCosineTransform_skinterface.py | 2 +- .../FastFourierTransform_skinterface.py | 2 +- .../feature_analysis/HPFilter_skinterface.py | 2 +- .../NonNegativeMatrixFactorization_skinterface.py | 2 +- .../feature_analysis/SKTruncatedSVD_skinterface.py | 4 +- .../SpectralResidualTransform_skinterface.py | 2 +- .../StatisticalAbsEnergy_skinterface.py | 2 +- .../StatisticalAbsSum_skinterface.py | 2 +- .../StatisticalGmean_skinterface.py | 2 +- .../StatisticalHmean_skinterface.py | 2 +- .../StatisticalKurtosis_skinterface.py | 2 +- .../StatisticalMaximum_skinterface.py | 2 +- ...isticalMeanAbsTemporalDerivative_skinterface.py | 2 +- .../StatisticalMeanAbs_skinterface.py | 2 +- ...tatisticalMeanTemporalDerivative_skinterface.py | 2 +- .../StatisticalMean_skinterface.py | 2 +- ...atisticalMedianAbsoluteDeviation_skinterface.py | 2 +- .../StatisticalMedian_skinterface.py | 2 +- .../StatisticalMinimum_skinterface.py | 2 +- .../StatisticalSkew_skinterface.py | 2 +- .../feature_analysis/StatisticalStd_skinterface.py | 2 +- .../feature_analysis/StatisticalVar_skinterface.py | 2 +- .../StatisticalVariation_skinterface.py | 2 +- .../StatisticalVecSum_skinterface.py | 2 +- .../StatisticalWillisonAmplitude_skinterface.py | 2 +- .../StatisticalZeroCrossing_skinterface.py | 2 +- .../feature_analysis/TRMF_skinterface.py | 4 +- .../WaveletTransform_skinterface.py | 2 +- tods/sk_interface/feature_analysis/__init__.py | 30 ++++ .../detection_algorithm_skinterface_generation.py | 4 +- .../detection_algorithm_skitest_generation.py | 85 ++++++++++ .../feature_analysis_skinterface_generation.py | 11 +- .../script/feature_analysis_skitest_generation.py | 84 +++++++++ .../test/detection_algorithm}/__init__.py | 0 .../test/detection_algorithm/run_tests.py | 14 ++ .../test/detection_algorithm/test_ski_ABOD.py | 43 +++++ .../detection_algorithm/test_ski_AutoEncoder.py | 43 +++++ .../test_ski_AutoRegODetector.py | 43 +++++ .../test/detection_algorithm/test_ski_CBLOF.py | 43 +++++ .../test/detection_algorithm/test_ski_COF.py | 43 +++++ .../test/detection_algorithm/test_ski_DeepLog.py | 43 +++++ .../test/detection_algorithm/test_ski_HBOS.py | 43 +++++ .../test_ski_IsolationForest.py | 43 +++++ .../test_ski_KDiscordODetector.py | 43 +++++ .../test/detection_algorithm/test_ski_KNN.py | 43 +++++ .../test/detection_algorithm/test_ski_LODA.py | 43 +++++ .../test/detection_algorithm/test_ski_LOF.py | 43 +++++ .../detection_algorithm/test_ski_LSTMODetector.py | 43 +++++ .../detection_algorithm/test_ski_MatrixProfile.py | 43 +++++ .../test/detection_algorithm/test_ski_Mo_Gaal.py | 43 +++++ .../test/detection_algorithm/test_ski_OCSVM.py | 43 +++++ .../detection_algorithm/test_ski_PCAODetector.py | 43 +++++ .../test/detection_algorithm/test_ski_SOD.py | 43 +++++ .../test/detection_algorithm/test_ski_So_Gaal.py | 43 +++++ .../test_ski_SystemWiseDetection.py | 43 +++++ .../test/detection_algorithm/test_ski_Telemanom.py | 43 +++++ .../test_ski_VariationalAutoEncoder.py | 43 +++++ .../test/feature_analysis}/__init__.py | 0 .../test/feature_analysis/run_tests.py | 14 ++ .../feature_analysis/test_ski_AutoCorrelation.py | 34 ++++ .../test/feature_analysis/test_ski_BKFilter.py | 34 ++++ .../test_ski_DiscreteCosineTransform.py | 34 ++++ .../test_ski_FastFourierTransform.py | 34 ++++ .../test/feature_analysis/test_ski_HPFilter.py | 34 ++++ .../test_ski_NonNegativeMatrixFactorization.py | 34 ++++ .../feature_analysis/test_ski_SKTruncatedSVD.py | 35 ++++ .../test_ski_SpectralResidualTransform.py | 34 ++++ .../test_ski_StatisticalAbsEnergy.py | 34 ++++ .../feature_analysis/test_ski_StatisticalAbsSum.py | 34 ++++ .../feature_analysis/test_ski_StatisticalGmean.py | 34 ++++ .../feature_analysis/test_ski_StatisticalHmean.py | 34 ++++ .../test_ski_StatisticalKurtosis.py | 34 ++++ .../test_ski_StatisticalMaximum.py | 34 ++++ .../feature_analysis/test_ski_StatisticalMean.py | 34 ++++ .../test_ski_StatisticalMeanAbs.py | 34 ++++ ...est_ski_StatisticalMeanAbsTemporalDerivative.py | 34 ++++ .../test_ski_StatisticalMeanTemporalDerivative.py | 34 ++++ .../feature_analysis/test_ski_StatisticalMedian.py | 34 ++++ .../test_ski_StatisticalMedianAbsoluteDeviation.py | 34 ++++ .../test_ski_StatisticalMinimum.py | 34 ++++ .../feature_analysis/test_ski_StatisticalSkew.py | 34 ++++ .../feature_analysis/test_ski_StatisticalStd.py | 34 ++++ .../feature_analysis/test_ski_StatisticalVar.py | 34 ++++ .../test_ski_StatisticalVariation.py | 34 ++++ .../feature_analysis/test_ski_StatisticalVecSum.py | 34 ++++ .../test_ski_StatisticalWillisonAmplitude.py | 34 ++++ .../test_ski_StatisticalZeroCrossing.py | 34 ++++ .../test/feature_analysis/test_ski_TRMF.py | 34 ++++ .../feature_analysis/test_ski_WaveletTransform.py | 34 ++++ .../test/system_detection/test_system_KNN.py | 51 ++++++ tods/sk_interface/utils/data.py | 188 +++++++++++++++++++++ .../utils}/entry_points/entry_points.txt | 0 .../entry_points_detection_algorithm.txt | 1 - .../entry_points/entry_points_feature_analysis.txt | 0 .../sk_interface}/__init__.py | 0 .../sk_interface/detection_algorithm/run_tests.py | 14 ++ .../detection_algorithm/test_ski_ABOD.py | 43 +++++ .../detection_algorithm/test_ski_AutoEncoder.py | 43 +++++ .../test_ski_AutoRegODetector.py | 43 +++++ .../detection_algorithm/test_ski_CBLOF.py | 43 +++++ .../detection_algorithm/test_ski_COF.py | 43 +++++ .../detection_algorithm/test_ski_DeepLog.py | 43 +++++ .../detection_algorithm/test_ski_HBOS.py | 43 +++++ .../test_ski_IsolationForest.py | 43 +++++ .../test_ski_KDiscordODetector.py | 43 +++++ .../detection_algorithm/test_ski_KNN.py | 43 +++++ .../detection_algorithm/test_ski_LODA.py | 43 +++++ .../detection_algorithm/test_ski_LOF.py | 43 +++++ .../detection_algorithm/test_ski_LSTMODetector.py | 43 +++++ .../detection_algorithm/test_ski_MatrixProfile.py | 43 +++++ .../detection_algorithm/test_ski_Mo_Gaal.py | 43 +++++ .../detection_algorithm/test_ski_OCSVM.py | 43 +++++ .../detection_algorithm/test_ski_PCAODetector.py | 43 +++++ .../detection_algorithm/test_ski_SOD.py | 43 +++++ .../detection_algorithm/test_ski_So_Gaal.py | 43 +++++ .../test_ski_SystemWiseDetection.py | 43 +++++ .../detection_algorithm/test_ski_Telemanom.py | 43 +++++ .../test_ski_VariationalAutoEncoder.py | 43 +++++ .../sk_interface/feature_analysis/run_tests.py | 14 ++ .../feature_analysis/test_ski_AutoCorrelation.py | 34 ++++ .../feature_analysis/test_ski_BKFilter.py | 34 ++++ .../test_ski_DiscreteCosineTransform.py | 34 ++++ .../test_ski_FastFourierTransform.py | 34 ++++ .../feature_analysis/test_ski_HPFilter.py | 34 ++++ .../test_ski_NonNegativeMatrixFactorization.py | 34 ++++ .../feature_analysis/test_ski_SKTruncatedSVD.py | 35 ++++ .../test_ski_SpectralResidualTransform.py | 34 ++++ .../test_ski_StatisticalAbsEnergy.py | 34 ++++ .../feature_analysis/test_ski_StatisticalAbsSum.py | 34 ++++ .../feature_analysis/test_ski_StatisticalGmean.py | 34 ++++ .../feature_analysis/test_ski_StatisticalHmean.py | 34 ++++ .../test_ski_StatisticalKurtosis.py | 34 ++++ .../test_ski_StatisticalMaximum.py | 34 ++++ .../feature_analysis/test_ski_StatisticalMean.py | 34 ++++ .../test_ski_StatisticalMeanAbs.py | 34 ++++ ...est_ski_StatisticalMeanAbsTemporalDerivative.py | 34 ++++ .../test_ski_StatisticalMeanTemporalDerivative.py | 34 ++++ .../feature_analysis/test_ski_StatisticalMedian.py | 34 ++++ .../test_ski_StatisticalMedianAbsoluteDeviation.py | 34 ++++ .../test_ski_StatisticalMinimum.py | 34 ++++ .../feature_analysis/test_ski_StatisticalSkew.py | 34 ++++ .../feature_analysis/test_ski_StatisticalStd.py | 34 ++++ .../feature_analysis/test_ski_StatisticalVar.py | 34 ++++ .../test_ski_StatisticalVariation.py | 34 ++++ .../feature_analysis/test_ski_StatisticalVecSum.py | 34 ++++ .../test_ski_StatisticalWillisonAmplitude.py | 34 ++++ .../test_ski_StatisticalZeroCrossing.py | 34 ++++ .../sk_interface/feature_analysis/test_ski_TRMF.py | 34 ++++ .../feature_analysis/test_ski_WaveletTransform.py | 34 ++++ tods/tests/sk_interface/run_tests.py | 14 ++ tods/tests/sk_interface/utils/data.py | 188 +++++++++++++++++++++ .../primitiveSKI/Base_skinterface.py | 106 ------------ .../detection_algorithm/Ensemble_skinterface.py | 10 -- .../primitiveSKI/detection_algorithm/__init__.py | 0 .../primitiveSKI/feature_analysis/__init__.py | 0 .../primitiveSKI/timeseries_processing/__init__.py | 0 .../detection_algorithm_skitest_generation.py | 76 --------- .../script/feature_analysis_skitest_generation.py | 72 -------- .../test/detection_algorithm/ABOD_skitest.py | 14 -- .../detection_algorithm/AutoEncoder_skitest.py | 16 -- .../AutoRegODetector_skitest.py | 14 -- .../test/detection_algorithm/CBLOF_skitest.py | 14 -- .../test/detection_algorithm/COF_skitest.py | 14 -- .../test/detection_algorithm/DeepLog_skitest.py | 14 -- .../test/detection_algorithm/Ensemble_skitest.py | 14 -- .../test/detection_algorithm/HBOS_skitest.py | 14 -- .../detection_algorithm/IsolationForest_skitest.py | 14 -- .../KDiscordODetector_skitest.py | 14 -- .../test/detection_algorithm/KNN_skitest.py | 14 -- .../test/detection_algorithm/LODA_skitest.py | 14 -- .../test/detection_algorithm/LOF_skitest.py | 14 -- .../detection_algorithm/LSTMODetector_skitest.py | 14 -- .../detection_algorithm/MatrixProfile_skitest.py | 14 -- .../test/detection_algorithm/Mo_Gaal_skitest.py | 14 -- .../test/detection_algorithm/OCSVM_skitest.py | 14 -- .../detection_algorithm/PCAODetector_skitest.py | 14 -- .../test/detection_algorithm/SOD_skitest.py | 14 -- .../test/detection_algorithm/So_Gaal_skitest.py | 14 -- .../SystemWiseDetection_skitest.py | 14 -- .../test/detection_algorithm/Telemanom_skitest.py | 16 -- .../VariationalAutoEncoder_skitest.py | 14 -- .../feature_analysis/AutoCorrelation_skitest.py | 10 -- .../test/feature_analysis/BKFilter_skitest.py | 10 -- .../DiscreteCosineTransform_skitest.py | 10 -- .../FastFourierTransform_skitest.py | 10 -- .../test/feature_analysis/HPFilter_skitest.py | 10 -- .../NonNegativeMatrixFactorization_skitest.py | 10 -- .../feature_analysis/SKTruncatedSVD_skitest.py | 10 -- .../SpectralResidualTransform_skitest.py | 10 -- .../StatisticalAbsEnergy_skitest.py | 10 -- .../feature_analysis/StatisticalAbsSum_skitest.py | 10 -- .../feature_analysis/StatisticalGmean_skitest.py | 10 -- .../feature_analysis/StatisticalHmean_skitest.py | 10 -- .../StatisticalKurtosis_skitest.py | 10 -- .../feature_analysis/StatisticalMaximum_skitest.py | 10 -- ...StatisticalMeanAbsTemporalDerivative_skitest.py | 10 -- .../feature_analysis/StatisticalMeanAbs_skitest.py | 10 -- .../StatisticalMeanTemporalDerivative_skitest.py | 10 -- .../feature_analysis/StatisticalMean_skitest.py | 10 -- .../StatisticalMedianAbsoluteDeviation_skitest.py | 10 -- .../feature_analysis/StatisticalMedian_skitest.py | 10 -- .../feature_analysis/StatisticalMinimum_skitest.py | 10 -- .../feature_analysis/StatisticalSkew_skitest.py | 10 -- .../feature_analysis/StatisticalStd_skitest.py | 10 -- .../feature_analysis/StatisticalVar_skitest.py | 10 -- .../StatisticalVariation_skitest.py | 10 -- .../feature_analysis/StatisticalVecSum_skitest.py | 10 -- .../StatisticalWillisonAmplitude_skitest.py | 10 -- .../StatisticalZeroCrossing_skitest.py | 10 -- .../test/feature_analysis/TRMF_skitest.py | 10 -- .../feature_analysis/WaveletTransform_skitest.py | 10 -- tods/tods_skinterface/test_api.sh | 27 --- 243 files changed, 4957 insertions(+), 978 deletions(-) create mode 100644 examples/sklearn_interface/system_KNN.py create mode 100644 tods/sk_interface/__init__.py create mode 100644 tods/sk_interface/base.py create mode 100644 tods/sk_interface/data_ensemble/Ensemble_skinterface.py create mode 100644 tods/sk_interface/data_ensemble/__init__.py rename tods/{tods_skinterface/primitiveSKI => sk_interface}/detection_algorithm/ABOD_skinterface.py (88%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/detection_algorithm/AutoEncoder_skinterface.py (88%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/detection_algorithm/AutoRegODetector_skinterface.py (89%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/detection_algorithm/CBLOF_skinterface.py (88%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/detection_algorithm/COF_skinterface.py (88%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/detection_algorithm/DeepLog_skinterface.py (88%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/detection_algorithm/HBOS_skinterface.py (88%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/detection_algorithm/IsolationForest_skinterface.py (89%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/detection_algorithm/KDiscordODetector_skinterface.py (89%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/detection_algorithm/KNN_skinterface.py (88%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/detection_algorithm/LODA_skinterface.py (88%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/detection_algorithm/LOF_skinterface.py (88%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/detection_algorithm/LSTMODetector_skinterface.py (89%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/detection_algorithm/MatrixProfile_skinterface.py (89%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/detection_algorithm/Mo_Gaal_skinterface.py (88%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/detection_algorithm/OCSVM_skinterface.py (88%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/detection_algorithm/PCAODetector_skinterface.py (89%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/detection_algorithm/SOD_skinterface.py (88%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/detection_algorithm/So_Gaal_skinterface.py (88%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/detection_algorithm/SystemWiseDetection_skinterface.py (89%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/detection_algorithm/Telemanom_skinterface.py (88%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/detection_algorithm/VariationalAutoEncoder_skinterface.py (89%) create mode 100644 tods/sk_interface/detection_algorithm/__init__.py rename tods/{tods_skinterface/primitiveSKI => sk_interface}/feature_analysis/AutoCorrelation_skinterface.py (89%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/feature_analysis/BKFilter_skinterface.py (88%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/feature_analysis/DiscreteCosineTransform_skinterface.py (90%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/feature_analysis/FastFourierTransform_skinterface.py (90%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/feature_analysis/HPFilter_skinterface.py (88%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/feature_analysis/NonNegativeMatrixFactorization_skinterface.py (90%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/feature_analysis/SKTruncatedSVD_skinterface.py (81%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/feature_analysis/SpectralResidualTransform_skinterface.py (90%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/feature_analysis/StatisticalAbsEnergy_skinterface.py (90%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/feature_analysis/StatisticalAbsSum_skinterface.py (89%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/feature_analysis/StatisticalGmean_skinterface.py (89%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/feature_analysis/StatisticalHmean_skinterface.py (89%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/feature_analysis/StatisticalKurtosis_skinterface.py (89%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/feature_analysis/StatisticalMaximum_skinterface.py (89%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/feature_analysis/StatisticalMeanAbsTemporalDerivative_skinterface.py (91%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/feature_analysis/StatisticalMeanAbs_skinterface.py (89%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/feature_analysis/StatisticalMeanTemporalDerivative_skinterface.py (91%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/feature_analysis/StatisticalMean_skinterface.py (89%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/feature_analysis/StatisticalMedianAbsoluteDeviation_skinterface.py (91%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/feature_analysis/StatisticalMedian_skinterface.py (89%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/feature_analysis/StatisticalMinimum_skinterface.py (89%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/feature_analysis/StatisticalSkew_skinterface.py (89%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/feature_analysis/StatisticalStd_skinterface.py (89%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/feature_analysis/StatisticalVar_skinterface.py (89%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/feature_analysis/StatisticalVariation_skinterface.py (90%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/feature_analysis/StatisticalVecSum_skinterface.py (89%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/feature_analysis/StatisticalWillisonAmplitude_skinterface.py (90%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/feature_analysis/StatisticalZeroCrossing_skinterface.py (90%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/feature_analysis/TRMF_skinterface.py (79%) rename tods/{tods_skinterface/primitiveSKI => sk_interface}/feature_analysis/WaveletTransform_skinterface.py (89%) create mode 100644 tods/sk_interface/feature_analysis/__init__.py rename tods/{tods_skinterface => sk_interface}/script/detection_algorithm_skinterface_generation.py (91%) create mode 100644 tods/sk_interface/script/detection_algorithm_skitest_generation.py rename tods/{tods_skinterface => sk_interface}/script/feature_analysis_skinterface_generation.py (73%) create mode 100644 tods/sk_interface/script/feature_analysis_skitest_generation.py rename tods/{tods_skinterface => sk_interface/test/detection_algorithm}/__init__.py (100%) create mode 100755 tods/sk_interface/test/detection_algorithm/run_tests.py create mode 100644 tods/sk_interface/test/detection_algorithm/test_ski_ABOD.py create mode 100644 tods/sk_interface/test/detection_algorithm/test_ski_AutoEncoder.py create mode 100644 tods/sk_interface/test/detection_algorithm/test_ski_AutoRegODetector.py create mode 100644 tods/sk_interface/test/detection_algorithm/test_ski_CBLOF.py create mode 100644 tods/sk_interface/test/detection_algorithm/test_ski_COF.py create mode 100644 tods/sk_interface/test/detection_algorithm/test_ski_DeepLog.py create mode 100644 tods/sk_interface/test/detection_algorithm/test_ski_HBOS.py create mode 100644 tods/sk_interface/test/detection_algorithm/test_ski_IsolationForest.py create mode 100644 tods/sk_interface/test/detection_algorithm/test_ski_KDiscordODetector.py create mode 100644 tods/sk_interface/test/detection_algorithm/test_ski_KNN.py create mode 100644 tods/sk_interface/test/detection_algorithm/test_ski_LODA.py create mode 100644 tods/sk_interface/test/detection_algorithm/test_ski_LOF.py create mode 100644 tods/sk_interface/test/detection_algorithm/test_ski_LSTMODetector.py create mode 100644 tods/sk_interface/test/detection_algorithm/test_ski_MatrixProfile.py create mode 100644 tods/sk_interface/test/detection_algorithm/test_ski_Mo_Gaal.py create mode 100644 tods/sk_interface/test/detection_algorithm/test_ski_OCSVM.py create mode 100644 tods/sk_interface/test/detection_algorithm/test_ski_PCAODetector.py create mode 100644 tods/sk_interface/test/detection_algorithm/test_ski_SOD.py create mode 100644 tods/sk_interface/test/detection_algorithm/test_ski_So_Gaal.py create mode 100644 tods/sk_interface/test/detection_algorithm/test_ski_SystemWiseDetection.py create mode 100644 tods/sk_interface/test/detection_algorithm/test_ski_Telemanom.py create mode 100644 tods/sk_interface/test/detection_algorithm/test_ski_VariationalAutoEncoder.py rename tods/{tods_skinterface/primitiveSKI => sk_interface/test/feature_analysis}/__init__.py (100%) create mode 100755 tods/sk_interface/test/feature_analysis/run_tests.py create mode 100644 tods/sk_interface/test/feature_analysis/test_ski_AutoCorrelation.py create mode 100644 tods/sk_interface/test/feature_analysis/test_ski_BKFilter.py create mode 100644 tods/sk_interface/test/feature_analysis/test_ski_DiscreteCosineTransform.py create mode 100644 tods/sk_interface/test/feature_analysis/test_ski_FastFourierTransform.py create mode 100644 tods/sk_interface/test/feature_analysis/test_ski_HPFilter.py create mode 100644 tods/sk_interface/test/feature_analysis/test_ski_NonNegativeMatrixFactorization.py create mode 100644 tods/sk_interface/test/feature_analysis/test_ski_SKTruncatedSVD.py create mode 100644 tods/sk_interface/test/feature_analysis/test_ski_SpectralResidualTransform.py create mode 100644 tods/sk_interface/test/feature_analysis/test_ski_StatisticalAbsEnergy.py create mode 100644 tods/sk_interface/test/feature_analysis/test_ski_StatisticalAbsSum.py create mode 100644 tods/sk_interface/test/feature_analysis/test_ski_StatisticalGmean.py create mode 100644 tods/sk_interface/test/feature_analysis/test_ski_StatisticalHmean.py create mode 100644 tods/sk_interface/test/feature_analysis/test_ski_StatisticalKurtosis.py create mode 100644 tods/sk_interface/test/feature_analysis/test_ski_StatisticalMaximum.py create mode 100644 tods/sk_interface/test/feature_analysis/test_ski_StatisticalMean.py create mode 100644 tods/sk_interface/test/feature_analysis/test_ski_StatisticalMeanAbs.py create mode 100644 tods/sk_interface/test/feature_analysis/test_ski_StatisticalMeanAbsTemporalDerivative.py create mode 100644 tods/sk_interface/test/feature_analysis/test_ski_StatisticalMeanTemporalDerivative.py create mode 100644 tods/sk_interface/test/feature_analysis/test_ski_StatisticalMedian.py create mode 100644 tods/sk_interface/test/feature_analysis/test_ski_StatisticalMedianAbsoluteDeviation.py create mode 100644 tods/sk_interface/test/feature_analysis/test_ski_StatisticalMinimum.py create mode 100644 tods/sk_interface/test/feature_analysis/test_ski_StatisticalSkew.py create mode 100644 tods/sk_interface/test/feature_analysis/test_ski_StatisticalStd.py create mode 100644 tods/sk_interface/test/feature_analysis/test_ski_StatisticalVar.py create mode 100644 tods/sk_interface/test/feature_analysis/test_ski_StatisticalVariation.py create mode 100644 tods/sk_interface/test/feature_analysis/test_ski_StatisticalVecSum.py create mode 100644 tods/sk_interface/test/feature_analysis/test_ski_StatisticalWillisonAmplitude.py create mode 100644 tods/sk_interface/test/feature_analysis/test_ski_StatisticalZeroCrossing.py create mode 100644 tods/sk_interface/test/feature_analysis/test_ski_TRMF.py create mode 100644 tods/sk_interface/test/feature_analysis/test_ski_WaveletTransform.py create mode 100644 tods/sk_interface/test/system_detection/test_system_KNN.py create mode 100644 tods/sk_interface/utils/data.py rename tods/{tods_skinterface => sk_interface/utils}/entry_points/entry_points.txt (100%) rename tods/{tods_skinterface => sk_interface/utils}/entry_points/entry_points_detection_algorithm.txt (95%) rename tods/{tods_skinterface => sk_interface/utils}/entry_points/entry_points_feature_analysis.txt (100%) rename tods/{tods_skinterface/primitiveSKI/data_processing => tests/sk_interface}/__init__.py (100%) create mode 100755 tods/tests/sk_interface/detection_algorithm/run_tests.py create mode 100644 tods/tests/sk_interface/detection_algorithm/test_ski_ABOD.py create mode 100644 tods/tests/sk_interface/detection_algorithm/test_ski_AutoEncoder.py create mode 100644 tods/tests/sk_interface/detection_algorithm/test_ski_AutoRegODetector.py create mode 100644 tods/tests/sk_interface/detection_algorithm/test_ski_CBLOF.py create mode 100644 tods/tests/sk_interface/detection_algorithm/test_ski_COF.py create mode 100644 tods/tests/sk_interface/detection_algorithm/test_ski_DeepLog.py create mode 100644 tods/tests/sk_interface/detection_algorithm/test_ski_HBOS.py create mode 100644 tods/tests/sk_interface/detection_algorithm/test_ski_IsolationForest.py create mode 100644 tods/tests/sk_interface/detection_algorithm/test_ski_KDiscordODetector.py create mode 100644 tods/tests/sk_interface/detection_algorithm/test_ski_KNN.py create mode 100644 tods/tests/sk_interface/detection_algorithm/test_ski_LODA.py create mode 100644 tods/tests/sk_interface/detection_algorithm/test_ski_LOF.py create mode 100644 tods/tests/sk_interface/detection_algorithm/test_ski_LSTMODetector.py create mode 100644 tods/tests/sk_interface/detection_algorithm/test_ski_MatrixProfile.py create mode 100644 tods/tests/sk_interface/detection_algorithm/test_ski_Mo_Gaal.py create mode 100644 tods/tests/sk_interface/detection_algorithm/test_ski_OCSVM.py create mode 100644 tods/tests/sk_interface/detection_algorithm/test_ski_PCAODetector.py create mode 100644 tods/tests/sk_interface/detection_algorithm/test_ski_SOD.py create mode 100644 tods/tests/sk_interface/detection_algorithm/test_ski_So_Gaal.py create mode 100644 tods/tests/sk_interface/detection_algorithm/test_ski_SystemWiseDetection.py create mode 100644 tods/tests/sk_interface/detection_algorithm/test_ski_Telemanom.py create mode 100644 tods/tests/sk_interface/detection_algorithm/test_ski_VariationalAutoEncoder.py create mode 100755 tods/tests/sk_interface/feature_analysis/run_tests.py create mode 100644 tods/tests/sk_interface/feature_analysis/test_ski_AutoCorrelation.py create mode 100644 tods/tests/sk_interface/feature_analysis/test_ski_BKFilter.py create mode 100644 tods/tests/sk_interface/feature_analysis/test_ski_DiscreteCosineTransform.py create mode 100644 tods/tests/sk_interface/feature_analysis/test_ski_FastFourierTransform.py create mode 100644 tods/tests/sk_interface/feature_analysis/test_ski_HPFilter.py create mode 100644 tods/tests/sk_interface/feature_analysis/test_ski_NonNegativeMatrixFactorization.py create mode 100644 tods/tests/sk_interface/feature_analysis/test_ski_SKTruncatedSVD.py create mode 100644 tods/tests/sk_interface/feature_analysis/test_ski_SpectralResidualTransform.py create mode 100644 tods/tests/sk_interface/feature_analysis/test_ski_StatisticalAbsEnergy.py create mode 100644 tods/tests/sk_interface/feature_analysis/test_ski_StatisticalAbsSum.py create mode 100644 tods/tests/sk_interface/feature_analysis/test_ski_StatisticalGmean.py create mode 100644 tods/tests/sk_interface/feature_analysis/test_ski_StatisticalHmean.py create mode 100644 tods/tests/sk_interface/feature_analysis/test_ski_StatisticalKurtosis.py create mode 100644 tods/tests/sk_interface/feature_analysis/test_ski_StatisticalMaximum.py create mode 100644 tods/tests/sk_interface/feature_analysis/test_ski_StatisticalMean.py create mode 100644 tods/tests/sk_interface/feature_analysis/test_ski_StatisticalMeanAbs.py create mode 100644 tods/tests/sk_interface/feature_analysis/test_ski_StatisticalMeanAbsTemporalDerivative.py create mode 100644 tods/tests/sk_interface/feature_analysis/test_ski_StatisticalMeanTemporalDerivative.py create mode 100644 tods/tests/sk_interface/feature_analysis/test_ski_StatisticalMedian.py create mode 100644 tods/tests/sk_interface/feature_analysis/test_ski_StatisticalMedianAbsoluteDeviation.py create mode 100644 tods/tests/sk_interface/feature_analysis/test_ski_StatisticalMinimum.py create mode 100644 tods/tests/sk_interface/feature_analysis/test_ski_StatisticalSkew.py create mode 100644 tods/tests/sk_interface/feature_analysis/test_ski_StatisticalStd.py create mode 100644 tods/tests/sk_interface/feature_analysis/test_ski_StatisticalVar.py create mode 100644 tods/tests/sk_interface/feature_analysis/test_ski_StatisticalVariation.py create mode 100644 tods/tests/sk_interface/feature_analysis/test_ski_StatisticalVecSum.py create mode 100644 tods/tests/sk_interface/feature_analysis/test_ski_StatisticalWillisonAmplitude.py create mode 100644 tods/tests/sk_interface/feature_analysis/test_ski_StatisticalZeroCrossing.py create mode 100644 tods/tests/sk_interface/feature_analysis/test_ski_TRMF.py create mode 100644 tods/tests/sk_interface/feature_analysis/test_ski_WaveletTransform.py create mode 100755 tods/tests/sk_interface/run_tests.py create mode 100644 tods/tests/sk_interface/utils/data.py delete mode 100644 tods/tods_skinterface/primitiveSKI/Base_skinterface.py delete mode 100644 tods/tods_skinterface/primitiveSKI/detection_algorithm/Ensemble_skinterface.py delete mode 100644 tods/tods_skinterface/primitiveSKI/detection_algorithm/__init__.py delete mode 100644 tods/tods_skinterface/primitiveSKI/feature_analysis/__init__.py delete mode 100644 tods/tods_skinterface/primitiveSKI/timeseries_processing/__init__.py delete mode 100644 tods/tods_skinterface/script/detection_algorithm_skitest_generation.py delete mode 100644 tods/tods_skinterface/script/feature_analysis_skitest_generation.py delete mode 100644 tods/tods_skinterface/test/detection_algorithm/ABOD_skitest.py delete mode 100644 tods/tods_skinterface/test/detection_algorithm/AutoEncoder_skitest.py delete mode 100644 tods/tods_skinterface/test/detection_algorithm/AutoRegODetector_skitest.py delete mode 100644 tods/tods_skinterface/test/detection_algorithm/CBLOF_skitest.py delete mode 100644 tods/tods_skinterface/test/detection_algorithm/COF_skitest.py delete mode 100644 tods/tods_skinterface/test/detection_algorithm/DeepLog_skitest.py delete mode 100644 tods/tods_skinterface/test/detection_algorithm/Ensemble_skitest.py delete mode 100644 tods/tods_skinterface/test/detection_algorithm/HBOS_skitest.py delete mode 100644 tods/tods_skinterface/test/detection_algorithm/IsolationForest_skitest.py delete mode 100644 tods/tods_skinterface/test/detection_algorithm/KDiscordODetector_skitest.py delete mode 100644 tods/tods_skinterface/test/detection_algorithm/KNN_skitest.py delete mode 100644 tods/tods_skinterface/test/detection_algorithm/LODA_skitest.py delete mode 100644 tods/tods_skinterface/test/detection_algorithm/LOF_skitest.py delete mode 100644 tods/tods_skinterface/test/detection_algorithm/LSTMODetector_skitest.py delete mode 100644 tods/tods_skinterface/test/detection_algorithm/MatrixProfile_skitest.py delete mode 100644 tods/tods_skinterface/test/detection_algorithm/Mo_Gaal_skitest.py delete mode 100644 tods/tods_skinterface/test/detection_algorithm/OCSVM_skitest.py delete mode 100644 tods/tods_skinterface/test/detection_algorithm/PCAODetector_skitest.py delete mode 100644 tods/tods_skinterface/test/detection_algorithm/SOD_skitest.py delete mode 100644 tods/tods_skinterface/test/detection_algorithm/So_Gaal_skitest.py delete mode 100644 tods/tods_skinterface/test/detection_algorithm/SystemWiseDetection_skitest.py delete mode 100644 tods/tods_skinterface/test/detection_algorithm/Telemanom_skitest.py delete mode 100644 tods/tods_skinterface/test/detection_algorithm/VariationalAutoEncoder_skitest.py delete mode 100644 tods/tods_skinterface/test/feature_analysis/AutoCorrelation_skitest.py delete mode 100644 tods/tods_skinterface/test/feature_analysis/BKFilter_skitest.py delete mode 100644 tods/tods_skinterface/test/feature_analysis/DiscreteCosineTransform_skitest.py delete mode 100644 tods/tods_skinterface/test/feature_analysis/FastFourierTransform_skitest.py delete mode 100644 tods/tods_skinterface/test/feature_analysis/HPFilter_skitest.py delete mode 100644 tods/tods_skinterface/test/feature_analysis/NonNegativeMatrixFactorization_skitest.py delete mode 100644 tods/tods_skinterface/test/feature_analysis/SKTruncatedSVD_skitest.py delete mode 100644 tods/tods_skinterface/test/feature_analysis/SpectralResidualTransform_skitest.py delete mode 100644 tods/tods_skinterface/test/feature_analysis/StatisticalAbsEnergy_skitest.py delete mode 100644 tods/tods_skinterface/test/feature_analysis/StatisticalAbsSum_skitest.py delete mode 100644 tods/tods_skinterface/test/feature_analysis/StatisticalGmean_skitest.py delete mode 100644 tods/tods_skinterface/test/feature_analysis/StatisticalHmean_skitest.py delete mode 100644 tods/tods_skinterface/test/feature_analysis/StatisticalKurtosis_skitest.py delete mode 100644 tods/tods_skinterface/test/feature_analysis/StatisticalMaximum_skitest.py delete mode 100644 tods/tods_skinterface/test/feature_analysis/StatisticalMeanAbsTemporalDerivative_skitest.py delete mode 100644 tods/tods_skinterface/test/feature_analysis/StatisticalMeanAbs_skitest.py delete mode 100644 tods/tods_skinterface/test/feature_analysis/StatisticalMeanTemporalDerivative_skitest.py delete mode 100644 tods/tods_skinterface/test/feature_analysis/StatisticalMean_skitest.py delete mode 100644 tods/tods_skinterface/test/feature_analysis/StatisticalMedianAbsoluteDeviation_skitest.py delete mode 100644 tods/tods_skinterface/test/feature_analysis/StatisticalMedian_skitest.py delete mode 100644 tods/tods_skinterface/test/feature_analysis/StatisticalMinimum_skitest.py delete mode 100644 tods/tods_skinterface/test/feature_analysis/StatisticalSkew_skitest.py delete mode 100644 tods/tods_skinterface/test/feature_analysis/StatisticalStd_skitest.py delete mode 100644 tods/tods_skinterface/test/feature_analysis/StatisticalVar_skitest.py delete mode 100644 tods/tods_skinterface/test/feature_analysis/StatisticalVariation_skitest.py delete mode 100644 tods/tods_skinterface/test/feature_analysis/StatisticalVecSum_skitest.py delete mode 100644 tods/tods_skinterface/test/feature_analysis/StatisticalWillisonAmplitude_skitest.py delete mode 100644 tods/tods_skinterface/test/feature_analysis/StatisticalZeroCrossing_skitest.py delete mode 100644 tods/tods_skinterface/test/feature_analysis/TRMF_skitest.py delete mode 100644 tods/tods_skinterface/test/feature_analysis/WaveletTransform_skitest.py delete mode 100644 tods/tods_skinterface/test_api.sh diff --git a/examples/sklearn_interface/system_KNN.py b/examples/sklearn_interface/system_KNN.py new file mode 100644 index 0000000..46a3b98 --- /dev/null +++ b/examples/sklearn_interface/system_KNN.py @@ -0,0 +1,51 @@ +import numpy as np + +from tods.sk_interface.feature_analysis.StatisticalMaximum_skinterface import StatisticalMaximumSKI +from tods.sk_interface.detection_algorithm.KNN_skinterface import KNNSKI +from tods.sk_interface.data_ensemble.Ensemble_skinterface import EnsembleSKI +from tods.sk_interface.utils.data import generate_3D_data, load_sys_data, generate_sys_feature + +# Generate 3D data (n, T, d), n: system number, T: time, d: dimension + +# n_sys = 5 +# X_train, y_train, X_test, y_test = generate_3D_data(n_sys=n_sys, +# n_train=1000, +# n_test=1000, +# n_features=3, +# contamination=0.1) + +X_train, y_train, sys_info_train = load_sys_data('../../datasets/anomaly/system_wise/sample/train.csv', + '../../datasets/anomaly/system_wise/sample/systems') +X_test, y_test, sys_info_test = load_sys_data('../../datasets/anomaly/system_wise/sample/train.csv', + '../../datasets/anomaly/system_wise/sample/systems') +n_sys = sys_info_train['sys_num'] + +# feature analysis algorithms +stmax = StatisticalMaximumSKI(system_num=n_sys) + +# OD algorithms +detection_module = KNNSKI(contamination=0.1, system_num=n_sys) + +# ensemble model +ensemble_module = EnsembleSKI() + +# Fit the feature analysis algorithms +X_train = stmax.produce(X_train) +X_test = stmax.produce(X_test) + +# Fit the detector +detection_module.fit(X_train) +sys_ts_score = detection_module.predict_score(X_test) # shape (n, T, 1) + +# generate sys_feature based on the time-series anomaly score +sys_feature = generate_sys_feature(sys_ts_score) # shape (T, n) + +print(sys_feature.shape) +print(sys_feature.ndim) + +# Ensemble the time series outlier socre for each system +ensemble_module.fit(sys_feature) +sys_score = ensemble_module.predict(sys_feature) + +print(sys_score) + diff --git a/tods/__init__.py b/tods/__init__.py index dc1b038..288c715 100644 --- a/tods/__init__.py +++ b/tods/__init__.py @@ -3,3 +3,4 @@ from tods.data_processing import * from tods.timeseries_processing import * from tods.feature_analysis import * from tods.detection_algorithm import * +from tods.sk_interface import * diff --git a/tods/sk_interface/__init__.py b/tods/sk_interface/__init__.py new file mode 100644 index 0000000..a5de741 --- /dev/null +++ b/tods/sk_interface/__init__.py @@ -0,0 +1,3 @@ +from tods.sk_interface.data_ensemble import * +from tods.sk_interface.feature_analysis import * +from tods.sk_interface.detection_algorithm import * diff --git a/tods/sk_interface/base.py b/tods/sk_interface/base.py new file mode 100644 index 0000000..addbbc1 --- /dev/null +++ b/tods/sk_interface/base.py @@ -0,0 +1,142 @@ +from d3m import container +import numpy as np + +def get_default_hyperparameter(primitive, hyperparameter): + + # check if input legal hyperparameter + hyperparam_buf = list(primitive.metadata.get_hyperparams().defaults().keys()) + hyperparam_input = list(hyperparameter.keys()) + if not set(hyperparam_buf) > set(hyperparam_input): + invalid_hyperparam = list(set(hyperparam_input) - set(hyperparam_buf)) + raise TypeError(primitive.__name__ + ' got unexpected keyword argument ' + str(invalid_hyperparam)) + + hyperparams_class = primitive.metadata.get_hyperparams() + hyperparams = hyperparams_class.defaults() + # print("items ", type(hyperparameter.items())) + if len(hyperparameter.items()) != 0: + # for key, value in hyperparameter.items(): + hyperparams = hyperparams.replace(hyperparameter) + + return hyperparams + +class BaseSKI: + def __init__(self, primitive, system_num=1, **hyperparameter): + + self.fit_available = True if 'fit' in primitive.__dict__ else False + self.predict_available = True if 'produce' in primitive.__dict__ else False + self.predict_score_available = True if 'produce_score' in dir(primitive) else False + self.produce_available = True if 'produce' in primitive.__dict__ else False + + # print(primitive, self.fit_available, self.predict_available, self.predict_score_available, self.produce_available) + + self.system_num = system_num + hyperparams = get_default_hyperparameter(primitive, hyperparameter) + + if system_num >= 1: + self.primitives = [primitive(hyperparams=hyperparams) for sys_idx in range(system_num)] + else: + raise AttributeError('BaseSKI must have positive system_num.') + + + #print(hyperparams) + + def fit(self, data): + + if not self.fit_available: + raise AttributeError('type object ' + self.__class__.__name__ + ' has no attribute \'fit\'') + + data = self._sys_data_check(data) + + for sys_idx, primitive in enumerate(self.primitives): + sys_data = data[sys_idx] + sys_data = self._transform(sys_data) + primitive.set_training_data(inputs=sys_data) + primitive.fit() + + return + + def predict(self, data): + + if not self.predict_available: + raise AttributeError('type object ' + self.__class__.__name__ + ' has no attribute \'predict\'') + + data = self._sys_data_check(data) + output_data = self._forward(data, 'produce') + + return output_data + + def predict_score(self, data): + + if not self.predict_available: + raise AttributeError('type object ' + self.__class__.__name__ + ' has no attribute \'predict_score\'') + + data = self._sys_data_check(data) + output_data = self._forward(data, 'produce_score') + + return output_data + + def produce(self, data): #produce function for other primitive types + + if not self.produce_available: + raise AttributeError('type object ' + self.__class__.__name__ + ' has no attribute \'produce\'') + + data = self._sys_data_check(data) + output_data = self._forward(data, 'produce') + + return output_data + + def _sys_data_check(self, data): + + if self.system_num == 1: + if type(data) is np.ndarray and data.ndim == 2: + data = [data] # np.expand_dims(data, axis=0) + else: + raise AttributeError('For system_num = 1, input data should be 2D numpy array.') + elif self.system_num > 1: + if type(data) is list and len(data) == self.system_num: + for ts_data in data: + if type(ts_data) is np.ndarray and ts_data.ndim == 2: + continue + else: + raise AttributeError('For system_num > 1, each element of input list should be 2D numpy arrays.') + + else: + raise AttributeError('For system_num > 1, input data should be the list of `system_num` 2D numpy arrays.') + + # if len(data.shape) != 3: + # raise AttributeError('For system_num > 1, input data should have 3 dimensions.') + # elif self.system_num != data.shape[0]: + # raise AttributeError('For system_num > 1, data.shape[0] must equal system_num.') + + return data + + def _forward(self, data, method): + output_data = [] + for sys_idx, primitive in enumerate(self.primitives): + sys_data = data[sys_idx] + sys_data = self._transform(sys_data) + forward_method = getattr(primitive, method, None) + output_data.append(forward_method(inputs=sys_data).value.values) + # print(forward_method(inputs=sys_data).value.values.shape) + + # print(type(output_data), len(output_data), output_data[0].shape) + # print(np.array(output_data)) + + if self.system_num == 1: + output_data = output_data[0] + + # print(np.array(output_data)) + + return output_data + + # output_data = np.array(output_data) + # if self.system_num == 1: + # output_data = output_data.squeeze(axis=0) + + + def _transform(self, X): #transform the ndarray to d3m dataframe, select columns to use + column_name = [str(col_index) for col_index in range(X.shape[1])] + return container.DataFrame(X, columns=column_name, generate_metadata=True) + + # def set_training_data(self, data): + # return self.primitive.set_training_data(inputs=data) diff --git a/tods/sk_interface/data_ensemble/Ensemble_skinterface.py b/tods/sk_interface/data_ensemble/Ensemble_skinterface.py new file mode 100644 index 0000000..5e3a0ce --- /dev/null +++ b/tods/sk_interface/data_ensemble/Ensemble_skinterface.py @@ -0,0 +1,43 @@ +import numpy as np +from d3m import container +from tods.detection_algorithm.Ensemble import EnsemblePrimitive +from ..base import get_default_hyperparameter + +class EnsembleSKI: + def __init__(self, **hyperparameter): + + hyperparams = get_default_hyperparameter(EnsemblePrimitive, hyperparameter) + self.primitive = EnsemblePrimitive(hyperparams=hyperparams) + + def fit(self, data): + + data = self._sys_data_check(data) + data = self._transform(data) + self.primitive.set_training_data(inputs=data) + self.primitive.fit() + + return + + def predict(self, data): + + data = self._sys_data_check(data) + data = self._transform(data) + output_data = self.primitive.produce(inputs=data).value.values + + return output_data + + def _sys_data_check(self, data): + + if type(data) is np.ndarray and data.ndim == 2 and data.shape[1] == 2: + return data + else: + raise AttributeError('Input data should be nĂ—2 numpy array.') + + def _transform(self, X): + column_name = ['timestamp','value','system_id','scores'] + X = np.concatenate((np.zeros((X.shape[0], 2)), X), axis=1) + return container.DataFrame(X, columns=column_name, generate_metadata=True) + + # def __init__(self, **hyperparams): + # super().__init__(primitive=EnsemblePrimitive, **hyperparams) + # self.system_num = None diff --git a/tods/sk_interface/data_ensemble/__init__.py b/tods/sk_interface/data_ensemble/__init__.py new file mode 100644 index 0000000..cb9039b --- /dev/null +++ b/tods/sk_interface/data_ensemble/__init__.py @@ -0,0 +1 @@ +from tods.sk_interface.data_ensemble.Ensemble_skinterface import EnsembleSKI diff --git a/tods/tods_skinterface/primitiveSKI/detection_algorithm/ABOD_skinterface.py b/tods/sk_interface/detection_algorithm/ABOD_skinterface.py similarity index 88% rename from tods/tods_skinterface/primitiveSKI/detection_algorithm/ABOD_skinterface.py rename to tods/sk_interface/detection_algorithm/ABOD_skinterface.py index 31df643..ea614a7 100644 --- a/tods/tods_skinterface/primitiveSKI/detection_algorithm/ABOD_skinterface.py +++ b/tods/sk_interface/detection_algorithm/ABOD_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.detection_algorithm.PyodABOD import ABODPrimitive class ABODSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/detection_algorithm/AutoEncoder_skinterface.py b/tods/sk_interface/detection_algorithm/AutoEncoder_skinterface.py similarity index 88% rename from tods/tods_skinterface/primitiveSKI/detection_algorithm/AutoEncoder_skinterface.py rename to tods/sk_interface/detection_algorithm/AutoEncoder_skinterface.py index 3c62a46..38870e9 100644 --- a/tods/tods_skinterface/primitiveSKI/detection_algorithm/AutoEncoder_skinterface.py +++ b/tods/sk_interface/detection_algorithm/AutoEncoder_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.detection_algorithm.PyodAE import AutoEncoderPrimitive class AutoEncoderSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/detection_algorithm/AutoRegODetector_skinterface.py b/tods/sk_interface/detection_algorithm/AutoRegODetector_skinterface.py similarity index 89% rename from tods/tods_skinterface/primitiveSKI/detection_algorithm/AutoRegODetector_skinterface.py rename to tods/sk_interface/detection_algorithm/AutoRegODetector_skinterface.py index 57c137a..8351a14 100644 --- a/tods/tods_skinterface/primitiveSKI/detection_algorithm/AutoRegODetector_skinterface.py +++ b/tods/sk_interface/detection_algorithm/AutoRegODetector_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.detection_algorithm.AutoRegODetect import AutoRegODetectorPrimitive class AutoRegODetectorSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/detection_algorithm/CBLOF_skinterface.py b/tods/sk_interface/detection_algorithm/CBLOF_skinterface.py similarity index 88% rename from tods/tods_skinterface/primitiveSKI/detection_algorithm/CBLOF_skinterface.py rename to tods/sk_interface/detection_algorithm/CBLOF_skinterface.py index d7b044d..6c65e9c 100644 --- a/tods/tods_skinterface/primitiveSKI/detection_algorithm/CBLOF_skinterface.py +++ b/tods/sk_interface/detection_algorithm/CBLOF_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.detection_algorithm.PyodCBLOF import CBLOFPrimitive class CBLOFSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/detection_algorithm/COF_skinterface.py b/tods/sk_interface/detection_algorithm/COF_skinterface.py similarity index 88% rename from tods/tods_skinterface/primitiveSKI/detection_algorithm/COF_skinterface.py rename to tods/sk_interface/detection_algorithm/COF_skinterface.py index ddcd345..7f144e0 100644 --- a/tods/tods_skinterface/primitiveSKI/detection_algorithm/COF_skinterface.py +++ b/tods/sk_interface/detection_algorithm/COF_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.detection_algorithm.PyodCOF import COFPrimitive class COFSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/detection_algorithm/DeepLog_skinterface.py b/tods/sk_interface/detection_algorithm/DeepLog_skinterface.py similarity index 88% rename from tods/tods_skinterface/primitiveSKI/detection_algorithm/DeepLog_skinterface.py rename to tods/sk_interface/detection_algorithm/DeepLog_skinterface.py index 5caac2b..30dd96e 100644 --- a/tods/tods_skinterface/primitiveSKI/detection_algorithm/DeepLog_skinterface.py +++ b/tods/sk_interface/detection_algorithm/DeepLog_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.detection_algorithm.DeepLog import DeepLogPrimitive class DeepLogSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/detection_algorithm/HBOS_skinterface.py b/tods/sk_interface/detection_algorithm/HBOS_skinterface.py similarity index 88% rename from tods/tods_skinterface/primitiveSKI/detection_algorithm/HBOS_skinterface.py rename to tods/sk_interface/detection_algorithm/HBOS_skinterface.py index 7f8c8e0..438f5bb 100644 --- a/tods/tods_skinterface/primitiveSKI/detection_algorithm/HBOS_skinterface.py +++ b/tods/sk_interface/detection_algorithm/HBOS_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.detection_algorithm.PyodHBOS import HBOSPrimitive class HBOSSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/detection_algorithm/IsolationForest_skinterface.py b/tods/sk_interface/detection_algorithm/IsolationForest_skinterface.py similarity index 89% rename from tods/tods_skinterface/primitiveSKI/detection_algorithm/IsolationForest_skinterface.py rename to tods/sk_interface/detection_algorithm/IsolationForest_skinterface.py index 0fabd9d..f9cd9e7 100644 --- a/tods/tods_skinterface/primitiveSKI/detection_algorithm/IsolationForest_skinterface.py +++ b/tods/sk_interface/detection_algorithm/IsolationForest_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.detection_algorithm.PyodIsolationForest import IsolationForestPrimitive class IsolationForestSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/detection_algorithm/KDiscordODetector_skinterface.py b/tods/sk_interface/detection_algorithm/KDiscordODetector_skinterface.py similarity index 89% rename from tods/tods_skinterface/primitiveSKI/detection_algorithm/KDiscordODetector_skinterface.py rename to tods/sk_interface/detection_algorithm/KDiscordODetector_skinterface.py index fed6cf7..dd700d4 100644 --- a/tods/tods_skinterface/primitiveSKI/detection_algorithm/KDiscordODetector_skinterface.py +++ b/tods/sk_interface/detection_algorithm/KDiscordODetector_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.detection_algorithm.KDiscordODetect import KDiscordODetectorPrimitive class KDiscordODetectorSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/detection_algorithm/KNN_skinterface.py b/tods/sk_interface/detection_algorithm/KNN_skinterface.py similarity index 88% rename from tods/tods_skinterface/primitiveSKI/detection_algorithm/KNN_skinterface.py rename to tods/sk_interface/detection_algorithm/KNN_skinterface.py index 47f4c59..624fc06 100644 --- a/tods/tods_skinterface/primitiveSKI/detection_algorithm/KNN_skinterface.py +++ b/tods/sk_interface/detection_algorithm/KNN_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.detection_algorithm.PyodKNN import KNNPrimitive class KNNSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/detection_algorithm/LODA_skinterface.py b/tods/sk_interface/detection_algorithm/LODA_skinterface.py similarity index 88% rename from tods/tods_skinterface/primitiveSKI/detection_algorithm/LODA_skinterface.py rename to tods/sk_interface/detection_algorithm/LODA_skinterface.py index c1b40fa..fb10257 100644 --- a/tods/tods_skinterface/primitiveSKI/detection_algorithm/LODA_skinterface.py +++ b/tods/sk_interface/detection_algorithm/LODA_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.detection_algorithm.PyodLODA import LODAPrimitive class LODASKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/detection_algorithm/LOF_skinterface.py b/tods/sk_interface/detection_algorithm/LOF_skinterface.py similarity index 88% rename from tods/tods_skinterface/primitiveSKI/detection_algorithm/LOF_skinterface.py rename to tods/sk_interface/detection_algorithm/LOF_skinterface.py index d9cca8c..1627d3c 100644 --- a/tods/tods_skinterface/primitiveSKI/detection_algorithm/LOF_skinterface.py +++ b/tods/sk_interface/detection_algorithm/LOF_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.detection_algorithm.PyodLOF import LOFPrimitive class LOFSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/detection_algorithm/LSTMODetector_skinterface.py b/tods/sk_interface/detection_algorithm/LSTMODetector_skinterface.py similarity index 89% rename from tods/tods_skinterface/primitiveSKI/detection_algorithm/LSTMODetector_skinterface.py rename to tods/sk_interface/detection_algorithm/LSTMODetector_skinterface.py index cbfb3cf..eede32a 100644 --- a/tods/tods_skinterface/primitiveSKI/detection_algorithm/LSTMODetector_skinterface.py +++ b/tods/sk_interface/detection_algorithm/LSTMODetector_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.detection_algorithm.LSTMODetect import LSTMODetectorPrimitive class LSTMODetectorSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/detection_algorithm/MatrixProfile_skinterface.py b/tods/sk_interface/detection_algorithm/MatrixProfile_skinterface.py similarity index 89% rename from tods/tods_skinterface/primitiveSKI/detection_algorithm/MatrixProfile_skinterface.py rename to tods/sk_interface/detection_algorithm/MatrixProfile_skinterface.py index 70126f1..9705ec2 100644 --- a/tods/tods_skinterface/primitiveSKI/detection_algorithm/MatrixProfile_skinterface.py +++ b/tods/sk_interface/detection_algorithm/MatrixProfile_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.detection_algorithm.MatrixProfile import MatrixProfilePrimitive class MatrixProfileSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/detection_algorithm/Mo_Gaal_skinterface.py b/tods/sk_interface/detection_algorithm/Mo_Gaal_skinterface.py similarity index 88% rename from tods/tods_skinterface/primitiveSKI/detection_algorithm/Mo_Gaal_skinterface.py rename to tods/sk_interface/detection_algorithm/Mo_Gaal_skinterface.py index 8c12c5a..5dd861f 100644 --- a/tods/tods_skinterface/primitiveSKI/detection_algorithm/Mo_Gaal_skinterface.py +++ b/tods/sk_interface/detection_algorithm/Mo_Gaal_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.detection_algorithm.PyodMoGaal import Mo_GaalPrimitive class Mo_GaalSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/detection_algorithm/OCSVM_skinterface.py b/tods/sk_interface/detection_algorithm/OCSVM_skinterface.py similarity index 88% rename from tods/tods_skinterface/primitiveSKI/detection_algorithm/OCSVM_skinterface.py rename to tods/sk_interface/detection_algorithm/OCSVM_skinterface.py index b2f2b13..859d228 100644 --- a/tods/tods_skinterface/primitiveSKI/detection_algorithm/OCSVM_skinterface.py +++ b/tods/sk_interface/detection_algorithm/OCSVM_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.detection_algorithm.PyodOCSVM import OCSVMPrimitive class OCSVMSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/detection_algorithm/PCAODetector_skinterface.py b/tods/sk_interface/detection_algorithm/PCAODetector_skinterface.py similarity index 89% rename from tods/tods_skinterface/primitiveSKI/detection_algorithm/PCAODetector_skinterface.py rename to tods/sk_interface/detection_algorithm/PCAODetector_skinterface.py index e515091..ca24e41 100644 --- a/tods/tods_skinterface/primitiveSKI/detection_algorithm/PCAODetector_skinterface.py +++ b/tods/sk_interface/detection_algorithm/PCAODetector_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.detection_algorithm.PCAODetect import PCAODetectorPrimitive class PCAODetectorSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/detection_algorithm/SOD_skinterface.py b/tods/sk_interface/detection_algorithm/SOD_skinterface.py similarity index 88% rename from tods/tods_skinterface/primitiveSKI/detection_algorithm/SOD_skinterface.py rename to tods/sk_interface/detection_algorithm/SOD_skinterface.py index ee4d2f1..1bd33e1 100644 --- a/tods/tods_skinterface/primitiveSKI/detection_algorithm/SOD_skinterface.py +++ b/tods/sk_interface/detection_algorithm/SOD_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.detection_algorithm.PyodSOD import SODPrimitive class SODSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/detection_algorithm/So_Gaal_skinterface.py b/tods/sk_interface/detection_algorithm/So_Gaal_skinterface.py similarity index 88% rename from tods/tods_skinterface/primitiveSKI/detection_algorithm/So_Gaal_skinterface.py rename to tods/sk_interface/detection_algorithm/So_Gaal_skinterface.py index 717466a..499633f 100644 --- a/tods/tods_skinterface/primitiveSKI/detection_algorithm/So_Gaal_skinterface.py +++ b/tods/sk_interface/detection_algorithm/So_Gaal_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.detection_algorithm.PyodSoGaal import So_GaalPrimitive class So_GaalSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/detection_algorithm/SystemWiseDetection_skinterface.py b/tods/sk_interface/detection_algorithm/SystemWiseDetection_skinterface.py similarity index 89% rename from tods/tods_skinterface/primitiveSKI/detection_algorithm/SystemWiseDetection_skinterface.py rename to tods/sk_interface/detection_algorithm/SystemWiseDetection_skinterface.py index 90ca9b5..5f39dbe 100644 --- a/tods/tods_skinterface/primitiveSKI/detection_algorithm/SystemWiseDetection_skinterface.py +++ b/tods/sk_interface/detection_algorithm/SystemWiseDetection_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.detection_algorithm.SystemWiseDetection import SystemWiseDetectionPrimitive class SystemWiseDetectionSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/detection_algorithm/Telemanom_skinterface.py b/tods/sk_interface/detection_algorithm/Telemanom_skinterface.py similarity index 88% rename from tods/tods_skinterface/primitiveSKI/detection_algorithm/Telemanom_skinterface.py rename to tods/sk_interface/detection_algorithm/Telemanom_skinterface.py index c6236bc..e8bd46b 100644 --- a/tods/tods_skinterface/primitiveSKI/detection_algorithm/Telemanom_skinterface.py +++ b/tods/sk_interface/detection_algorithm/Telemanom_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.detection_algorithm.Telemanom import TelemanomPrimitive class TelemanomSKI(BaseSKI): @@ -8,4 +8,3 @@ class TelemanomSKI(BaseSKI): self.fit_available = True self.predict_available = True self.produce_available = False - diff --git a/tods/tods_skinterface/primitiveSKI/detection_algorithm/VariationalAutoEncoder_skinterface.py b/tods/sk_interface/detection_algorithm/VariationalAutoEncoder_skinterface.py similarity index 89% rename from tods/tods_skinterface/primitiveSKI/detection_algorithm/VariationalAutoEncoder_skinterface.py rename to tods/sk_interface/detection_algorithm/VariationalAutoEncoder_skinterface.py index faf2385..9164e2c 100644 --- a/tods/tods_skinterface/primitiveSKI/detection_algorithm/VariationalAutoEncoder_skinterface.py +++ b/tods/sk_interface/detection_algorithm/VariationalAutoEncoder_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.detection_algorithm.PyodVAE import VariationalAutoEncoderPrimitive class VariationalAutoEncoderSKI(BaseSKI): diff --git a/tods/sk_interface/detection_algorithm/__init__.py b/tods/sk_interface/detection_algorithm/__init__.py new file mode 100644 index 0000000..735865a --- /dev/null +++ b/tods/sk_interface/detection_algorithm/__init__.py @@ -0,0 +1,22 @@ +from tods.sk_interface.detection_algorithm.ABOD_skinterface import ABODSKI +from tods.sk_interface.detection_algorithm.AutoEncoder_skinterface import AutoEncoderSKI +from tods.sk_interface.detection_algorithm.AutoRegODetector_skinterface import AutoRegODetectorSKI +from tods.sk_interface.detection_algorithm.CBLOF_skinterface import CBLOFSKI +from tods.sk_interface.detection_algorithm.COF_skinterface import COFSKI +from tods.sk_interface.detection_algorithm.DeepLog_skinterface import DeepLogSKI +from tods.sk_interface.detection_algorithm.HBOS_skinterface import HBOSSKI +from tods.sk_interface.detection_algorithm.IsolationForest_skinterface import IsolationForestSKI +from tods.sk_interface.detection_algorithm.KDiscordODetector_skinterface import KDiscordODetectorSKI +from tods.sk_interface.detection_algorithm.KNN_skinterface import KNNSKI +from tods.sk_interface.detection_algorithm.LODA_skinterface import LODASKI +from tods.sk_interface.detection_algorithm.LOF_skinterface import LOFSKI +from tods.sk_interface.detection_algorithm.LSTMODetector_skinterface import LSTMODetectorSKI +from tods.sk_interface.detection_algorithm.MatrixProfile_skinterface import MatrixProfileSKI +from tods.sk_interface.detection_algorithm.Mo_Gaal_skinterface import Mo_GaalSKI +from tods.sk_interface.detection_algorithm.OCSVM_skinterface import OCSVMSKI +from tods.sk_interface.detection_algorithm.PCAODetector_skinterface import PCAODetectorSKI +from tods.sk_interface.detection_algorithm.SOD_skinterface import SODSKI +from tods.sk_interface.detection_algorithm.So_Gaal_skinterface import So_GaalSKI +from tods.sk_interface.detection_algorithm.SystemWiseDetection_skinterface import SystemWiseDetectionSKI +from tods.sk_interface.detection_algorithm.Telemanom_skinterface import TelemanomSKI +from tods.sk_interface.detection_algorithm.VariationalAutoEncoder_skinterface import VariationalAutoEncoderSKI diff --git a/tods/tods_skinterface/primitiveSKI/feature_analysis/AutoCorrelation_skinterface.py b/tods/sk_interface/feature_analysis/AutoCorrelation_skinterface.py similarity index 89% rename from tods/tods_skinterface/primitiveSKI/feature_analysis/AutoCorrelation_skinterface.py rename to tods/sk_interface/feature_analysis/AutoCorrelation_skinterface.py index 8e7e5c8..f1c136f 100644 --- a/tods/tods_skinterface/primitiveSKI/feature_analysis/AutoCorrelation_skinterface.py +++ b/tods/sk_interface/feature_analysis/AutoCorrelation_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.feature_analysis.AutoCorrelation import AutoCorrelationPrimitive class AutoCorrelationSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/feature_analysis/BKFilter_skinterface.py b/tods/sk_interface/feature_analysis/BKFilter_skinterface.py similarity index 88% rename from tods/tods_skinterface/primitiveSKI/feature_analysis/BKFilter_skinterface.py rename to tods/sk_interface/feature_analysis/BKFilter_skinterface.py index ed05521..2dd1431 100644 --- a/tods/tods_skinterface/primitiveSKI/feature_analysis/BKFilter_skinterface.py +++ b/tods/sk_interface/feature_analysis/BKFilter_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.feature_analysis.BKFilter import BKFilterPrimitive class BKFilterSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/feature_analysis/DiscreteCosineTransform_skinterface.py b/tods/sk_interface/feature_analysis/DiscreteCosineTransform_skinterface.py similarity index 90% rename from tods/tods_skinterface/primitiveSKI/feature_analysis/DiscreteCosineTransform_skinterface.py rename to tods/sk_interface/feature_analysis/DiscreteCosineTransform_skinterface.py index f667bb5..f0f3e93 100644 --- a/tods/tods_skinterface/primitiveSKI/feature_analysis/DiscreteCosineTransform_skinterface.py +++ b/tods/sk_interface/feature_analysis/DiscreteCosineTransform_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.feature_analysis.DiscreteCosineTransform import DiscreteCosineTransformPrimitive class DiscreteCosineTransformSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/feature_analysis/FastFourierTransform_skinterface.py b/tods/sk_interface/feature_analysis/FastFourierTransform_skinterface.py similarity index 90% rename from tods/tods_skinterface/primitiveSKI/feature_analysis/FastFourierTransform_skinterface.py rename to tods/sk_interface/feature_analysis/FastFourierTransform_skinterface.py index e54fe57..7ef8cc5 100644 --- a/tods/tods_skinterface/primitiveSKI/feature_analysis/FastFourierTransform_skinterface.py +++ b/tods/sk_interface/feature_analysis/FastFourierTransform_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.feature_analysis.FastFourierTransform import FastFourierTransformPrimitive class FastFourierTransformSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/feature_analysis/HPFilter_skinterface.py b/tods/sk_interface/feature_analysis/HPFilter_skinterface.py similarity index 88% rename from tods/tods_skinterface/primitiveSKI/feature_analysis/HPFilter_skinterface.py rename to tods/sk_interface/feature_analysis/HPFilter_skinterface.py index b137521..2a15219 100644 --- a/tods/tods_skinterface/primitiveSKI/feature_analysis/HPFilter_skinterface.py +++ b/tods/sk_interface/feature_analysis/HPFilter_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.feature_analysis.HPFilter import HPFilterPrimitive class HPFilterSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/feature_analysis/NonNegativeMatrixFactorization_skinterface.py b/tods/sk_interface/feature_analysis/NonNegativeMatrixFactorization_skinterface.py similarity index 90% rename from tods/tods_skinterface/primitiveSKI/feature_analysis/NonNegativeMatrixFactorization_skinterface.py rename to tods/sk_interface/feature_analysis/NonNegativeMatrixFactorization_skinterface.py index b5a2b7e..6287f00 100644 --- a/tods/tods_skinterface/primitiveSKI/feature_analysis/NonNegativeMatrixFactorization_skinterface.py +++ b/tods/sk_interface/feature_analysis/NonNegativeMatrixFactorization_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.feature_analysis.NonNegativeMatrixFactorization import NonNegativeMatrixFactorizationPrimitive class NonNegativeMatrixFactorizationSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/feature_analysis/SKTruncatedSVD_skinterface.py b/tods/sk_interface/feature_analysis/SKTruncatedSVD_skinterface.py similarity index 81% rename from tods/tods_skinterface/primitiveSKI/feature_analysis/SKTruncatedSVD_skinterface.py rename to tods/sk_interface/feature_analysis/SKTruncatedSVD_skinterface.py index e0c57a8..24144a3 100644 --- a/tods/tods_skinterface/primitiveSKI/feature_analysis/SKTruncatedSVD_skinterface.py +++ b/tods/sk_interface/feature_analysis/SKTruncatedSVD_skinterface.py @@ -1,10 +1,10 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.feature_analysis.SKTruncatedSVD import SKTruncatedSVDPrimitive class SKTruncatedSVDSKI(BaseSKI): def __init__(self, **hyperparams): super().__init__(primitive=SKTruncatedSVDPrimitive, **hyperparams) - self.fit_available = False + self.fit_available = True self.predict_available = False self.produce_available = True diff --git a/tods/tods_skinterface/primitiveSKI/feature_analysis/SpectralResidualTransform_skinterface.py b/tods/sk_interface/feature_analysis/SpectralResidualTransform_skinterface.py similarity index 90% rename from tods/tods_skinterface/primitiveSKI/feature_analysis/SpectralResidualTransform_skinterface.py rename to tods/sk_interface/feature_analysis/SpectralResidualTransform_skinterface.py index dfb9127..4163be7 100644 --- a/tods/tods_skinterface/primitiveSKI/feature_analysis/SpectralResidualTransform_skinterface.py +++ b/tods/sk_interface/feature_analysis/SpectralResidualTransform_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.feature_analysis.SpectralResidualTransform import SpectralResidualTransformPrimitive class SpectralResidualTransformSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalAbsEnergy_skinterface.py b/tods/sk_interface/feature_analysis/StatisticalAbsEnergy_skinterface.py similarity index 90% rename from tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalAbsEnergy_skinterface.py rename to tods/sk_interface/feature_analysis/StatisticalAbsEnergy_skinterface.py index 9596f54..48638bc 100644 --- a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalAbsEnergy_skinterface.py +++ b/tods/sk_interface/feature_analysis/StatisticalAbsEnergy_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.feature_analysis.StatisticalAbsEnergy import StatisticalAbsEnergyPrimitive class StatisticalAbsEnergySKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalAbsSum_skinterface.py b/tods/sk_interface/feature_analysis/StatisticalAbsSum_skinterface.py similarity index 89% rename from tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalAbsSum_skinterface.py rename to tods/sk_interface/feature_analysis/StatisticalAbsSum_skinterface.py index 707dab3..2bc5ec9 100644 --- a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalAbsSum_skinterface.py +++ b/tods/sk_interface/feature_analysis/StatisticalAbsSum_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.feature_analysis.StatisticalAbsSum import StatisticalAbsSumPrimitive class StatisticalAbsSumSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalGmean_skinterface.py b/tods/sk_interface/feature_analysis/StatisticalGmean_skinterface.py similarity index 89% rename from tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalGmean_skinterface.py rename to tods/sk_interface/feature_analysis/StatisticalGmean_skinterface.py index 412e43b..4b250eb 100644 --- a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalGmean_skinterface.py +++ b/tods/sk_interface/feature_analysis/StatisticalGmean_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.feature_analysis.StatisticalGmean import StatisticalGmeanPrimitive class StatisticalGmeanSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalHmean_skinterface.py b/tods/sk_interface/feature_analysis/StatisticalHmean_skinterface.py similarity index 89% rename from tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalHmean_skinterface.py rename to tods/sk_interface/feature_analysis/StatisticalHmean_skinterface.py index 36d9242..bdd94a5 100644 --- a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalHmean_skinterface.py +++ b/tods/sk_interface/feature_analysis/StatisticalHmean_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.feature_analysis.StatisticalHmean import StatisticalHmeanPrimitive class StatisticalHmeanSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalKurtosis_skinterface.py b/tods/sk_interface/feature_analysis/StatisticalKurtosis_skinterface.py similarity index 89% rename from tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalKurtosis_skinterface.py rename to tods/sk_interface/feature_analysis/StatisticalKurtosis_skinterface.py index 2db67c9..ef27f9e 100644 --- a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalKurtosis_skinterface.py +++ b/tods/sk_interface/feature_analysis/StatisticalKurtosis_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.feature_analysis.StatisticalKurtosis import StatisticalKurtosisPrimitive class StatisticalKurtosisSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalMaximum_skinterface.py b/tods/sk_interface/feature_analysis/StatisticalMaximum_skinterface.py similarity index 89% rename from tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalMaximum_skinterface.py rename to tods/sk_interface/feature_analysis/StatisticalMaximum_skinterface.py index 41f86cf..9dcd1b1 100644 --- a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalMaximum_skinterface.py +++ b/tods/sk_interface/feature_analysis/StatisticalMaximum_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.feature_analysis.StatisticalMaximum import StatisticalMaximumPrimitive class StatisticalMaximumSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalMeanAbsTemporalDerivative_skinterface.py b/tods/sk_interface/feature_analysis/StatisticalMeanAbsTemporalDerivative_skinterface.py similarity index 91% rename from tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalMeanAbsTemporalDerivative_skinterface.py rename to tods/sk_interface/feature_analysis/StatisticalMeanAbsTemporalDerivative_skinterface.py index 39489eb..3efd0b0 100644 --- a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalMeanAbsTemporalDerivative_skinterface.py +++ b/tods/sk_interface/feature_analysis/StatisticalMeanAbsTemporalDerivative_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.feature_analysis.StatisticalMeanAbsTemporalDerivative import StatisticalMeanAbsTemporalDerivativePrimitive class StatisticalMeanAbsTemporalDerivativeSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalMeanAbs_skinterface.py b/tods/sk_interface/feature_analysis/StatisticalMeanAbs_skinterface.py similarity index 89% rename from tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalMeanAbs_skinterface.py rename to tods/sk_interface/feature_analysis/StatisticalMeanAbs_skinterface.py index d510f0d..1054d6a 100644 --- a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalMeanAbs_skinterface.py +++ b/tods/sk_interface/feature_analysis/StatisticalMeanAbs_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.feature_analysis.StatisticalMeanAbs import StatisticalMeanAbsPrimitive class StatisticalMeanAbsSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalMeanTemporalDerivative_skinterface.py b/tods/sk_interface/feature_analysis/StatisticalMeanTemporalDerivative_skinterface.py similarity index 91% rename from tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalMeanTemporalDerivative_skinterface.py rename to tods/sk_interface/feature_analysis/StatisticalMeanTemporalDerivative_skinterface.py index 9eb3e23..01d2198 100644 --- a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalMeanTemporalDerivative_skinterface.py +++ b/tods/sk_interface/feature_analysis/StatisticalMeanTemporalDerivative_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.feature_analysis.StatisticalMeanTemporalDerivative import StatisticalMeanTemporalDerivativePrimitive class StatisticalMeanTemporalDerivativeSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalMean_skinterface.py b/tods/sk_interface/feature_analysis/StatisticalMean_skinterface.py similarity index 89% rename from tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalMean_skinterface.py rename to tods/sk_interface/feature_analysis/StatisticalMean_skinterface.py index 9fc5e06..ac555fb 100644 --- a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalMean_skinterface.py +++ b/tods/sk_interface/feature_analysis/StatisticalMean_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.feature_analysis.StatisticalMean import StatisticalMeanPrimitive class StatisticalMeanSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalMedianAbsoluteDeviation_skinterface.py b/tods/sk_interface/feature_analysis/StatisticalMedianAbsoluteDeviation_skinterface.py similarity index 91% rename from tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalMedianAbsoluteDeviation_skinterface.py rename to tods/sk_interface/feature_analysis/StatisticalMedianAbsoluteDeviation_skinterface.py index 13a6d57..6481c10 100644 --- a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalMedianAbsoluteDeviation_skinterface.py +++ b/tods/sk_interface/feature_analysis/StatisticalMedianAbsoluteDeviation_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.feature_analysis.StatisticalMedianAbsoluteDeviation import StatisticalMedianAbsoluteDeviationPrimitive class StatisticalMedianAbsoluteDeviationSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalMedian_skinterface.py b/tods/sk_interface/feature_analysis/StatisticalMedian_skinterface.py similarity index 89% rename from tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalMedian_skinterface.py rename to tods/sk_interface/feature_analysis/StatisticalMedian_skinterface.py index 4b7b8d1..80df8d0 100644 --- a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalMedian_skinterface.py +++ b/tods/sk_interface/feature_analysis/StatisticalMedian_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.feature_analysis.StatisticalMedian import StatisticalMedianPrimitive class StatisticalMedianSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalMinimum_skinterface.py b/tods/sk_interface/feature_analysis/StatisticalMinimum_skinterface.py similarity index 89% rename from tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalMinimum_skinterface.py rename to tods/sk_interface/feature_analysis/StatisticalMinimum_skinterface.py index d0a40d1..03eda26 100644 --- a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalMinimum_skinterface.py +++ b/tods/sk_interface/feature_analysis/StatisticalMinimum_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.feature_analysis.StatisticalMinimum import StatisticalMinimumPrimitive class StatisticalMinimumSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalSkew_skinterface.py b/tods/sk_interface/feature_analysis/StatisticalSkew_skinterface.py similarity index 89% rename from tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalSkew_skinterface.py rename to tods/sk_interface/feature_analysis/StatisticalSkew_skinterface.py index 94321e1..e698d2d 100644 --- a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalSkew_skinterface.py +++ b/tods/sk_interface/feature_analysis/StatisticalSkew_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.feature_analysis.StatisticalSkew import StatisticalSkewPrimitive class StatisticalSkewSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalStd_skinterface.py b/tods/sk_interface/feature_analysis/StatisticalStd_skinterface.py similarity index 89% rename from tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalStd_skinterface.py rename to tods/sk_interface/feature_analysis/StatisticalStd_skinterface.py index a586fa2..23c69c8 100644 --- a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalStd_skinterface.py +++ b/tods/sk_interface/feature_analysis/StatisticalStd_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.feature_analysis.StatisticalStd import StatisticalStdPrimitive class StatisticalStdSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalVar_skinterface.py b/tods/sk_interface/feature_analysis/StatisticalVar_skinterface.py similarity index 89% rename from tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalVar_skinterface.py rename to tods/sk_interface/feature_analysis/StatisticalVar_skinterface.py index c683fcc..dcbe8ea 100644 --- a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalVar_skinterface.py +++ b/tods/sk_interface/feature_analysis/StatisticalVar_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.feature_analysis.StatisticalVar import StatisticalVarPrimitive class StatisticalVarSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalVariation_skinterface.py b/tods/sk_interface/feature_analysis/StatisticalVariation_skinterface.py similarity index 90% rename from tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalVariation_skinterface.py rename to tods/sk_interface/feature_analysis/StatisticalVariation_skinterface.py index 38c7b81..2dd4056 100644 --- a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalVariation_skinterface.py +++ b/tods/sk_interface/feature_analysis/StatisticalVariation_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.feature_analysis.StatisticalVariation import StatisticalVariationPrimitive class StatisticalVariationSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalVecSum_skinterface.py b/tods/sk_interface/feature_analysis/StatisticalVecSum_skinterface.py similarity index 89% rename from tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalVecSum_skinterface.py rename to tods/sk_interface/feature_analysis/StatisticalVecSum_skinterface.py index 31a6197..2da9d9a 100644 --- a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalVecSum_skinterface.py +++ b/tods/sk_interface/feature_analysis/StatisticalVecSum_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.feature_analysis.StatisticalVecSum import StatisticalVecSumPrimitive class StatisticalVecSumSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalWillisonAmplitude_skinterface.py b/tods/sk_interface/feature_analysis/StatisticalWillisonAmplitude_skinterface.py similarity index 90% rename from tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalWillisonAmplitude_skinterface.py rename to tods/sk_interface/feature_analysis/StatisticalWillisonAmplitude_skinterface.py index c03dafe..54643b4 100644 --- a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalWillisonAmplitude_skinterface.py +++ b/tods/sk_interface/feature_analysis/StatisticalWillisonAmplitude_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.feature_analysis.StatisticalWillisonAmplitude import StatisticalWillisonAmplitudePrimitive class StatisticalWillisonAmplitudeSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalZeroCrossing_skinterface.py b/tods/sk_interface/feature_analysis/StatisticalZeroCrossing_skinterface.py similarity index 90% rename from tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalZeroCrossing_skinterface.py rename to tods/sk_interface/feature_analysis/StatisticalZeroCrossing_skinterface.py index 4798e17..0595668 100644 --- a/tods/tods_skinterface/primitiveSKI/feature_analysis/StatisticalZeroCrossing_skinterface.py +++ b/tods/sk_interface/feature_analysis/StatisticalZeroCrossing_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.feature_analysis.StatisticalZeroCrossing import StatisticalZeroCrossingPrimitive class StatisticalZeroCrossingSKI(BaseSKI): diff --git a/tods/tods_skinterface/primitiveSKI/feature_analysis/TRMF_skinterface.py b/tods/sk_interface/feature_analysis/TRMF_skinterface.py similarity index 79% rename from tods/tods_skinterface/primitiveSKI/feature_analysis/TRMF_skinterface.py rename to tods/sk_interface/feature_analysis/TRMF_skinterface.py index 38200d9..2d2a1cf 100644 --- a/tods/tods_skinterface/primitiveSKI/feature_analysis/TRMF_skinterface.py +++ b/tods/sk_interface/feature_analysis/TRMF_skinterface.py @@ -1,10 +1,10 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.feature_analysis.TRMF import TRMFPrimitive class TRMFSKI(BaseSKI): def __init__(self, **hyperparams): super().__init__(primitive=TRMFPrimitive, **hyperparams) - self.fit_available = False + self.fit_available = True self.predict_available = False self.produce_available = True diff --git a/tods/tods_skinterface/primitiveSKI/feature_analysis/WaveletTransform_skinterface.py b/tods/sk_interface/feature_analysis/WaveletTransform_skinterface.py similarity index 89% rename from tods/tods_skinterface/primitiveSKI/feature_analysis/WaveletTransform_skinterface.py rename to tods/sk_interface/feature_analysis/WaveletTransform_skinterface.py index df4848f..b1b63b4 100644 --- a/tods/tods_skinterface/primitiveSKI/feature_analysis/WaveletTransform_skinterface.py +++ b/tods/sk_interface/feature_analysis/WaveletTransform_skinterface.py @@ -1,5 +1,5 @@ import numpy as np -from ..Base_skinterface import BaseSKI +from ..base import BaseSKI from tods.feature_analysis.WaveletTransform import WaveletTransformPrimitive class WaveletTransformSKI(BaseSKI): diff --git a/tods/sk_interface/feature_analysis/__init__.py b/tods/sk_interface/feature_analysis/__init__.py new file mode 100644 index 0000000..6bdb208 --- /dev/null +++ b/tods/sk_interface/feature_analysis/__init__.py @@ -0,0 +1,30 @@ +from tods.sk_interface.feature_analysis.AutoCorrelation_skinterface import AutoCorrelationSKI +from tods.sk_interface.feature_analysis.BKFilter_skinterface import BKFilterSKI +from tods.sk_interface.feature_analysis.DiscreteCosineTransform_skinterface import DiscreteCosineTransformSKI +from tods.sk_interface.feature_analysis.FastFourierTransform_skinterface import FastFourierTransformSKI +from tods.sk_interface.feature_analysis.HPFilter_skinterface import HPFilterSKI +from tods.sk_interface.feature_analysis.NonNegativeMatrixFactorization_skinterface import NonNegativeMatrixFactorizationSKI +from tods.sk_interface.feature_analysis.SKTruncatedSVD_skinterface import SKTruncatedSVDSKI +from tods.sk_interface.feature_analysis.SpectralResidualTransform_skinterface import SpectralResidualTransformSKI +from tods.sk_interface.feature_analysis.StatisticalAbsEnergy_skinterface import StatisticalAbsEnergySKI +from tods.sk_interface.feature_analysis.StatisticalAbsSum_skinterface import StatisticalAbsSumSKI +from tods.sk_interface.feature_analysis.StatisticalGmean_skinterface import StatisticalGmeanSKI +from tods.sk_interface.feature_analysis.StatisticalHmean_skinterface import StatisticalHmeanSKI +from tods.sk_interface.feature_analysis.StatisticalKurtosis_skinterface import StatisticalKurtosisSKI +from tods.sk_interface.feature_analysis.StatisticalMaximum_skinterface import StatisticalMaximumSKI +from tods.sk_interface.feature_analysis.StatisticalMeanAbsTemporalDerivative_skinterface import StatisticalMeanAbsTemporalDerivativeSKI +from tods.sk_interface.feature_analysis.StatisticalMeanAbs_skinterface import StatisticalMeanAbsSKI +from tods.sk_interface.feature_analysis.StatisticalMeanTemporalDerivative_skinterface import StatisticalMeanTemporalDerivativeSKI +from tods.sk_interface.feature_analysis.StatisticalMean_skinterface import StatisticalMeanSKI +from tods.sk_interface.feature_analysis.StatisticalMedianAbsoluteDeviation_skinterface import StatisticalMedianAbsoluteDeviationSKI +from tods.sk_interface.feature_analysis.StatisticalMedian_skinterface import StatisticalMedianSKI +from tods.sk_interface.feature_analysis.StatisticalMinimum_skinterface import StatisticalMinimumSKI +from tods.sk_interface.feature_analysis.StatisticalSkew_skinterface import StatisticalSkewSKI +from tods.sk_interface.feature_analysis.StatisticalStd_skinterface import StatisticalStdSKI +from tods.sk_interface.feature_analysis.StatisticalVar_skinterface import StatisticalVarSKI +from tods.sk_interface.feature_analysis.StatisticalVariation_skinterface import StatisticalVariationSKI +from tods.sk_interface.feature_analysis.StatisticalVecSum_skinterface import StatisticalVecSumSKI +from tods.sk_interface.feature_analysis.StatisticalWillisonAmplitude_skinterface import StatisticalWillisonAmplitudeSKI +from tods.sk_interface.feature_analysis.StatisticalZeroCrossing_skinterface import StatisticalZeroCrossingSKI +from tods.sk_interface.feature_analysis.TRMF_skinterface import TRMFSKI +from tods.sk_interface.feature_analysis.WaveletTransform_skinterface import WaveletTransformSKI diff --git a/tods/tods_skinterface/script/detection_algorithm_skinterface_generation.py b/tods/sk_interface/script/detection_algorithm_skinterface_generation.py similarity index 91% rename from tods/tods_skinterface/script/detection_algorithm_skinterface_generation.py rename to tods/sk_interface/script/detection_algorithm_skinterface_generation.py index 257e3e2..4872749 100644 --- a/tods/tods_skinterface/script/detection_algorithm_skinterface_generation.py +++ b/tods/sk_interface/script/detection_algorithm_skinterface_generation.py @@ -2,7 +2,7 @@ import re import os -with open('../entry_points/entry_points_detection_algorithm.txt','r',encoding='utf-8') as f: +with open('../utils/entry_points/entry_points_detection_algorithm.txt','r',encoding='utf-8') as f: entry_file = f.read() output_dir = '../primitiveSKI/detection_algorithm' @@ -22,7 +22,7 @@ for primitive_index, primitive_start_loc in enumerate(primitive_start_loc_buf): # print(entry_file[primitive_folder_start_loc:primitive_start_loc-1]) # print(entry_file[primitive_start_loc:primitive_end_loc]) - import_line1 = 'import numpy as np \nfrom ..Base_skinterface import BaseSKI\n' + import_line1 = 'import numpy as np \nfrom ..base import BaseSKI\n' import_line2 = 'from ' + primitive_folder + ' import ' + primitive_name + '\n\n' # print(import_line) diff --git a/tods/sk_interface/script/detection_algorithm_skitest_generation.py b/tods/sk_interface/script/detection_algorithm_skitest_generation.py new file mode 100644 index 0000000..aecd71f --- /dev/null +++ b/tods/sk_interface/script/detection_algorithm_skitest_generation.py @@ -0,0 +1,85 @@ +#this file generates the _main.py files to test the primitives +import re +import os +import sys +#sys.path.insert(0, 'tods/utils/skinterface') +print(sys.path) +with open('../utils/entry_points/entry_points_detection_algorithm.txt','r',encoding='utf-8') as f: + entry_file = f.read() + +output_dir = '../test/detection_algorithm' #output directory + + +primitive_folder_start_loc_buf = [i.start()+2 for i in re.finditer('=', entry_file)] +primitive_start_loc_buf = [i.start()+1 for i in re.finditer(':', entry_file)] +primitive_end_loc_buf = [i.start() for i in re.finditer('\n', entry_file)] + +for primitive_index, primitive_start_loc in enumerate(primitive_start_loc_buf): + + primitive_folder_start_loc = primitive_folder_start_loc_buf[primitive_index] + primitive_end_loc = primitive_end_loc_buf[primitive_index] + + primitive_folder = entry_file[primitive_folder_start_loc:primitive_start_loc-1] + primitive_name = entry_file[primitive_start_loc:primitive_end_loc] + algorithm_name = primitive_name.replace('Primitive', '') + + # print(entry_file[primitive_folder_start_loc:primitive_start_loc-1]) + # print(entry_file[primitive_start_loc:primitive_end_loc]) + + primitve_api_name = primitive_name.replace('Primitive', '_skinterface') + class_name = primitive_name.replace('Primitive', 'SKI') + + import_line1 = """import numpy as np +import pandas as pd +import os +""" + 'from tods.sk_interface.detection_algorithm.'+ primitve_api_name + ' import ' + class_name + '\n\n' + + import_line2 = """from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score\n +""" + + main_line1 = 'class ' + algorithm_name + 'SKI_TestCase(unittest.TestCase):\n' + \ +""" def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42)\n +""" + + main_line2 = ' self.transformer = ' + class_name + '(contamination=self.contamination)\n self.transformer.fit(self.X_train)\n\n' + main_line3 = """ def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() +""" + + python_content = import_line1 + import_line2 + main_line1+main_line2+main_line3 + python_name = 'test_ski_' + algorithm_name + '.py' + + with open(os.path.join(output_dir, python_name), 'w', encoding='utf-8') as f: + f.write(python_content) + print(os.path.join(output_dir, python_name)) + print(python_content) + + diff --git a/tods/tods_skinterface/script/feature_analysis_skinterface_generation.py b/tods/sk_interface/script/feature_analysis_skinterface_generation.py similarity index 73% rename from tods/tods_skinterface/script/feature_analysis_skinterface_generation.py rename to tods/sk_interface/script/feature_analysis_skinterface_generation.py index 8d0b364..35d1f35 100644 --- a/tods/tods_skinterface/script/feature_analysis_skinterface_generation.py +++ b/tods/sk_interface/script/feature_analysis_skinterface_generation.py @@ -2,11 +2,12 @@ import re import os -with open('../entry_points/entry_points_feature_analysis.txt','r',encoding='utf-8') as f: +with open('../utils/entry_points/entry_points_feature_analysis.txt','r',encoding='utf-8') as f: entry_file = f.read() output_dir = '../primitiveSKI/feature_analysis' +fit_available_primitives = ['TRMFPrimitive', 'SKTruncatedSVDPrimitive'] primitive_folder_start_loc_buf = [i.start()+2 for i in re.finditer('=', entry_file)] primitive_start_loc_buf = [i.start()+1 for i in re.finditer(':', entry_file)] @@ -22,14 +23,18 @@ for primitive_index, primitive_start_loc in enumerate(primitive_start_loc_buf): # print(entry_file[primitive_folder_start_loc:primitive_start_loc-1]) # print(entry_file[primitive_start_loc:primitive_end_loc]) - import_line1 = 'import numpy as np \nfrom ..Base_skinterface import BaseSKI\n' + import_line1 = 'import numpy as np \nfrom ..base import BaseSKI\n' import_line2 = 'from ' + primitive_folder + ' import ' + primitive_name + '\n\n' # print(import_line) class_name = primitive_name.replace('Primitive', 'SKI') class_line1 = 'class ' + class_name + '(BaseSKI):\n\tdef __init__(self, **hyperparams):\n\t\tsuper().__init__(primitive=' class_line2 = primitive_name + ', **hyperparams)\n' - class_line3 = '\t\tself.fit_available = False\n\t\tself.predict_available = False\n\t\tself.produce_available = True\n' + + if primitive_name in fit_available_primitives: + class_line3 = '\t\tself.fit_available = True\n\t\tself.predict_available = False\n\t\tself.produce_available = True\n' + else: + class_line3 = '\t\tself.fit_available = False\n\t\tself.predict_available = False\n\t\tself.produce_available = True\n' python_content = import_line1 + import_line2 + class_line1 + class_line2 + class_line3 python_name = primitive_name.replace('Primitive', '_skinterface.py') diff --git a/tods/sk_interface/script/feature_analysis_skitest_generation.py b/tods/sk_interface/script/feature_analysis_skitest_generation.py new file mode 100644 index 0000000..fe1f36d --- /dev/null +++ b/tods/sk_interface/script/feature_analysis_skitest_generation.py @@ -0,0 +1,84 @@ +#this file generates the _main.py files to test the primitives +import re +import os +import sys +#sys.path.insert(0, 'tods/utils/skinterface') +print(sys.path) +with open('../utils/entry_points/entry_points_feature_analysis.txt','r',encoding='utf-8') as f: + entry_file = f.read() + +output_dir = '../test/feature_analysis' #output directory + +fit_available_primitives = ['SKTruncatedSVDPrimitive'] + +primitive_folder_start_loc_buf = [i.start()+2 for i in re.finditer('=', entry_file)] +primitive_start_loc_buf = [i.start()+1 for i in re.finditer(':', entry_file)] +primitive_end_loc_buf = [i.start() for i in re.finditer('\n', entry_file)] + +for primitive_index, primitive_start_loc in enumerate(primitive_start_loc_buf): + + primitive_folder_start_loc = primitive_folder_start_loc_buf[primitive_index] + primitive_end_loc = primitive_end_loc_buf[primitive_index] + + primitive_folder = entry_file[primitive_folder_start_loc:primitive_start_loc-1] + primitive_name = entry_file[primitive_start_loc:primitive_end_loc] + algorithm_name = primitive_name.replace('Primitive', '') + + # print(entry_file[primitive_folder_start_loc:primitive_start_loc-1]) + # print(entry_file[primitive_start_loc:primitive_end_loc]) + + primitve_api_name = primitive_name.replace('Primitive', '_skinterface') + class_name = primitive_name.replace('Primitive', 'SKI') + + import_line1 = """import numpy as np +import pandas as pd +import os +""" + 'from tods.sk_interface.feature_analysis.' + primitve_api_name + ' import ' + class_name + '\n\n' + + import_line2 = """from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score\n +""" + + main_line1 = 'class ' + algorithm_name + 'SKI_TestCase(unittest.TestCase):\n' + \ +""" def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42)\n +""" + + main_line2 = ' self.transformer = ' + class_name + '()\n' + if primitive_name in fit_available_primitives: + main_line3 = ' self.transformer.fit(self.X_train)\n\n' + else: + main_line3 = '\n' + + main_line4 = """ def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() +""" + + python_content = import_line1 + import_line2 + main_line1+main_line2+main_line3+main_line4 + python_name = 'test_ski_' + algorithm_name + '.py' + + with open(os.path.join(output_dir, python_name), 'w', encoding='utf-8') as f: + f.write(python_content) + print(os.path.join(output_dir, python_name)) + print(python_content) + + + diff --git a/tods/tods_skinterface/__init__.py b/tods/sk_interface/test/detection_algorithm/__init__.py similarity index 100% rename from tods/tods_skinterface/__init__.py rename to tods/sk_interface/test/detection_algorithm/__init__.py diff --git a/tods/sk_interface/test/detection_algorithm/run_tests.py b/tods/sk_interface/test/detection_algorithm/run_tests.py new file mode 100755 index 0000000..16e2374 --- /dev/null +++ b/tods/sk_interface/test/detection_algorithm/run_tests.py @@ -0,0 +1,14 @@ +#!/usr/bin/env python3 + +import sys +import unittest + +runner = unittest.TextTestRunner(verbosity=1) +tests = unittest.TestLoader().discover('./') +if not runner.run(tests).wasSuccessful(): + sys.exit(1) + +#for each in ['data_processing', 'timeseries_processing', 'feature_analysis', 'detection_algorithm']: +# tests = unittest.TestLoader().discover(each) +# if not runner.run(tests).wasSuccessful(): +# sys.exit(1) diff --git a/tods/sk_interface/test/detection_algorithm/test_ski_ABOD.py b/tods/sk_interface/test/detection_algorithm/test_ski_ABOD.py new file mode 100644 index 0000000..642653c --- /dev/null +++ b/tods/sk_interface/test/detection_algorithm/test_ski_ABOD.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.ABOD_skinterface import ABODSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class ABODSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = ABODSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/detection_algorithm/test_ski_AutoEncoder.py b/tods/sk_interface/test/detection_algorithm/test_ski_AutoEncoder.py new file mode 100644 index 0000000..73fff44 --- /dev/null +++ b/tods/sk_interface/test/detection_algorithm/test_ski_AutoEncoder.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.AutoEncoder_skinterface import AutoEncoderSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class AutoEncoderSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = AutoEncoderSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/detection_algorithm/test_ski_AutoRegODetector.py b/tods/sk_interface/test/detection_algorithm/test_ski_AutoRegODetector.py new file mode 100644 index 0000000..ea0195a --- /dev/null +++ b/tods/sk_interface/test/detection_algorithm/test_ski_AutoRegODetector.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.AutoRegODetector_skinterface import AutoRegODetectorSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class AutoRegODetectorSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = AutoRegODetectorSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/detection_algorithm/test_ski_CBLOF.py b/tods/sk_interface/test/detection_algorithm/test_ski_CBLOF.py new file mode 100644 index 0000000..a4b9f1b --- /dev/null +++ b/tods/sk_interface/test/detection_algorithm/test_ski_CBLOF.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.CBLOF_skinterface import CBLOFSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class CBLOFSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = CBLOFSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/detection_algorithm/test_ski_COF.py b/tods/sk_interface/test/detection_algorithm/test_ski_COF.py new file mode 100644 index 0000000..b6e2bc3 --- /dev/null +++ b/tods/sk_interface/test/detection_algorithm/test_ski_COF.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.COF_skinterface import COFSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class COFSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = COFSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/detection_algorithm/test_ski_DeepLog.py b/tods/sk_interface/test/detection_algorithm/test_ski_DeepLog.py new file mode 100644 index 0000000..7d62970 --- /dev/null +++ b/tods/sk_interface/test/detection_algorithm/test_ski_DeepLog.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.DeepLog_skinterface import DeepLogSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class DeepLogSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = DeepLogSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/detection_algorithm/test_ski_HBOS.py b/tods/sk_interface/test/detection_algorithm/test_ski_HBOS.py new file mode 100644 index 0000000..ad12510 --- /dev/null +++ b/tods/sk_interface/test/detection_algorithm/test_ski_HBOS.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.HBOS_skinterface import HBOSSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class HBOSSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = HBOSSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/detection_algorithm/test_ski_IsolationForest.py b/tods/sk_interface/test/detection_algorithm/test_ski_IsolationForest.py new file mode 100644 index 0000000..aac8db1 --- /dev/null +++ b/tods/sk_interface/test/detection_algorithm/test_ski_IsolationForest.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.IsolationForest_skinterface import IsolationForestSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class IsolationForestSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = IsolationForestSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/detection_algorithm/test_ski_KDiscordODetector.py b/tods/sk_interface/test/detection_algorithm/test_ski_KDiscordODetector.py new file mode 100644 index 0000000..0c945da --- /dev/null +++ b/tods/sk_interface/test/detection_algorithm/test_ski_KDiscordODetector.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.KDiscordODetector_skinterface import KDiscordODetectorSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class KDiscordODetectorSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = KDiscordODetectorSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/detection_algorithm/test_ski_KNN.py b/tods/sk_interface/test/detection_algorithm/test_ski_KNN.py new file mode 100644 index 0000000..473a95d --- /dev/null +++ b/tods/sk_interface/test/detection_algorithm/test_ski_KNN.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.KNN_skinterface import KNNSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class KNNSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = KNNSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/detection_algorithm/test_ski_LODA.py b/tods/sk_interface/test/detection_algorithm/test_ski_LODA.py new file mode 100644 index 0000000..857f0c4 --- /dev/null +++ b/tods/sk_interface/test/detection_algorithm/test_ski_LODA.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.LODA_skinterface import LODASKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class LODASKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = LODASKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/detection_algorithm/test_ski_LOF.py b/tods/sk_interface/test/detection_algorithm/test_ski_LOF.py new file mode 100644 index 0000000..f0114b3 --- /dev/null +++ b/tods/sk_interface/test/detection_algorithm/test_ski_LOF.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.LOF_skinterface import LOFSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class LOFSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = LOFSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/detection_algorithm/test_ski_LSTMODetector.py b/tods/sk_interface/test/detection_algorithm/test_ski_LSTMODetector.py new file mode 100644 index 0000000..25ec603 --- /dev/null +++ b/tods/sk_interface/test/detection_algorithm/test_ski_LSTMODetector.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.LSTMODetector_skinterface import LSTMODetectorSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class LSTMODetectorSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = LSTMODetectorSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/detection_algorithm/test_ski_MatrixProfile.py b/tods/sk_interface/test/detection_algorithm/test_ski_MatrixProfile.py new file mode 100644 index 0000000..6ab3734 --- /dev/null +++ b/tods/sk_interface/test/detection_algorithm/test_ski_MatrixProfile.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.MatrixProfile_skinterface import MatrixProfileSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class MatrixProfileSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = MatrixProfileSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/detection_algorithm/test_ski_Mo_Gaal.py b/tods/sk_interface/test/detection_algorithm/test_ski_Mo_Gaal.py new file mode 100644 index 0000000..a6cc75f --- /dev/null +++ b/tods/sk_interface/test/detection_algorithm/test_ski_Mo_Gaal.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.Mo_Gaal_skinterface import Mo_GaalSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class Mo_GaalSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = Mo_GaalSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/detection_algorithm/test_ski_OCSVM.py b/tods/sk_interface/test/detection_algorithm/test_ski_OCSVM.py new file mode 100644 index 0000000..ae6142d --- /dev/null +++ b/tods/sk_interface/test/detection_algorithm/test_ski_OCSVM.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.OCSVM_skinterface import OCSVMSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class OCSVMSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = OCSVMSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/detection_algorithm/test_ski_PCAODetector.py b/tods/sk_interface/test/detection_algorithm/test_ski_PCAODetector.py new file mode 100644 index 0000000..6a1127d --- /dev/null +++ b/tods/sk_interface/test/detection_algorithm/test_ski_PCAODetector.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.PCAODetector_skinterface import PCAODetectorSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class PCAODetectorSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = PCAODetectorSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/detection_algorithm/test_ski_SOD.py b/tods/sk_interface/test/detection_algorithm/test_ski_SOD.py new file mode 100644 index 0000000..439cb22 --- /dev/null +++ b/tods/sk_interface/test/detection_algorithm/test_ski_SOD.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.SOD_skinterface import SODSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class SODSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = SODSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/detection_algorithm/test_ski_So_Gaal.py b/tods/sk_interface/test/detection_algorithm/test_ski_So_Gaal.py new file mode 100644 index 0000000..36abfac --- /dev/null +++ b/tods/sk_interface/test/detection_algorithm/test_ski_So_Gaal.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.So_Gaal_skinterface import So_GaalSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class So_GaalSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = So_GaalSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/detection_algorithm/test_ski_SystemWiseDetection.py b/tods/sk_interface/test/detection_algorithm/test_ski_SystemWiseDetection.py new file mode 100644 index 0000000..fc9c23a --- /dev/null +++ b/tods/sk_interface/test/detection_algorithm/test_ski_SystemWiseDetection.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.SystemWiseDetection_skinterface import SystemWiseDetectionSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class SystemWiseDetectionSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = SystemWiseDetectionSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/detection_algorithm/test_ski_Telemanom.py b/tods/sk_interface/test/detection_algorithm/test_ski_Telemanom.py new file mode 100644 index 0000000..a69db94 --- /dev/null +++ b/tods/sk_interface/test/detection_algorithm/test_ski_Telemanom.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.Telemanom_skinterface import TelemanomSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class TelemanomSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = TelemanomSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/detection_algorithm/test_ski_VariationalAutoEncoder.py b/tods/sk_interface/test/detection_algorithm/test_ski_VariationalAutoEncoder.py new file mode 100644 index 0000000..6f95c42 --- /dev/null +++ b/tods/sk_interface/test/detection_algorithm/test_ski_VariationalAutoEncoder.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.VariationalAutoEncoder_skinterface import VariationalAutoEncoderSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class VariationalAutoEncoderSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = VariationalAutoEncoderSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tods_skinterface/primitiveSKI/__init__.py b/tods/sk_interface/test/feature_analysis/__init__.py similarity index 100% rename from tods/tods_skinterface/primitiveSKI/__init__.py rename to tods/sk_interface/test/feature_analysis/__init__.py diff --git a/tods/sk_interface/test/feature_analysis/run_tests.py b/tods/sk_interface/test/feature_analysis/run_tests.py new file mode 100755 index 0000000..16e2374 --- /dev/null +++ b/tods/sk_interface/test/feature_analysis/run_tests.py @@ -0,0 +1,14 @@ +#!/usr/bin/env python3 + +import sys +import unittest + +runner = unittest.TextTestRunner(verbosity=1) +tests = unittest.TestLoader().discover('./') +if not runner.run(tests).wasSuccessful(): + sys.exit(1) + +#for each in ['data_processing', 'timeseries_processing', 'feature_analysis', 'detection_algorithm']: +# tests = unittest.TestLoader().discover(each) +# if not runner.run(tests).wasSuccessful(): +# sys.exit(1) diff --git a/tods/sk_interface/test/feature_analysis/test_ski_AutoCorrelation.py b/tods/sk_interface/test/feature_analysis/test_ski_AutoCorrelation.py new file mode 100644 index 0000000..6dc3988 --- /dev/null +++ b/tods/sk_interface/test/feature_analysis/test_ski_AutoCorrelation.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.AutoCorrelation_skinterface import AutoCorrelationSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class AutoCorrelationSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = AutoCorrelationSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/feature_analysis/test_ski_BKFilter.py b/tods/sk_interface/test/feature_analysis/test_ski_BKFilter.py new file mode 100644 index 0000000..0012aa4 --- /dev/null +++ b/tods/sk_interface/test/feature_analysis/test_ski_BKFilter.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.BKFilter_skinterface import BKFilterSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class BKFilterSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = BKFilterSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/feature_analysis/test_ski_DiscreteCosineTransform.py b/tods/sk_interface/test/feature_analysis/test_ski_DiscreteCosineTransform.py new file mode 100644 index 0000000..a3bf8b7 --- /dev/null +++ b/tods/sk_interface/test/feature_analysis/test_ski_DiscreteCosineTransform.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.DiscreteCosineTransform_skinterface import DiscreteCosineTransformSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class DiscreteCosineTransformSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = DiscreteCosineTransformSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/feature_analysis/test_ski_FastFourierTransform.py b/tods/sk_interface/test/feature_analysis/test_ski_FastFourierTransform.py new file mode 100644 index 0000000..4bd5b79 --- /dev/null +++ b/tods/sk_interface/test/feature_analysis/test_ski_FastFourierTransform.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.FastFourierTransform_skinterface import FastFourierTransformSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class FastFourierTransformSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = FastFourierTransformSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/feature_analysis/test_ski_HPFilter.py b/tods/sk_interface/test/feature_analysis/test_ski_HPFilter.py new file mode 100644 index 0000000..484a6cb --- /dev/null +++ b/tods/sk_interface/test/feature_analysis/test_ski_HPFilter.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.HPFilter_skinterface import HPFilterSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class HPFilterSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = HPFilterSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/feature_analysis/test_ski_NonNegativeMatrixFactorization.py b/tods/sk_interface/test/feature_analysis/test_ski_NonNegativeMatrixFactorization.py new file mode 100644 index 0000000..994d1bd --- /dev/null +++ b/tods/sk_interface/test/feature_analysis/test_ski_NonNegativeMatrixFactorization.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.NonNegativeMatrixFactorization_skinterface import NonNegativeMatrixFactorizationSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class NonNegativeMatrixFactorizationSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = NonNegativeMatrixFactorizationSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/feature_analysis/test_ski_SKTruncatedSVD.py b/tods/sk_interface/test/feature_analysis/test_ski_SKTruncatedSVD.py new file mode 100644 index 0000000..022ec4d --- /dev/null +++ b/tods/sk_interface/test/feature_analysis/test_ski_SKTruncatedSVD.py @@ -0,0 +1,35 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.SKTruncatedSVD_skinterface import SKTruncatedSVDSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class SKTruncatedSVDSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = SKTruncatedSVDSKI() + self.transformer.fit(self.X_train) + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/feature_analysis/test_ski_SpectralResidualTransform.py b/tods/sk_interface/test/feature_analysis/test_ski_SpectralResidualTransform.py new file mode 100644 index 0000000..9555cf1 --- /dev/null +++ b/tods/sk_interface/test/feature_analysis/test_ski_SpectralResidualTransform.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.SpectralResidualTransform_skinterface import SpectralResidualTransformSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class SpectralResidualTransformSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = SpectralResidualTransformSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/feature_analysis/test_ski_StatisticalAbsEnergy.py b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalAbsEnergy.py new file mode 100644 index 0000000..1937eb2 --- /dev/null +++ b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalAbsEnergy.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalAbsEnergy_skinterface import StatisticalAbsEnergySKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalAbsEnergySKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalAbsEnergySKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/feature_analysis/test_ski_StatisticalAbsSum.py b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalAbsSum.py new file mode 100644 index 0000000..53eb16d --- /dev/null +++ b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalAbsSum.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalAbsSum_skinterface import StatisticalAbsSumSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalAbsSumSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalAbsSumSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/feature_analysis/test_ski_StatisticalGmean.py b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalGmean.py new file mode 100644 index 0000000..2b98074 --- /dev/null +++ b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalGmean.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalGmean_skinterface import StatisticalGmeanSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalGmeanSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalGmeanSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/feature_analysis/test_ski_StatisticalHmean.py b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalHmean.py new file mode 100644 index 0000000..e177bdb --- /dev/null +++ b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalHmean.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalHmean_skinterface import StatisticalHmeanSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalHmeanSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalHmeanSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/feature_analysis/test_ski_StatisticalKurtosis.py b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalKurtosis.py new file mode 100644 index 0000000..f66ffba --- /dev/null +++ b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalKurtosis.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalKurtosis_skinterface import StatisticalKurtosisSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalKurtosisSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalKurtosisSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/feature_analysis/test_ski_StatisticalMaximum.py b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalMaximum.py new file mode 100644 index 0000000..758ade9 --- /dev/null +++ b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalMaximum.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalMaximum_skinterface import StatisticalMaximumSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalMaximumSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalMaximumSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/feature_analysis/test_ski_StatisticalMean.py b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalMean.py new file mode 100644 index 0000000..1eb6ad9 --- /dev/null +++ b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalMean.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalMean_skinterface import StatisticalMeanSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalMeanSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalMeanSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/feature_analysis/test_ski_StatisticalMeanAbs.py b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalMeanAbs.py new file mode 100644 index 0000000..dda8d8d --- /dev/null +++ b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalMeanAbs.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalMeanAbs_skinterface import StatisticalMeanAbsSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalMeanAbsSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalMeanAbsSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/feature_analysis/test_ski_StatisticalMeanAbsTemporalDerivative.py b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalMeanAbsTemporalDerivative.py new file mode 100644 index 0000000..ae44653 --- /dev/null +++ b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalMeanAbsTemporalDerivative.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalMeanAbsTemporalDerivative_skinterface import StatisticalMeanAbsTemporalDerivativeSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalMeanAbsTemporalDerivativeSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalMeanAbsTemporalDerivativeSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/feature_analysis/test_ski_StatisticalMeanTemporalDerivative.py b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalMeanTemporalDerivative.py new file mode 100644 index 0000000..c2e3677 --- /dev/null +++ b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalMeanTemporalDerivative.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalMeanTemporalDerivative_skinterface import StatisticalMeanTemporalDerivativeSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalMeanTemporalDerivativeSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalMeanTemporalDerivativeSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/feature_analysis/test_ski_StatisticalMedian.py b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalMedian.py new file mode 100644 index 0000000..f35d242 --- /dev/null +++ b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalMedian.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalMedian_skinterface import StatisticalMedianSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalMedianSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalMedianSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/feature_analysis/test_ski_StatisticalMedianAbsoluteDeviation.py b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalMedianAbsoluteDeviation.py new file mode 100644 index 0000000..86e1d23 --- /dev/null +++ b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalMedianAbsoluteDeviation.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalMedianAbsoluteDeviation_skinterface import StatisticalMedianAbsoluteDeviationSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalMedianAbsoluteDeviationSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalMedianAbsoluteDeviationSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/feature_analysis/test_ski_StatisticalMinimum.py b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalMinimum.py new file mode 100644 index 0000000..0ca8b48 --- /dev/null +++ b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalMinimum.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalMinimum_skinterface import StatisticalMinimumSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalMinimumSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalMinimumSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/feature_analysis/test_ski_StatisticalSkew.py b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalSkew.py new file mode 100644 index 0000000..30f7761 --- /dev/null +++ b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalSkew.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalSkew_skinterface import StatisticalSkewSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalSkewSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalSkewSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/feature_analysis/test_ski_StatisticalStd.py b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalStd.py new file mode 100644 index 0000000..a1da0a0 --- /dev/null +++ b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalStd.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalStd_skinterface import StatisticalStdSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalStdSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalStdSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/feature_analysis/test_ski_StatisticalVar.py b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalVar.py new file mode 100644 index 0000000..1cce000 --- /dev/null +++ b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalVar.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalVar_skinterface import StatisticalVarSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalVarSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalVarSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/feature_analysis/test_ski_StatisticalVariation.py b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalVariation.py new file mode 100644 index 0000000..d72b393 --- /dev/null +++ b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalVariation.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalVariation_skinterface import StatisticalVariationSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalVariationSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalVariationSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/feature_analysis/test_ski_StatisticalVecSum.py b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalVecSum.py new file mode 100644 index 0000000..4cf7dc2 --- /dev/null +++ b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalVecSum.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalVecSum_skinterface import StatisticalVecSumSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalVecSumSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalVecSumSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/feature_analysis/test_ski_StatisticalWillisonAmplitude.py b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalWillisonAmplitude.py new file mode 100644 index 0000000..8f27ff2 --- /dev/null +++ b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalWillisonAmplitude.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalWillisonAmplitude_skinterface import StatisticalWillisonAmplitudeSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalWillisonAmplitudeSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalWillisonAmplitudeSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/feature_analysis/test_ski_StatisticalZeroCrossing.py b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalZeroCrossing.py new file mode 100644 index 0000000..c0962fa --- /dev/null +++ b/tods/sk_interface/test/feature_analysis/test_ski_StatisticalZeroCrossing.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalZeroCrossing_skinterface import StatisticalZeroCrossingSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalZeroCrossingSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalZeroCrossingSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/feature_analysis/test_ski_TRMF.py b/tods/sk_interface/test/feature_analysis/test_ski_TRMF.py new file mode 100644 index 0000000..983385a --- /dev/null +++ b/tods/sk_interface/test/feature_analysis/test_ski_TRMF.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.TRMF_skinterface import TRMFSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class TRMFSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = TRMFSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/feature_analysis/test_ski_WaveletTransform.py b/tods/sk_interface/test/feature_analysis/test_ski_WaveletTransform.py new file mode 100644 index 0000000..e96cd4e --- /dev/null +++ b/tods/sk_interface/test/feature_analysis/test_ski_WaveletTransform.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.WaveletTransform_skinterface import WaveletTransformSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class WaveletTransformSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = WaveletTransformSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/sk_interface/test/system_detection/test_system_KNN.py b/tods/sk_interface/test/system_detection/test_system_KNN.py new file mode 100644 index 0000000..daa800b --- /dev/null +++ b/tods/sk_interface/test/system_detection/test_system_KNN.py @@ -0,0 +1,51 @@ +import numpy as np + +from tods.sk_interface.feature_analysis.StatisticalMaximum_skinterface import StatisticalMaximumSKI +from tods.sk_interface.detection_algorithm.KNN_skinterface import KNNSKI +from tods.sk_interface.data_ensemble.Ensemble_skinterface import EnsembleSKI +from tods.sk_interface.utils.data import generate_3D_data, load_sys_data, generate_sys_feature + +# Generate 3D data (n, T, d), n: system number, T: time, d: dimension + +# n_sys = 5 +# X_train, y_train, X_test, y_test = generate_3D_data(n_sys=n_sys, +# n_train=1000, +# n_test=1000, +# n_features=3, +# contamination=0.1) + +X_train, y_train, sys_info_train = load_sys_data('../../../../datasets/anomaly/system_wise/sample/train.csv', + '../../../../datasets/anomaly/system_wise/sample/systems') +X_test, y_test, sys_info_test = load_sys_data('../../../../datasets/anomaly/system_wise/sample/train.csv', + '../../../../datasets/anomaly/system_wise/sample/systems') +n_sys = sys_info_train['sys_num'] + +# feature analysis algorithms +stmax = StatisticalMaximumSKI(system_num=n_sys) + +# OD algorithms +detection_module = KNNSKI(contamination=0.1, system_num=n_sys) + +# ensemble model +ensemble_module = EnsembleSKI() + +# Fit the feature analysis algorithms +X_train = stmax.produce(X_train) +X_test = stmax.produce(X_test) + +# Fit the detector +detection_module.fit(X_train) +sys_ts_score = detection_module.predict_score(X_test) # shape (n, T, 1) + +# generate sys_feature based on the time-series anomaly score +sys_feature = generate_sys_feature(sys_ts_score) # shape (T, n) + +print(sys_feature.shape) +print(sys_feature.ndim) + +# Ensemble the time series outlier socre for each system +ensemble_module.fit(sys_feature) +sys_score = ensemble_module.predict(sys_feature) + +print(sys_score) + diff --git a/tods/sk_interface/utils/data.py b/tods/sk_interface/utils/data.py new file mode 100644 index 0000000..6e6d365 --- /dev/null +++ b/tods/sk_interface/utils/data.py @@ -0,0 +1,188 @@ +from pyod.utils.data import generate_data +import numpy as np +import pandas as pd +import os + +def generate_3D_data(n_sys=1, n_train=1000, n_test=500, n_features=2, contamination=0.1, + train_only=False, offset=10, behaviour='old', + random_state=None): + + """Utility function to generate synthesized data. + Normal data is generated by a multivariate Gaussian distribution and + outliers are generated by a uniform distribution. + + Parameters + ---------- + n_sys : int, (default=1) + The number of systems to generate. + + n_train : int, (default=1000) + The number of training points to generate. + + n_test : int, (default=500) + The number of test points to generate. + + n_features : int, optional (default=2) + The number of features (dimensions). + + contamination : float in (0., 0.5), optional (default=0.1) + The amount of contamination of the data set, i.e. + the proportion of outliers in the data set. Used when fitting to + define the threshold on the decision function. + + train_only : bool, optional (default=False) + If true, generate train data only. + + offset : int, optional (default=10) + Adjust the value range of Gaussian and Uniform. + + behaviour : str, default='old' + Behaviour of the returned datasets which can be either 'old' or + 'new'. Passing ``behaviour='new'`` returns + "X_train, y_train, X_test, y_test", while passing ``behaviour='old'`` + returns "X_train, X_test, y_train, y_test". + + random_state : int, RandomState instance or None, optional (default=None) + If int, random_state is the seed used by the random number generator; + If RandomState instance, random_state is the random number generator; + If None, the random number generator is the RandomState instance used + by `np.random`. + + Returns + ------- + X_train : numpy array of shape (n_sys, n_train, n_features) if n_sys > 1 else shape (n_train, n_features) + Training data. + + y_train : numpy array of shape (n_sys, n_train) if n_sys > 1 else shape (n_train, ) + Training ground truth. + + X_test : numpy array of shape (n_sys, n_test, n_features) if n_sys > 1 else shape (n_test, n_features) + Test data. + + y_test : numpy array of shape (n_sys, n_test,) if n_sys > 1 else shape (n_test, ) + Test ground truth. + + """ + + if n_sys == 1: + + return generate_data(n_train=n_train, + n_test=n_test, + n_features=n_features, + contamination=contamination, + train_only=train_only, + offset=offset, + behaviour=behaviour, + random_state=random_state) + + else: + X_train_sys = [] + y_train_sys = [] + X_test_sys = [] + y_test_sys = [] + + for sys_idx in range(n_sys): + + X_train, y_train, X_test, y_test = generate_data(n_train=n_train, + n_test=n_test, + n_features=n_features, + contamination=contamination, + train_only=train_only, + offset=offset, + behaviour=behaviour, + random_state=random_state) + X_train_sys.append(X_train) + y_train_sys.append(y_train) + X_test_sys.append(X_test) + y_test_sys.append(y_test) + + # X_train_sys = np.array(X_train_sys) + # y_train_sys = np.array(y_train_sys) + # X_test_sys = np.array(X_test_sys) + # y_test_sys = np.array(y_test_sys) + + return X_train_sys, y_train_sys, X_test_sys, y_test_sys + + +def load_sys_data(sys_dir, data_dir): + + """Utility function to load system feature. + + Parameters + ---------- + data_dir: string + directory of system description + + data_dir: string + directory of system feature + + Returns + ------- + X : list + system features + + Y: numpy array of shape (n_sys, 1), + groundtruth, 1 marks abnormal system + + sys_info: dictionary + system number, time-series length and dimention number + + """ + + sys_buf = pd.read_csv(sys_dir) + + X_csv_name = sys_buf['system'].values + Y = sys_buf['label'].values + X = [] + ts_len = [] + ts_dim = [] + + for x_name in X_csv_name: + ts_data_fname = os.path.join(data_dir, x_name) + ts_data = pd.read_csv(ts_data_fname).values + X.append(ts_data) + ts_len.append(ts_data.shape[0]) + ts_dim.append(ts_data.shape[1]) + + sys_info = {'sys_num': Y.shape[0], + 'ts_len': np.array(ts_len), + 'ts_ndim': np.array(ts_dim), + } + + # print(type(X)) + # print(type(Y)) + + return X, Y, sys_info + + +def generate_sys_feature(sys_feature: list): + + """Utility function to generate system feature. + + Parameters + ---------- + sys_feature : list + each element of the sys_feature is feature of each system + + Returns + ------- + sys_feature_array_with_id : numpy array of shape (n, 2), + the first column is system id, second column is its feature, n = feature number * system number. + + """ + + # ts_len = np.array([ts.shape[0] for ts in sys_feature]).min() + # ndim = np.array([ts.shape[1] for ts in sys_feature]).min() + # sys_feature = [ts[:ts_len, :ndim].T.reshape((ts_len*ndim, 1)) for ts in sys_feature] + + sys_id = np.concatenate([idx*np.ones((len(sys_feature[idx]),1)).astype(np.int) + for idx in range(len(sys_feature))], axis=0) + sys_feature_array = np.concatenate(sys_feature, axis=0) + sys_feature_array_with_id = np.concatenate((sys_id, sys_feature_array), axis=1) + + return sys_feature_array_with_id + + +# load_sys_data('/Users/didi/Documents/hegsns/hegsns/TODS/tods_Guanchu/tods/datasets/anomaly/system_wise/sample/train.csv', +# '/Users/didi/Documents/hegsns/hegsns/TODS/tods_Guanchu/tods/datasets/anomaly/system_wise/sample/systems') +# generate_3D_data(n_sys=5) \ No newline at end of file diff --git a/tods/tods_skinterface/entry_points/entry_points.txt b/tods/sk_interface/utils/entry_points/entry_points.txt similarity index 100% rename from tods/tods_skinterface/entry_points/entry_points.txt rename to tods/sk_interface/utils/entry_points/entry_points.txt diff --git a/tods/tods_skinterface/entry_points/entry_points_detection_algorithm.txt b/tods/sk_interface/utils/entry_points/entry_points_detection_algorithm.txt similarity index 95% rename from tods/tods_skinterface/entry_points/entry_points_detection_algorithm.txt rename to tods/sk_interface/utils/entry_points/entry_points_detection_algorithm.txt index ce87b84..8e5d817 100644 --- a/tods/tods_skinterface/entry_points/entry_points_detection_algorithm.txt +++ b/tods/sk_interface/utils/entry_points/entry_points_detection_algorithm.txt @@ -20,4 +20,3 @@ tods.detection_algorithm.KDiscordODetector = tods.detection_algorithm.KDiscordOD tods.detection_algorithm.deeplog = tods.detection_algorithm.DeepLog:DeepLogPrimitive tods.detection_algorithm.telemanom = tods.detection_algorithm.Telemanom:TelemanomPrimitive tods.detection_algorithm.system_wise_detection = tods.detection_algorithm.SystemWiseDetection:SystemWiseDetectionPrimitive -tods.detection_algorithm.Ensemble = tods.detection_algorithm.Ensemble:EnsemblePrimitive diff --git a/tods/tods_skinterface/entry_points/entry_points_feature_analysis.txt b/tods/sk_interface/utils/entry_points/entry_points_feature_analysis.txt similarity index 100% rename from tods/tods_skinterface/entry_points/entry_points_feature_analysis.txt rename to tods/sk_interface/utils/entry_points/entry_points_feature_analysis.txt diff --git a/tods/tods_skinterface/primitiveSKI/data_processing/__init__.py b/tods/tests/sk_interface/__init__.py similarity index 100% rename from tods/tods_skinterface/primitiveSKI/data_processing/__init__.py rename to tods/tests/sk_interface/__init__.py diff --git a/tods/tests/sk_interface/detection_algorithm/run_tests.py b/tods/tests/sk_interface/detection_algorithm/run_tests.py new file mode 100755 index 0000000..16e2374 --- /dev/null +++ b/tods/tests/sk_interface/detection_algorithm/run_tests.py @@ -0,0 +1,14 @@ +#!/usr/bin/env python3 + +import sys +import unittest + +runner = unittest.TextTestRunner(verbosity=1) +tests = unittest.TestLoader().discover('./') +if not runner.run(tests).wasSuccessful(): + sys.exit(1) + +#for each in ['data_processing', 'timeseries_processing', 'feature_analysis', 'detection_algorithm']: +# tests = unittest.TestLoader().discover(each) +# if not runner.run(tests).wasSuccessful(): +# sys.exit(1) diff --git a/tods/tests/sk_interface/detection_algorithm/test_ski_ABOD.py b/tods/tests/sk_interface/detection_algorithm/test_ski_ABOD.py new file mode 100644 index 0000000..642653c --- /dev/null +++ b/tods/tests/sk_interface/detection_algorithm/test_ski_ABOD.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.ABOD_skinterface import ABODSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class ABODSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = ABODSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/detection_algorithm/test_ski_AutoEncoder.py b/tods/tests/sk_interface/detection_algorithm/test_ski_AutoEncoder.py new file mode 100644 index 0000000..73fff44 --- /dev/null +++ b/tods/tests/sk_interface/detection_algorithm/test_ski_AutoEncoder.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.AutoEncoder_skinterface import AutoEncoderSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class AutoEncoderSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = AutoEncoderSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/detection_algorithm/test_ski_AutoRegODetector.py b/tods/tests/sk_interface/detection_algorithm/test_ski_AutoRegODetector.py new file mode 100644 index 0000000..ea0195a --- /dev/null +++ b/tods/tests/sk_interface/detection_algorithm/test_ski_AutoRegODetector.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.AutoRegODetector_skinterface import AutoRegODetectorSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class AutoRegODetectorSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = AutoRegODetectorSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/detection_algorithm/test_ski_CBLOF.py b/tods/tests/sk_interface/detection_algorithm/test_ski_CBLOF.py new file mode 100644 index 0000000..a4b9f1b --- /dev/null +++ b/tods/tests/sk_interface/detection_algorithm/test_ski_CBLOF.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.CBLOF_skinterface import CBLOFSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class CBLOFSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = CBLOFSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/detection_algorithm/test_ski_COF.py b/tods/tests/sk_interface/detection_algorithm/test_ski_COF.py new file mode 100644 index 0000000..b6e2bc3 --- /dev/null +++ b/tods/tests/sk_interface/detection_algorithm/test_ski_COF.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.COF_skinterface import COFSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class COFSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = COFSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/detection_algorithm/test_ski_DeepLog.py b/tods/tests/sk_interface/detection_algorithm/test_ski_DeepLog.py new file mode 100644 index 0000000..7d62970 --- /dev/null +++ b/tods/tests/sk_interface/detection_algorithm/test_ski_DeepLog.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.DeepLog_skinterface import DeepLogSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class DeepLogSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = DeepLogSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/detection_algorithm/test_ski_HBOS.py b/tods/tests/sk_interface/detection_algorithm/test_ski_HBOS.py new file mode 100644 index 0000000..ad12510 --- /dev/null +++ b/tods/tests/sk_interface/detection_algorithm/test_ski_HBOS.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.HBOS_skinterface import HBOSSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class HBOSSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = HBOSSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/detection_algorithm/test_ski_IsolationForest.py b/tods/tests/sk_interface/detection_algorithm/test_ski_IsolationForest.py new file mode 100644 index 0000000..aac8db1 --- /dev/null +++ b/tods/tests/sk_interface/detection_algorithm/test_ski_IsolationForest.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.IsolationForest_skinterface import IsolationForestSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class IsolationForestSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = IsolationForestSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/detection_algorithm/test_ski_KDiscordODetector.py b/tods/tests/sk_interface/detection_algorithm/test_ski_KDiscordODetector.py new file mode 100644 index 0000000..0c945da --- /dev/null +++ b/tods/tests/sk_interface/detection_algorithm/test_ski_KDiscordODetector.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.KDiscordODetector_skinterface import KDiscordODetectorSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class KDiscordODetectorSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = KDiscordODetectorSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/detection_algorithm/test_ski_KNN.py b/tods/tests/sk_interface/detection_algorithm/test_ski_KNN.py new file mode 100644 index 0000000..473a95d --- /dev/null +++ b/tods/tests/sk_interface/detection_algorithm/test_ski_KNN.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.KNN_skinterface import KNNSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class KNNSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = KNNSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/detection_algorithm/test_ski_LODA.py b/tods/tests/sk_interface/detection_algorithm/test_ski_LODA.py new file mode 100644 index 0000000..857f0c4 --- /dev/null +++ b/tods/tests/sk_interface/detection_algorithm/test_ski_LODA.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.LODA_skinterface import LODASKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class LODASKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = LODASKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/detection_algorithm/test_ski_LOF.py b/tods/tests/sk_interface/detection_algorithm/test_ski_LOF.py new file mode 100644 index 0000000..f0114b3 --- /dev/null +++ b/tods/tests/sk_interface/detection_algorithm/test_ski_LOF.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.LOF_skinterface import LOFSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class LOFSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = LOFSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/detection_algorithm/test_ski_LSTMODetector.py b/tods/tests/sk_interface/detection_algorithm/test_ski_LSTMODetector.py new file mode 100644 index 0000000..25ec603 --- /dev/null +++ b/tods/tests/sk_interface/detection_algorithm/test_ski_LSTMODetector.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.LSTMODetector_skinterface import LSTMODetectorSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class LSTMODetectorSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = LSTMODetectorSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/detection_algorithm/test_ski_MatrixProfile.py b/tods/tests/sk_interface/detection_algorithm/test_ski_MatrixProfile.py new file mode 100644 index 0000000..6ab3734 --- /dev/null +++ b/tods/tests/sk_interface/detection_algorithm/test_ski_MatrixProfile.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.MatrixProfile_skinterface import MatrixProfileSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class MatrixProfileSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = MatrixProfileSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/detection_algorithm/test_ski_Mo_Gaal.py b/tods/tests/sk_interface/detection_algorithm/test_ski_Mo_Gaal.py new file mode 100644 index 0000000..a6cc75f --- /dev/null +++ b/tods/tests/sk_interface/detection_algorithm/test_ski_Mo_Gaal.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.Mo_Gaal_skinterface import Mo_GaalSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class Mo_GaalSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = Mo_GaalSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/detection_algorithm/test_ski_OCSVM.py b/tods/tests/sk_interface/detection_algorithm/test_ski_OCSVM.py new file mode 100644 index 0000000..ae6142d --- /dev/null +++ b/tods/tests/sk_interface/detection_algorithm/test_ski_OCSVM.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.OCSVM_skinterface import OCSVMSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class OCSVMSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = OCSVMSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/detection_algorithm/test_ski_PCAODetector.py b/tods/tests/sk_interface/detection_algorithm/test_ski_PCAODetector.py new file mode 100644 index 0000000..6a1127d --- /dev/null +++ b/tods/tests/sk_interface/detection_algorithm/test_ski_PCAODetector.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.PCAODetector_skinterface import PCAODetectorSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class PCAODetectorSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = PCAODetectorSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/detection_algorithm/test_ski_SOD.py b/tods/tests/sk_interface/detection_algorithm/test_ski_SOD.py new file mode 100644 index 0000000..439cb22 --- /dev/null +++ b/tods/tests/sk_interface/detection_algorithm/test_ski_SOD.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.SOD_skinterface import SODSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class SODSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = SODSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/detection_algorithm/test_ski_So_Gaal.py b/tods/tests/sk_interface/detection_algorithm/test_ski_So_Gaal.py new file mode 100644 index 0000000..36abfac --- /dev/null +++ b/tods/tests/sk_interface/detection_algorithm/test_ski_So_Gaal.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.So_Gaal_skinterface import So_GaalSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class So_GaalSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = So_GaalSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/detection_algorithm/test_ski_SystemWiseDetection.py b/tods/tests/sk_interface/detection_algorithm/test_ski_SystemWiseDetection.py new file mode 100644 index 0000000..fc9c23a --- /dev/null +++ b/tods/tests/sk_interface/detection_algorithm/test_ski_SystemWiseDetection.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.SystemWiseDetection_skinterface import SystemWiseDetectionSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class SystemWiseDetectionSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = SystemWiseDetectionSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/detection_algorithm/test_ski_Telemanom.py b/tods/tests/sk_interface/detection_algorithm/test_ski_Telemanom.py new file mode 100644 index 0000000..a69db94 --- /dev/null +++ b/tods/tests/sk_interface/detection_algorithm/test_ski_Telemanom.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.Telemanom_skinterface import TelemanomSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class TelemanomSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = TelemanomSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/detection_algorithm/test_ski_VariationalAutoEncoder.py b/tods/tests/sk_interface/detection_algorithm/test_ski_VariationalAutoEncoder.py new file mode 100644 index 0000000..6f95c42 --- /dev/null +++ b/tods/tests/sk_interface/detection_algorithm/test_ski_VariationalAutoEncoder.py @@ -0,0 +1,43 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.detection_algorithm.VariationalAutoEncoder_skinterface import VariationalAutoEncoderSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class VariationalAutoEncoderSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.maxDiff = None + self.n_train = 200 + self.n_test = 100 + self.contamination = 0.1 + self.roc_floor = 0.0 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, + contamination=self.contamination, random_state=42) + + self.transformer = VariationalAutoEncoderSKI(contamination=self.contamination) + self.transformer.fit(self.X_train) + + def test_prediction_labels(self): + pred_labels = self.transformer.predict(self.X_test) + assert_equal(pred_labels.shape[0], self.y_test.shape[0]) + + def test_prediction_score(self): + pred_scores = self.transformer.predict_score(self.X_test) + assert_equal(pred_scores.shape[0], self.y_test.shape[0]) + assert_greater_equal(roc_auc_score(self.y_test, pred_scores), self.roc_floor) + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/feature_analysis/run_tests.py b/tods/tests/sk_interface/feature_analysis/run_tests.py new file mode 100755 index 0000000..16e2374 --- /dev/null +++ b/tods/tests/sk_interface/feature_analysis/run_tests.py @@ -0,0 +1,14 @@ +#!/usr/bin/env python3 + +import sys +import unittest + +runner = unittest.TextTestRunner(verbosity=1) +tests = unittest.TestLoader().discover('./') +if not runner.run(tests).wasSuccessful(): + sys.exit(1) + +#for each in ['data_processing', 'timeseries_processing', 'feature_analysis', 'detection_algorithm']: +# tests = unittest.TestLoader().discover(each) +# if not runner.run(tests).wasSuccessful(): +# sys.exit(1) diff --git a/tods/tests/sk_interface/feature_analysis/test_ski_AutoCorrelation.py b/tods/tests/sk_interface/feature_analysis/test_ski_AutoCorrelation.py new file mode 100644 index 0000000..6dc3988 --- /dev/null +++ b/tods/tests/sk_interface/feature_analysis/test_ski_AutoCorrelation.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.AutoCorrelation_skinterface import AutoCorrelationSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class AutoCorrelationSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = AutoCorrelationSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/feature_analysis/test_ski_BKFilter.py b/tods/tests/sk_interface/feature_analysis/test_ski_BKFilter.py new file mode 100644 index 0000000..0012aa4 --- /dev/null +++ b/tods/tests/sk_interface/feature_analysis/test_ski_BKFilter.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.BKFilter_skinterface import BKFilterSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class BKFilterSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = BKFilterSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/feature_analysis/test_ski_DiscreteCosineTransform.py b/tods/tests/sk_interface/feature_analysis/test_ski_DiscreteCosineTransform.py new file mode 100644 index 0000000..a3bf8b7 --- /dev/null +++ b/tods/tests/sk_interface/feature_analysis/test_ski_DiscreteCosineTransform.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.DiscreteCosineTransform_skinterface import DiscreteCosineTransformSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class DiscreteCosineTransformSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = DiscreteCosineTransformSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/feature_analysis/test_ski_FastFourierTransform.py b/tods/tests/sk_interface/feature_analysis/test_ski_FastFourierTransform.py new file mode 100644 index 0000000..4bd5b79 --- /dev/null +++ b/tods/tests/sk_interface/feature_analysis/test_ski_FastFourierTransform.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.FastFourierTransform_skinterface import FastFourierTransformSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class FastFourierTransformSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = FastFourierTransformSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/feature_analysis/test_ski_HPFilter.py b/tods/tests/sk_interface/feature_analysis/test_ski_HPFilter.py new file mode 100644 index 0000000..484a6cb --- /dev/null +++ b/tods/tests/sk_interface/feature_analysis/test_ski_HPFilter.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.HPFilter_skinterface import HPFilterSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class HPFilterSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = HPFilterSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/feature_analysis/test_ski_NonNegativeMatrixFactorization.py b/tods/tests/sk_interface/feature_analysis/test_ski_NonNegativeMatrixFactorization.py new file mode 100644 index 0000000..994d1bd --- /dev/null +++ b/tods/tests/sk_interface/feature_analysis/test_ski_NonNegativeMatrixFactorization.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.NonNegativeMatrixFactorization_skinterface import NonNegativeMatrixFactorizationSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class NonNegativeMatrixFactorizationSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = NonNegativeMatrixFactorizationSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/feature_analysis/test_ski_SKTruncatedSVD.py b/tods/tests/sk_interface/feature_analysis/test_ski_SKTruncatedSVD.py new file mode 100644 index 0000000..022ec4d --- /dev/null +++ b/tods/tests/sk_interface/feature_analysis/test_ski_SKTruncatedSVD.py @@ -0,0 +1,35 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.SKTruncatedSVD_skinterface import SKTruncatedSVDSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class SKTruncatedSVDSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = SKTruncatedSVDSKI() + self.transformer.fit(self.X_train) + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/feature_analysis/test_ski_SpectralResidualTransform.py b/tods/tests/sk_interface/feature_analysis/test_ski_SpectralResidualTransform.py new file mode 100644 index 0000000..9555cf1 --- /dev/null +++ b/tods/tests/sk_interface/feature_analysis/test_ski_SpectralResidualTransform.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.SpectralResidualTransform_skinterface import SpectralResidualTransformSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class SpectralResidualTransformSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = SpectralResidualTransformSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalAbsEnergy.py b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalAbsEnergy.py new file mode 100644 index 0000000..1937eb2 --- /dev/null +++ b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalAbsEnergy.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalAbsEnergy_skinterface import StatisticalAbsEnergySKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalAbsEnergySKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalAbsEnergySKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalAbsSum.py b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalAbsSum.py new file mode 100644 index 0000000..53eb16d --- /dev/null +++ b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalAbsSum.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalAbsSum_skinterface import StatisticalAbsSumSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalAbsSumSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalAbsSumSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalGmean.py b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalGmean.py new file mode 100644 index 0000000..2b98074 --- /dev/null +++ b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalGmean.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalGmean_skinterface import StatisticalGmeanSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalGmeanSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalGmeanSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalHmean.py b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalHmean.py new file mode 100644 index 0000000..e177bdb --- /dev/null +++ b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalHmean.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalHmean_skinterface import StatisticalHmeanSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalHmeanSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalHmeanSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalKurtosis.py b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalKurtosis.py new file mode 100644 index 0000000..f66ffba --- /dev/null +++ b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalKurtosis.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalKurtosis_skinterface import StatisticalKurtosisSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalKurtosisSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalKurtosisSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalMaximum.py b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalMaximum.py new file mode 100644 index 0000000..758ade9 --- /dev/null +++ b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalMaximum.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalMaximum_skinterface import StatisticalMaximumSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalMaximumSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalMaximumSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalMean.py b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalMean.py new file mode 100644 index 0000000..1eb6ad9 --- /dev/null +++ b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalMean.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalMean_skinterface import StatisticalMeanSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalMeanSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalMeanSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalMeanAbs.py b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalMeanAbs.py new file mode 100644 index 0000000..dda8d8d --- /dev/null +++ b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalMeanAbs.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalMeanAbs_skinterface import StatisticalMeanAbsSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalMeanAbsSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalMeanAbsSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalMeanAbsTemporalDerivative.py b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalMeanAbsTemporalDerivative.py new file mode 100644 index 0000000..ae44653 --- /dev/null +++ b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalMeanAbsTemporalDerivative.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalMeanAbsTemporalDerivative_skinterface import StatisticalMeanAbsTemporalDerivativeSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalMeanAbsTemporalDerivativeSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalMeanAbsTemporalDerivativeSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalMeanTemporalDerivative.py b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalMeanTemporalDerivative.py new file mode 100644 index 0000000..c2e3677 --- /dev/null +++ b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalMeanTemporalDerivative.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalMeanTemporalDerivative_skinterface import StatisticalMeanTemporalDerivativeSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalMeanTemporalDerivativeSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalMeanTemporalDerivativeSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalMedian.py b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalMedian.py new file mode 100644 index 0000000..f35d242 --- /dev/null +++ b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalMedian.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalMedian_skinterface import StatisticalMedianSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalMedianSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalMedianSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalMedianAbsoluteDeviation.py b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalMedianAbsoluteDeviation.py new file mode 100644 index 0000000..86e1d23 --- /dev/null +++ b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalMedianAbsoluteDeviation.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalMedianAbsoluteDeviation_skinterface import StatisticalMedianAbsoluteDeviationSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalMedianAbsoluteDeviationSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalMedianAbsoluteDeviationSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalMinimum.py b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalMinimum.py new file mode 100644 index 0000000..0ca8b48 --- /dev/null +++ b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalMinimum.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalMinimum_skinterface import StatisticalMinimumSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalMinimumSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalMinimumSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalSkew.py b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalSkew.py new file mode 100644 index 0000000..30f7761 --- /dev/null +++ b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalSkew.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalSkew_skinterface import StatisticalSkewSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalSkewSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalSkewSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalStd.py b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalStd.py new file mode 100644 index 0000000..a1da0a0 --- /dev/null +++ b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalStd.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalStd_skinterface import StatisticalStdSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalStdSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalStdSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalVar.py b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalVar.py new file mode 100644 index 0000000..1cce000 --- /dev/null +++ b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalVar.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalVar_skinterface import StatisticalVarSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalVarSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalVarSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalVariation.py b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalVariation.py new file mode 100644 index 0000000..d72b393 --- /dev/null +++ b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalVariation.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalVariation_skinterface import StatisticalVariationSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalVariationSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalVariationSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalVecSum.py b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalVecSum.py new file mode 100644 index 0000000..4cf7dc2 --- /dev/null +++ b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalVecSum.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalVecSum_skinterface import StatisticalVecSumSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalVecSumSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalVecSumSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalWillisonAmplitude.py b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalWillisonAmplitude.py new file mode 100644 index 0000000..8f27ff2 --- /dev/null +++ b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalWillisonAmplitude.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalWillisonAmplitude_skinterface import StatisticalWillisonAmplitudeSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalWillisonAmplitudeSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalWillisonAmplitudeSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalZeroCrossing.py b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalZeroCrossing.py new file mode 100644 index 0000000..c0962fa --- /dev/null +++ b/tods/tests/sk_interface/feature_analysis/test_ski_StatisticalZeroCrossing.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.StatisticalZeroCrossing_skinterface import StatisticalZeroCrossingSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class StatisticalZeroCrossingSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = StatisticalZeroCrossingSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/feature_analysis/test_ski_TRMF.py b/tods/tests/sk_interface/feature_analysis/test_ski_TRMF.py new file mode 100644 index 0000000..983385a --- /dev/null +++ b/tods/tests/sk_interface/feature_analysis/test_ski_TRMF.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.TRMF_skinterface import TRMFSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class TRMFSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = TRMFSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/feature_analysis/test_ski_WaveletTransform.py b/tods/tests/sk_interface/feature_analysis/test_ski_WaveletTransform.py new file mode 100644 index 0000000..e96cd4e --- /dev/null +++ b/tods/tests/sk_interface/feature_analysis/test_ski_WaveletTransform.py @@ -0,0 +1,34 @@ +import numpy as np +import pandas as pd +import os +from tods.sk_interface.feature_analysis.WaveletTransform_skinterface import WaveletTransformSKI + +from pyod.utils.data import generate_data +import unittest +from sklearn.utils.testing import assert_allclose +from sklearn.utils.testing import assert_array_less +from sklearn.utils.testing import assert_equal +from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater_equal +from sklearn.utils.testing import assert_less_equal +from sklearn.utils.testing import assert_raises +from sklearn.metrics import roc_auc_score + +class WaveletTransformSKI_TestCase(unittest.TestCase): + def setUp(self): + + self.n_train = 200 + self.n_test = 100 + self.X_train, self.y_train, self.X_test, self.y_test = generate_data( + n_train=self.n_train, n_test=self.n_test, n_features=5, + contamination=0., random_state=42) + + self.transformer = WaveletTransformSKI() + + def test_produce(self): + X_transform = self.transformer.produce(self.X_test) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tods/tests/sk_interface/run_tests.py b/tods/tests/sk_interface/run_tests.py new file mode 100755 index 0000000..16e2374 --- /dev/null +++ b/tods/tests/sk_interface/run_tests.py @@ -0,0 +1,14 @@ +#!/usr/bin/env python3 + +import sys +import unittest + +runner = unittest.TextTestRunner(verbosity=1) +tests = unittest.TestLoader().discover('./') +if not runner.run(tests).wasSuccessful(): + sys.exit(1) + +#for each in ['data_processing', 'timeseries_processing', 'feature_analysis', 'detection_algorithm']: +# tests = unittest.TestLoader().discover(each) +# if not runner.run(tests).wasSuccessful(): +# sys.exit(1) diff --git a/tods/tests/sk_interface/utils/data.py b/tods/tests/sk_interface/utils/data.py new file mode 100644 index 0000000..6e6d365 --- /dev/null +++ b/tods/tests/sk_interface/utils/data.py @@ -0,0 +1,188 @@ +from pyod.utils.data import generate_data +import numpy as np +import pandas as pd +import os + +def generate_3D_data(n_sys=1, n_train=1000, n_test=500, n_features=2, contamination=0.1, + train_only=False, offset=10, behaviour='old', + random_state=None): + + """Utility function to generate synthesized data. + Normal data is generated by a multivariate Gaussian distribution and + outliers are generated by a uniform distribution. + + Parameters + ---------- + n_sys : int, (default=1) + The number of systems to generate. + + n_train : int, (default=1000) + The number of training points to generate. + + n_test : int, (default=500) + The number of test points to generate. + + n_features : int, optional (default=2) + The number of features (dimensions). + + contamination : float in (0., 0.5), optional (default=0.1) + The amount of contamination of the data set, i.e. + the proportion of outliers in the data set. Used when fitting to + define the threshold on the decision function. + + train_only : bool, optional (default=False) + If true, generate train data only. + + offset : int, optional (default=10) + Adjust the value range of Gaussian and Uniform. + + behaviour : str, default='old' + Behaviour of the returned datasets which can be either 'old' or + 'new'. Passing ``behaviour='new'`` returns + "X_train, y_train, X_test, y_test", while passing ``behaviour='old'`` + returns "X_train, X_test, y_train, y_test". + + random_state : int, RandomState instance or None, optional (default=None) + If int, random_state is the seed used by the random number generator; + If RandomState instance, random_state is the random number generator; + If None, the random number generator is the RandomState instance used + by `np.random`. + + Returns + ------- + X_train : numpy array of shape (n_sys, n_train, n_features) if n_sys > 1 else shape (n_train, n_features) + Training data. + + y_train : numpy array of shape (n_sys, n_train) if n_sys > 1 else shape (n_train, ) + Training ground truth. + + X_test : numpy array of shape (n_sys, n_test, n_features) if n_sys > 1 else shape (n_test, n_features) + Test data. + + y_test : numpy array of shape (n_sys, n_test,) if n_sys > 1 else shape (n_test, ) + Test ground truth. + + """ + + if n_sys == 1: + + return generate_data(n_train=n_train, + n_test=n_test, + n_features=n_features, + contamination=contamination, + train_only=train_only, + offset=offset, + behaviour=behaviour, + random_state=random_state) + + else: + X_train_sys = [] + y_train_sys = [] + X_test_sys = [] + y_test_sys = [] + + for sys_idx in range(n_sys): + + X_train, y_train, X_test, y_test = generate_data(n_train=n_train, + n_test=n_test, + n_features=n_features, + contamination=contamination, + train_only=train_only, + offset=offset, + behaviour=behaviour, + random_state=random_state) + X_train_sys.append(X_train) + y_train_sys.append(y_train) + X_test_sys.append(X_test) + y_test_sys.append(y_test) + + # X_train_sys = np.array(X_train_sys) + # y_train_sys = np.array(y_train_sys) + # X_test_sys = np.array(X_test_sys) + # y_test_sys = np.array(y_test_sys) + + return X_train_sys, y_train_sys, X_test_sys, y_test_sys + + +def load_sys_data(sys_dir, data_dir): + + """Utility function to load system feature. + + Parameters + ---------- + data_dir: string + directory of system description + + data_dir: string + directory of system feature + + Returns + ------- + X : list + system features + + Y: numpy array of shape (n_sys, 1), + groundtruth, 1 marks abnormal system + + sys_info: dictionary + system number, time-series length and dimention number + + """ + + sys_buf = pd.read_csv(sys_dir) + + X_csv_name = sys_buf['system'].values + Y = sys_buf['label'].values + X = [] + ts_len = [] + ts_dim = [] + + for x_name in X_csv_name: + ts_data_fname = os.path.join(data_dir, x_name) + ts_data = pd.read_csv(ts_data_fname).values + X.append(ts_data) + ts_len.append(ts_data.shape[0]) + ts_dim.append(ts_data.shape[1]) + + sys_info = {'sys_num': Y.shape[0], + 'ts_len': np.array(ts_len), + 'ts_ndim': np.array(ts_dim), + } + + # print(type(X)) + # print(type(Y)) + + return X, Y, sys_info + + +def generate_sys_feature(sys_feature: list): + + """Utility function to generate system feature. + + Parameters + ---------- + sys_feature : list + each element of the sys_feature is feature of each system + + Returns + ------- + sys_feature_array_with_id : numpy array of shape (n, 2), + the first column is system id, second column is its feature, n = feature number * system number. + + """ + + # ts_len = np.array([ts.shape[0] for ts in sys_feature]).min() + # ndim = np.array([ts.shape[1] for ts in sys_feature]).min() + # sys_feature = [ts[:ts_len, :ndim].T.reshape((ts_len*ndim, 1)) for ts in sys_feature] + + sys_id = np.concatenate([idx*np.ones((len(sys_feature[idx]),1)).astype(np.int) + for idx in range(len(sys_feature))], axis=0) + sys_feature_array = np.concatenate(sys_feature, axis=0) + sys_feature_array_with_id = np.concatenate((sys_id, sys_feature_array), axis=1) + + return sys_feature_array_with_id + + +# load_sys_data('/Users/didi/Documents/hegsns/hegsns/TODS/tods_Guanchu/tods/datasets/anomaly/system_wise/sample/train.csv', +# '/Users/didi/Documents/hegsns/hegsns/TODS/tods_Guanchu/tods/datasets/anomaly/system_wise/sample/systems') +# generate_3D_data(n_sys=5) \ No newline at end of file diff --git a/tods/tods_skinterface/primitiveSKI/Base_skinterface.py b/tods/tods_skinterface/primitiveSKI/Base_skinterface.py deleted file mode 100644 index 55ab814..0000000 --- a/tods/tods_skinterface/primitiveSKI/Base_skinterface.py +++ /dev/null @@ -1,106 +0,0 @@ -from d3m import container -from tods.detection_algorithm import DeepLog -from tods.detection_algorithm.PyodABOD import ABODPrimitive -from tods.detection_algorithm.PyodAE import AutoEncoderPrimitive -from tods.detection_algorithm.PyodSOD import SODPrimitive -from tods.detection_algorithm.AutoRegODetect import AutoRegODetectorPrimitive - -class BaseSKI(): - def __init__(self, primitive, **hyperparameter): - - hyperparam_buf = list(primitive.metadata.get_hyperparams().defaults().keys()) - hyperparam_input = list(hyperparameter.keys()) - if not set(hyperparam_buf) > set(hyperparam_input): - invalid_hyperparam = list(set(hyperparam_input) - set(hyperparam_buf)) - raise TypeError(self.__class__.__name__ + ' got unexpected keyword argument ' + str(invalid_hyperparam)) - - hyperparams_class = primitive.metadata.get_hyperparams() - hyperparams = hyperparams_class.defaults() - #print("items ", type(hyperparameter.items())) - if len(hyperparameter.items())!=0: - #for key, value in hyperparameter.items(): - hyperparams = hyperparams.replace(hyperparameter) - - self.primitive = primitive(hyperparams=hyperparams) - self.fit_available = False - self.predict_available = False - self.produce_available = False - - # print(hyperparams) - - def transform(self, X): #transform the ndarray to d3m dataframe, select columns to use - column_name = [str(col_index) for col_index in range(X.shape[1])] - return container.DataFrame(X, columns=column_name, generate_metadata=True) - - # use_columns = [iter for iter in range(len(X))] - # inputs = {} - # for i in use_columns: - # inputs['col_'+str(i)] = list(X[i]) - # inputs = container.DataFrame(inputs, columns=list(inputs.keys()), generate_metadata=True) - # return inputs - - def set_training_data(self, data): - return self.primitive.set_training_data(inputs=data) - - def fit(self, data): - # print(data) - - if not self.fit_available: - raise AttributeError('type object ' + self.__class__.__name__ + ' has no attribute \'fit\'') - - data = self.transform(data) - # print(data) - self.set_training_data(data) - - return self.primitive.fit() - - def predict(self, data): - - if not self.predict_available: - raise AttributeError('type object ' + self.__class__.__name__ + ' has no attribute \'predict\'') - - data = self.transform(data) - return self.primitive.produce(inputs=data).value.values - - def predict_score(self, data): - - if not self.predict_available: - raise AttributeError('type object ' + self.__class__.__name__ + ' has no attribute \'predict_score\'') - - data = self.transform(data) - return self.primitive.produce_score(inputs=data).value.values - - def produce(self, data): #produce function for other primitive types - - if not self.produce_available: - raise AttributeError('type object ' + self.__class__.__name__ + ' has no attribute \'produce\'') - - data = self.transform(data) - return self.primitive.produce(inputs=data).value.values -""" -if __name__ == '__main__': - import numpy as np - X_train = np.array([[3., 4., 8., 16, 18, 13., 22., 36., 59., 128, 62, 67, 78, 100]]) - X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - transformer = SKInterface(AutoRegODetectorPrimitive, contamination=0.2, window_size=2) - transformer.fit(X_train) - prediction_labels = transformer.produce(X_test) - prediction_score = transformer.produce_score(X_test) - print("Prediction Labels\n", prediction_labels) - print("Prediction Score\n", prediction_score) -""" - -""" - def transform(self, X): - inputs = {} - for i in range(len(X)): - inputs['col_'+str(i)] = list(X[i]) - inputs = container.DataFrame(inputs, columns=list(inputs.keys()), generate_metadata=True) - outputs = self.primitive.produce(inputs=inputs).value.to_numpy() - return outputs - - 'contamination': contamination, - 'use_columns': use_columns, - 'return_result': return_result, -""" -#use_columns=(-1,), contamination=0.1, return_result='append' diff --git a/tods/tods_skinterface/primitiveSKI/detection_algorithm/Ensemble_skinterface.py b/tods/tods_skinterface/primitiveSKI/detection_algorithm/Ensemble_skinterface.py deleted file mode 100644 index 347072b..0000000 --- a/tods/tods_skinterface/primitiveSKI/detection_algorithm/Ensemble_skinterface.py +++ /dev/null @@ -1,10 +0,0 @@ -import numpy as np -from ..Base_skinterface import BaseSKI -from tods.detection_algorithm.Ensemble import EnsemblePrimitive - -class EnsembleSKI(BaseSKI): - def __init__(self, **hyperparams): - super().__init__(primitive=EnsemblePrimitive, **hyperparams) - self.fit_available = True - self.predict_available = True - self.produce_available = False diff --git a/tods/tods_skinterface/primitiveSKI/detection_algorithm/__init__.py b/tods/tods_skinterface/primitiveSKI/detection_algorithm/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/tods/tods_skinterface/primitiveSKI/feature_analysis/__init__.py b/tods/tods_skinterface/primitiveSKI/feature_analysis/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/tods/tods_skinterface/primitiveSKI/timeseries_processing/__init__.py b/tods/tods_skinterface/primitiveSKI/timeseries_processing/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/tods/tods_skinterface/script/detection_algorithm_skitest_generation.py b/tods/tods_skinterface/script/detection_algorithm_skitest_generation.py deleted file mode 100644 index 19cbb03..0000000 --- a/tods/tods_skinterface/script/detection_algorithm_skitest_generation.py +++ /dev/null @@ -1,76 +0,0 @@ -#this file generates the _main.py files to test the primitives -import re -import os -import sys -#sys.path.insert(0, 'tods/utils/skinterface') -print(sys.path) -with open('../entry_points/entry_points_detection_algorithm.txt','r',encoding='utf-8') as f: - entry_file = f.read() - -output_dir = '../detection_algorithm_skitest' #output directory - - -primitive_folder_start_loc_buf = [i.start()+2 for i in re.finditer('=', entry_file)] -primitive_start_loc_buf = [i.start()+1 for i in re.finditer(':', entry_file)] -primitive_end_loc_buf = [i.start() for i in re.finditer('\n', entry_file)] - -for primitive_index, primitive_start_loc in enumerate(primitive_start_loc_buf): - - primitive_folder_start_loc = primitive_folder_start_loc_buf[primitive_index] - primitive_end_loc = primitive_end_loc_buf[primitive_index] - - primitive_folder = entry_file[primitive_folder_start_loc:primitive_start_loc-1] - primitive_name = entry_file[primitive_start_loc:primitive_end_loc] - # print(entry_file[primitive_folder_start_loc:primitive_start_loc-1]) - # print(entry_file[primitive_start_loc:primitive_end_loc]) - - primitve_api_name = primitive_name.replace('Primitive', '_skinterface') - class_name = primitive_name.replace('Primitive', 'SKI') -# import sys -# sys.path.insert(0, 'tods/utils')""" - import_line1 = 'import numpy as np' - - import_line2 = '\nfrom tods.tods_skinterface.primitiveSKI.detection_algorithm.'+ primitve_api_name + ' import ' + class_name + '\n\n' - #print(import_line) - - main_line1 = """X_train = np.array([[3., 4., 8., 16, 18, 13., 22., 36., 59., 128, 62, 67, 78, 100]]) -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]])\n -""" - main_line2 = 'transformer = ' + class_name + '()' - main_line3 = """ -transformer.fit(X_train) -prediction_labels = transformer.predict(X_test) -prediction_score = transformer.predict_score(X_test) - -print("Primitive: ", transformer.primitive) -print("Prediction Labels\\n", prediction_labels) -print("Prediction Score\\n", prediction_score) -""" - - python_content = import_line1 + import_line2 + main_line1+main_line2+main_line3 - python_name = primitive_name.replace('Primitive', '_skitest.py') - - with open(os.path.join(output_dir, python_name), 'w', encoding='utf-8') as f: - f.write(python_content) - print(os.path.join(output_dir, python_name)) - print(python_content) - -""" - main_line1 = 'X_train = np.array([[3., 4., 8., 16, 18, 13., 22., 36., 59., 128, 62, 67, 78, 100]])\n' - main_line2 = 'X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]])\n\n' - main_line3 = 'transformer = AutoRegODetectorSKI(contamination=0.2, window_size=2)\n' - main_line4 = 'transformer.fit(X_train)\n' - main_line5 = 'prediction_labels = transformer.predict(X_test)\n' - main_line6 = 'prediction_score = transformer.predict_score(X_test)\n\n' - main_line7 = 'print("Prediction Labels\n", prediction_labels)\n' - main_line8 = 'print("Prediction Score\n", prediction_score)\n' -""" -# import numpy as np -# from test_interface import SKInterface -# from tods.detection_algorithm.AutoRegODetect import AutoRegODetectorPrimitive -# -# class AutoRegODetect(SKInterface): -# def __init__(self, **hyperparams): -# super().__init__(primitive=AutoRegODetectorPrimitive, hyperparams) - - diff --git a/tods/tods_skinterface/script/feature_analysis_skitest_generation.py b/tods/tods_skinterface/script/feature_analysis_skitest_generation.py deleted file mode 100644 index 7aa1011..0000000 --- a/tods/tods_skinterface/script/feature_analysis_skitest_generation.py +++ /dev/null @@ -1,72 +0,0 @@ -#this file generates the _main.py files to test the primitives -import re -import os -import sys -#sys.path.insert(0, 'tods/utils/skinterface') -print(sys.path) -with open('../entry_points/entry_points_feature_analysis.txt','r',encoding='utf-8') as f: - entry_file = f.read() - -output_dir = '../feature_analysis_skitest' #output directory - - -primitive_folder_start_loc_buf = [i.start()+2 for i in re.finditer('=', entry_file)] -primitive_start_loc_buf = [i.start()+1 for i in re.finditer(':', entry_file)] -primitive_end_loc_buf = [i.start() for i in re.finditer('\n', entry_file)] - -for primitive_index, primitive_start_loc in enumerate(primitive_start_loc_buf): - - primitive_folder_start_loc = primitive_folder_start_loc_buf[primitive_index] - primitive_end_loc = primitive_end_loc_buf[primitive_index] - - primitive_folder = entry_file[primitive_folder_start_loc:primitive_start_loc-1] - primitive_name = entry_file[primitive_start_loc:primitive_end_loc] - # print(entry_file[primitive_folder_start_loc:primitive_start_loc-1]) - # print(entry_file[primitive_start_loc:primitive_end_loc]) - - primitve_api_name = primitive_name.replace('Primitive', '_skinterface') - class_name = primitive_name.replace('Primitive', 'SKI') -# import sys -# sys.path.insert(0, 'tods/utils')""" - import_line1 = 'import numpy as np' - - import_line2 = '\nfrom tods.tods_skinterface.primitiveSKI.feature_analysis.'+ primitve_api_name + ' import ' + class_name + '\n\n' - #print(import_line) - - main_line1 = """X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]])\n -""" - main_line2 = 'transformer = ' + class_name + '()' - main_line3 = """ -X_transform = transformer.produce(X_test) - -print("Primitive:", transformer.primitive) -print("X_transform:\\n", X_transform) -""" - - python_content = import_line1 + import_line2 + main_line1+main_line2+main_line3 - python_name = primitive_name.replace('Primitive', '_skitest.py') - - with open(os.path.join(output_dir, python_name), 'w', encoding='utf-8') as f: - f.write(python_content) - print(os.path.join(output_dir, python_name)) - print(python_content) - -""" - main_line1 = 'X_train = np.array([[3., 4., 8., 16, 18, 13., 22., 36., 59., 128, 62, 67, 78, 100]])\n' - main_line2 = 'X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]])\n\n' - main_line3 = 'transformer = AutoRegODetectorSKI(contamination=0.2, window_size=2)\n' - main_line4 = 'transformer.fit(X_train)\n' - main_line5 = 'prediction_labels = transformer.predict(X_test)\n' - main_line6 = 'prediction_score = transformer.predict_score(X_test)\n\n' - main_line7 = 'print("Prediction Labels\n", prediction_labels)\n' - main_line8 = 'print("Prediction Score\n", prediction_score)\n' -""" -# import numpy as np -# from test_interface import SKInterface -# from tods.detection_algorithm.AutoRegODetect import AutoRegODetectorPrimitive -# -# class AutoRegODetect(SKInterface): -# def __init__(self, **hyperparams): -# super().__init__(primitive=AutoRegODetectorPrimitive, hyperparams) - - diff --git a/tods/tods_skinterface/test/detection_algorithm/ABOD_skitest.py b/tods/tods_skinterface/test/detection_algorithm/ABOD_skitest.py deleted file mode 100644 index fe33576..0000000 --- a/tods/tods_skinterface/test/detection_algorithm/ABOD_skitest.py +++ /dev/null @@ -1,14 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.detection_algorithm.ABOD_skinterface import ABODSKI - -X_train = np.array([[3., 4., 8., 16, 18, 13., 22., 36., 59., 128, 62, 67, 78, 100]]) -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = ABODSKI() -transformer.fit(X_train) -prediction_labels = transformer.predict(X_test) -prediction_score = transformer.predict_score(X_test) - -print("Primitive: ", transformer.primitive) -print("Prediction Labels\n", prediction_labels) -print("Prediction Score\n", prediction_score) diff --git a/tods/tods_skinterface/test/detection_algorithm/AutoEncoder_skitest.py b/tods/tods_skinterface/test/detection_algorithm/AutoEncoder_skitest.py deleted file mode 100644 index fcb26a4..0000000 --- a/tods/tods_skinterface/test/detection_algorithm/AutoEncoder_skitest.py +++ /dev/null @@ -1,16 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.detection_algorithm.AutoEncoder_skinterface import AutoEncoderSKI - -X_train = np.array([[3., 4., 8.]]) -X_test = np.array([[3., 4., 8.6]]) -# X_train = np.array([[3., 4., 8., 16, 18, 13., 22., 36., 59., 128, 62, 67, 78, 100]]) -# X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = AutoEncoderSKI() -transformer.fit(X_train) -prediction_labels = transformer.predict(X_test) -prediction_score = transformer.predict_score(X_test) - -print("Primitive: ", transformer.primitive) -print("Prediction Labels\n", prediction_labels) -print("Prediction Score\n", prediction_score) diff --git a/tods/tods_skinterface/test/detection_algorithm/AutoRegODetector_skitest.py b/tods/tods_skinterface/test/detection_algorithm/AutoRegODetector_skitest.py deleted file mode 100644 index ac7a84a..0000000 --- a/tods/tods_skinterface/test/detection_algorithm/AutoRegODetector_skitest.py +++ /dev/null @@ -1,14 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.detection_algorithm.AutoRegODetector_skinterface import AutoRegODetectorSKI - -X_train = np.array([[3., 4., 8., 16, 18, 13., 22., 36., 59., 128, 62, 67, 78, 100]]) -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = AutoRegODetectorSKI() -transformer.fit(X_train) -prediction_labels = transformer.predict(X_test) -prediction_score = transformer.predict_score(X_test) - -print("Primitive: ", transformer.primitive) -print("Prediction Labels\n", prediction_labels) -print("Prediction Score\n", prediction_score) diff --git a/tods/tods_skinterface/test/detection_algorithm/CBLOF_skitest.py b/tods/tods_skinterface/test/detection_algorithm/CBLOF_skitest.py deleted file mode 100644 index 0ecdb30..0000000 --- a/tods/tods_skinterface/test/detection_algorithm/CBLOF_skitest.py +++ /dev/null @@ -1,14 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.detection_algorithm.CBLOF_skinterface import CBLOFSKI - -X_train = np.array([[3., 4., 8., 16, 18, 13., 22., 36., 59., 128, 62, 67, 78, 100]]) -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = CBLOFSKI() -transformer.fit(X_train) -prediction_labels = transformer.predict(X_test) -prediction_score = transformer.predict_score(X_test) - -print("Primitive: ", transformer.primitive) -print("Prediction Labels\n", prediction_labels) -print("Prediction Score\n", prediction_score) diff --git a/tods/tods_skinterface/test/detection_algorithm/COF_skitest.py b/tods/tods_skinterface/test/detection_algorithm/COF_skitest.py deleted file mode 100644 index 3294775..0000000 --- a/tods/tods_skinterface/test/detection_algorithm/COF_skitest.py +++ /dev/null @@ -1,14 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.detection_algorithm.COF_skinterface import COFSKI - -X_train = np.array([[3., 4., 8., 16, 18, 13., 22., 36., 59., 128, 62, 67, 78, 100]]) -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = COFSKI() -transformer.fit(X_train) -prediction_labels = transformer.predict(X_test) -prediction_score = transformer.predict_score(X_test) - -print("Primitive: ", transformer.primitive) -print("Prediction Labels\n", prediction_labels) -print("Prediction Score\n", prediction_score) diff --git a/tods/tods_skinterface/test/detection_algorithm/DeepLog_skitest.py b/tods/tods_skinterface/test/detection_algorithm/DeepLog_skitest.py deleted file mode 100644 index 81dad2c..0000000 --- a/tods/tods_skinterface/test/detection_algorithm/DeepLog_skitest.py +++ /dev/null @@ -1,14 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.detection_algorithm.DeepLog_skinterface import DeepLogSKI - -X_train = np.array([[3., 4., 8., 16, 18, 13., 22., 36., 59., 128, 62, 67, 78, 100]]) -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = DeepLogSKI() -transformer.fit(X_train) -prediction_labels = transformer.predict(X_test) -prediction_score = transformer.predict_score(X_test) - -print("Primitive: ", transformer.primitive) -print("Prediction Labels\n", prediction_labels) -print("Prediction Score\n", prediction_score) diff --git a/tods/tods_skinterface/test/detection_algorithm/Ensemble_skitest.py b/tods/tods_skinterface/test/detection_algorithm/Ensemble_skitest.py deleted file mode 100644 index 9b5e5e1..0000000 --- a/tods/tods_skinterface/test/detection_algorithm/Ensemble_skitest.py +++ /dev/null @@ -1,14 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.detection_algorithm.Ensemble_skinterface import EnsembleSKI - -X_train = np.array([[3., 4., 8., 16, 18, 13., 22., 36., 59., 128, 62, 67, 78, 100]]) -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = EnsembleSKI() -transformer.fit(X_train) -prediction_labels = transformer.predict(X_test) -prediction_score = transformer.predict_score(X_test) - -print("Primitive: ", transformer.primitive) -print("Prediction Labels\n", prediction_labels) -print("Prediction Score\n", prediction_score) diff --git a/tods/tods_skinterface/test/detection_algorithm/HBOS_skitest.py b/tods/tods_skinterface/test/detection_algorithm/HBOS_skitest.py deleted file mode 100644 index 54d2def..0000000 --- a/tods/tods_skinterface/test/detection_algorithm/HBOS_skitest.py +++ /dev/null @@ -1,14 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.detection_algorithm.HBOS_skinterface import HBOSSKI - -X_train = np.array([[3., 4., 8., 16, 18, 13., 22., 36., 59., 128, 62, 67, 78, 100]]) -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = HBOSSKI() -transformer.fit(X_train) -prediction_labels = transformer.predict(X_test) -prediction_score = transformer.predict_score(X_test) - -print("Primitive: ", transformer.primitive) -print("Prediction Labels\n", prediction_labels) -print("Prediction Score\n", prediction_score) diff --git a/tods/tods_skinterface/test/detection_algorithm/IsolationForest_skitest.py b/tods/tods_skinterface/test/detection_algorithm/IsolationForest_skitest.py deleted file mode 100644 index 40d022e..0000000 --- a/tods/tods_skinterface/test/detection_algorithm/IsolationForest_skitest.py +++ /dev/null @@ -1,14 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.detection_algorithm.IsolationForest_skinterface import IsolationForestSKI - -X_train = np.array([[3., 4., 8., 16, 18, 13., 22., 36., 59., 128, 62, 67, 78, 100]]) -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = IsolationForestSKI() -transformer.fit(X_train) -prediction_labels = transformer.predict(X_test) -prediction_score = transformer.predict_score(X_test) - -print("Primitive: ", transformer.primitive) -print("Prediction Labels\n", prediction_labels) -print("Prediction Score\n", prediction_score) diff --git a/tods/tods_skinterface/test/detection_algorithm/KDiscordODetector_skitest.py b/tods/tods_skinterface/test/detection_algorithm/KDiscordODetector_skitest.py deleted file mode 100644 index 209a0dd..0000000 --- a/tods/tods_skinterface/test/detection_algorithm/KDiscordODetector_skitest.py +++ /dev/null @@ -1,14 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.detection_algorithm.KDiscordODetector_skinterface import KDiscordODetectorSKI - -X_train = np.array([[3., 4., 8., 16, 18, 13., 22., 36., 59., 128, 62, 67, 78, 100]]) -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = KDiscordODetectorSKI() -transformer.fit(X_train) -prediction_labels = transformer.predict(X_test) -prediction_score = transformer.predict_score(X_test) - -print("Primitive: ", transformer.primitive) -print("Prediction Labels\n", prediction_labels) -print("Prediction Score\n", prediction_score) diff --git a/tods/tods_skinterface/test/detection_algorithm/KNN_skitest.py b/tods/tods_skinterface/test/detection_algorithm/KNN_skitest.py deleted file mode 100644 index 0824508..0000000 --- a/tods/tods_skinterface/test/detection_algorithm/KNN_skitest.py +++ /dev/null @@ -1,14 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.detection_algorithm.KNN_skinterface import KNNSKI - -X_train = np.array([[3., 4., 8., 16, 18, 13., 22., 36., 59., 128, 62, 67, 78, 100]]) -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = KNNSKI() -transformer.fit(X_train) -prediction_labels = transformer.predict(X_test) -prediction_score = transformer.predict_score(X_test) - -print("Primitive: ", transformer.primitive) -print("Prediction Labels\n", prediction_labels) -print("Prediction Score\n", prediction_score) diff --git a/tods/tods_skinterface/test/detection_algorithm/LODA_skitest.py b/tods/tods_skinterface/test/detection_algorithm/LODA_skitest.py deleted file mode 100644 index dd4c577..0000000 --- a/tods/tods_skinterface/test/detection_algorithm/LODA_skitest.py +++ /dev/null @@ -1,14 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.detection_algorithm.LODA_skinterface import LODASKI - -X_train = np.array([[3., 4., 8., 16, 18, 13., 22., 36., 59., 128, 62, 67, 78, 100]]) -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = LODASKI() -transformer.fit(X_train) -prediction_labels = transformer.predict(X_test) -prediction_score = transformer.predict_score(X_test) - -print("Primitive: ", transformer.primitive) -print("Prediction Labels\n", prediction_labels) -print("Prediction Score\n", prediction_score) diff --git a/tods/tods_skinterface/test/detection_algorithm/LOF_skitest.py b/tods/tods_skinterface/test/detection_algorithm/LOF_skitest.py deleted file mode 100644 index 9e8f55f..0000000 --- a/tods/tods_skinterface/test/detection_algorithm/LOF_skitest.py +++ /dev/null @@ -1,14 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.detection_algorithm.LOF_skinterface import LOFSKI - -X_train = np.array([[3., 4., 8., 16, 18, 13., 22., 36., 59., 128, 62, 67, 78, 100]]) -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = LOFSKI() -transformer.fit(X_train) -prediction_labels = transformer.predict(X_test) -prediction_score = transformer.predict_score(X_test) - -print("Primitive: ", transformer.primitive) -print("Prediction Labels\n", prediction_labels) -print("Prediction Score\n", prediction_score) diff --git a/tods/tods_skinterface/test/detection_algorithm/LSTMODetector_skitest.py b/tods/tods_skinterface/test/detection_algorithm/LSTMODetector_skitest.py deleted file mode 100644 index 8a61e2b..0000000 --- a/tods/tods_skinterface/test/detection_algorithm/LSTMODetector_skitest.py +++ /dev/null @@ -1,14 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.detection_algorithm.LSTMODetector_skinterface import LSTMODetectorSKI - -X_train = np.array([[3., 4., 8., 16, 18, 13., 22., 36., 59., 128, 62, 67, 78, 100]]) -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = LSTMODetectorSKI() -transformer.fit(X_train) -prediction_labels = transformer.predict(X_test) -prediction_score = transformer.predict_score(X_test) - -print("Primitive: ", transformer.primitive) -print("Prediction Labels\n", prediction_labels) -print("Prediction Score\n", prediction_score) diff --git a/tods/tods_skinterface/test/detection_algorithm/MatrixProfile_skitest.py b/tods/tods_skinterface/test/detection_algorithm/MatrixProfile_skitest.py deleted file mode 100644 index 54ef73d..0000000 --- a/tods/tods_skinterface/test/detection_algorithm/MatrixProfile_skitest.py +++ /dev/null @@ -1,14 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.detection_algorithm.MatrixProfile_skinterface import MatrixProfileSKI - -X_train = np.array([[3., 4., 8., 16, 18, 13., 22., 36., 59., 128, 62, 67, 78, 100]]) -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = MatrixProfileSKI() -transformer.fit(X_train) -prediction_labels = transformer.predict(X_test) -prediction_score = transformer.predict_score(X_test) - -print("Primitive: ", transformer.primitive) -print("Prediction Labels\n", prediction_labels) -print("Prediction Score\n", prediction_score) diff --git a/tods/tods_skinterface/test/detection_algorithm/Mo_Gaal_skitest.py b/tods/tods_skinterface/test/detection_algorithm/Mo_Gaal_skitest.py deleted file mode 100644 index cefa4ee..0000000 --- a/tods/tods_skinterface/test/detection_algorithm/Mo_Gaal_skitest.py +++ /dev/null @@ -1,14 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.detection_algorithm.Mo_Gaal_skinterface import Mo_GaalSKI - -X_train = np.array([[3., 4., 8., 16, 18, 13., 22., 36., 59., 128, 62, 67, 78, 100]]) -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = Mo_GaalSKI() -transformer.fit(X_train) -prediction_labels = transformer.predict(X_test) -prediction_score = transformer.predict_score(X_test) - -print("Primitive: ", transformer.primitive) -print("Prediction Labels\n", prediction_labels) -print("Prediction Score\n", prediction_score) diff --git a/tods/tods_skinterface/test/detection_algorithm/OCSVM_skitest.py b/tods/tods_skinterface/test/detection_algorithm/OCSVM_skitest.py deleted file mode 100644 index 2e4ee8e..0000000 --- a/tods/tods_skinterface/test/detection_algorithm/OCSVM_skitest.py +++ /dev/null @@ -1,14 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.detection_algorithm.OCSVM_skinterface import OCSVMSKI - -X_train = np.array([[3., 4., 8., 16, 18, 13., 22., 36., 59., 128, 62, 67, 78, 100]]) -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = OCSVMSKI() -transformer.fit(X_train) -prediction_labels = transformer.predict(X_test) -prediction_score = transformer.predict_score(X_test) - -print("Primitive: ", transformer.primitive) -print("Prediction Labels\n", prediction_labels) -print("Prediction Score\n", prediction_score) diff --git a/tods/tods_skinterface/test/detection_algorithm/PCAODetector_skitest.py b/tods/tods_skinterface/test/detection_algorithm/PCAODetector_skitest.py deleted file mode 100644 index 63547f9..0000000 --- a/tods/tods_skinterface/test/detection_algorithm/PCAODetector_skitest.py +++ /dev/null @@ -1,14 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.detection_algorithm.PCAODetector_skinterface import PCAODetectorSKI - -X_train = np.array([[3., 4., 8., 16, 18, 13., 22., 36., 59., 128, 62, 67, 78, 100]]) -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = PCAODetectorSKI() -transformer.fit(X_train) -prediction_labels = transformer.predict(X_test) -prediction_score = transformer.predict_score(X_test) - -print("Primitive: ", transformer.primitive) -print("Prediction Labels\n", prediction_labels) -print("Prediction Score\n", prediction_score) diff --git a/tods/tods_skinterface/test/detection_algorithm/SOD_skitest.py b/tods/tods_skinterface/test/detection_algorithm/SOD_skitest.py deleted file mode 100644 index f33e08c..0000000 --- a/tods/tods_skinterface/test/detection_algorithm/SOD_skitest.py +++ /dev/null @@ -1,14 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.detection_algorithm.SOD_skinterface import SODSKI - -X_train = np.array([[3., 4., 8., 16, 18, 13., 22., 36., 59., 128, 62, 67, 78, 100]]) -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = SODSKI() -transformer.fit(X_train) -prediction_labels = transformer.predict(X_test) -prediction_score = transformer.predict_score(X_test) - -print("Primitive: ", transformer.primitive) -print("Prediction Labels\n", prediction_labels) -print("Prediction Score\n", prediction_score) diff --git a/tods/tods_skinterface/test/detection_algorithm/So_Gaal_skitest.py b/tods/tods_skinterface/test/detection_algorithm/So_Gaal_skitest.py deleted file mode 100644 index 5756868..0000000 --- a/tods/tods_skinterface/test/detection_algorithm/So_Gaal_skitest.py +++ /dev/null @@ -1,14 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.detection_algorithm.So_Gaal_skinterface import So_GaalSKI - -X_train = np.array([[3., 4., 8., 16, 18, 13., 22., 36., 59., 128, 62, 67, 78, 100]]) -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = So_GaalSKI() -transformer.fit(X_train) -prediction_labels = transformer.predict(X_test) -prediction_score = transformer.predict_score(X_test) - -print("Primitive: ", transformer.primitive) -print("Prediction Labels\n", prediction_labels) -print("Prediction Score\n", prediction_score) diff --git a/tods/tods_skinterface/test/detection_algorithm/SystemWiseDetection_skitest.py b/tods/tods_skinterface/test/detection_algorithm/SystemWiseDetection_skitest.py deleted file mode 100644 index ac135c3..0000000 --- a/tods/tods_skinterface/test/detection_algorithm/SystemWiseDetection_skitest.py +++ /dev/null @@ -1,14 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.detection_algorithm.SystemWiseDetection_skinterface import SystemWiseDetectionSKI - -X_train = np.array([[3., 4., 8., 16, 18, 13., 22., 36., 59., 128, 62, 67, 78, 100]]) -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = SystemWiseDetectionSKI() -transformer.fit(X_train) -prediction_labels = transformer.predict(X_test) -prediction_score = transformer.predict_score(X_test) - -print("Primitive: ", transformer.primitive) -print("Prediction Labels\n", prediction_labels) -print("Prediction Score\n", prediction_score) diff --git a/tods/tods_skinterface/test/detection_algorithm/Telemanom_skitest.py b/tods/tods_skinterface/test/detection_algorithm/Telemanom_skitest.py deleted file mode 100644 index 5942155..0000000 --- a/tods/tods_skinterface/test/detection_algorithm/Telemanom_skitest.py +++ /dev/null @@ -1,16 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.detection_algorithm.Telemanom_skinterface import TelemanomSKI - -X_train = np.random.rand(9, 3) -X_test = np.random.rand(9, 3) - -transformer = TelemanomSKI(l_s= 2, n_predictions= 1) -transformer.fit(X_train) -prediction_labels = transformer.predict(X_test) -prediction_score = transformer.predict_score(X_test) - -print("Primitive: ", transformer.primitive) -print("Prediction Labels\n", prediction_labels) -print("Prediction Score\n", prediction_score) - - diff --git a/tods/tods_skinterface/test/detection_algorithm/VariationalAutoEncoder_skitest.py b/tods/tods_skinterface/test/detection_algorithm/VariationalAutoEncoder_skitest.py deleted file mode 100644 index 2a78aa9..0000000 --- a/tods/tods_skinterface/test/detection_algorithm/VariationalAutoEncoder_skitest.py +++ /dev/null @@ -1,14 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.detection_algorithm.VariationalAutoEncoder_skinterface import VariationalAutoEncoderSKI - -X_train = np.array([[3., 4., 8., 16, 18, 13., 22., 36., 59., 128, 62, 67, 78, 100]]) -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = VariationalAutoEncoderSKI() -transformer.fit(X_train) -prediction_labels = transformer.predict(X_test) -prediction_score = transformer.predict_score(X_test) - -print("Primitive: ", transformer.primitive) -print("Prediction Labels\n", prediction_labels) -print("Prediction Score\n", prediction_score) diff --git a/tods/tods_skinterface/test/feature_analysis/AutoCorrelation_skitest.py b/tods/tods_skinterface/test/feature_analysis/AutoCorrelation_skitest.py deleted file mode 100644 index b21e8d4..0000000 --- a/tods/tods_skinterface/test/feature_analysis/AutoCorrelation_skitest.py +++ /dev/null @@ -1,10 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.feature_analysis.AutoCorrelation_skinterface import AutoCorrelationSKI - -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = AutoCorrelationSKI() -X_transform = transformer.produce(X_test) - -print("Primitive:", transformer.primitive) -print("X_transform:\n", X_transform) diff --git a/tods/tods_skinterface/test/feature_analysis/BKFilter_skitest.py b/tods/tods_skinterface/test/feature_analysis/BKFilter_skitest.py deleted file mode 100644 index 8d21ff8..0000000 --- a/tods/tods_skinterface/test/feature_analysis/BKFilter_skitest.py +++ /dev/null @@ -1,10 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.feature_analysis.BKFilter_skinterface import BKFilterSKI - -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = BKFilterSKI() -X_transform = transformer.produce(X_test) - -print("Primitive:", transformer.primitive) -print("X_transform:\n", X_transform) diff --git a/tods/tods_skinterface/test/feature_analysis/DiscreteCosineTransform_skitest.py b/tods/tods_skinterface/test/feature_analysis/DiscreteCosineTransform_skitest.py deleted file mode 100644 index 1b390d5..0000000 --- a/tods/tods_skinterface/test/feature_analysis/DiscreteCosineTransform_skitest.py +++ /dev/null @@ -1,10 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.feature_analysis.DiscreteCosineTransform_skinterface import DiscreteCosineTransformSKI - -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = DiscreteCosineTransformSKI() -X_transform = transformer.produce(X_test) - -print("Primitive:", transformer.primitive) -print("X_transform:\n", X_transform) diff --git a/tods/tods_skinterface/test/feature_analysis/FastFourierTransform_skitest.py b/tods/tods_skinterface/test/feature_analysis/FastFourierTransform_skitest.py deleted file mode 100644 index ac2de98..0000000 --- a/tods/tods_skinterface/test/feature_analysis/FastFourierTransform_skitest.py +++ /dev/null @@ -1,10 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.feature_analysis.FastFourierTransform_skinterface import FastFourierTransformSKI - -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = FastFourierTransformSKI() -X_transform = transformer.produce(X_test) - -print("Primitive:", transformer.primitive) -print("X_transform:\n", X_transform) diff --git a/tods/tods_skinterface/test/feature_analysis/HPFilter_skitest.py b/tods/tods_skinterface/test/feature_analysis/HPFilter_skitest.py deleted file mode 100644 index 5c02b3d..0000000 --- a/tods/tods_skinterface/test/feature_analysis/HPFilter_skitest.py +++ /dev/null @@ -1,10 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.feature_analysis.HPFilter_skinterface import HPFilterSKI - -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = HPFilterSKI() -X_transform = transformer.produce(X_test) - -print("Primitive:", transformer.primitive) -print("X_transform:\n", X_transform) diff --git a/tods/tods_skinterface/test/feature_analysis/NonNegativeMatrixFactorization_skitest.py b/tods/tods_skinterface/test/feature_analysis/NonNegativeMatrixFactorization_skitest.py deleted file mode 100644 index 96ec1b1..0000000 --- a/tods/tods_skinterface/test/feature_analysis/NonNegativeMatrixFactorization_skitest.py +++ /dev/null @@ -1,10 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.feature_analysis.NonNegativeMatrixFactorization_skinterface import NonNegativeMatrixFactorizationSKI - -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, 23, 59.2]]) - -transformer = NonNegativeMatrixFactorizationSKI() -X_transform = transformer.produce(X_test) - -print("Primitive:", transformer.primitive) -print("X_transform:\n", X_transform) diff --git a/tods/tods_skinterface/test/feature_analysis/SKTruncatedSVD_skitest.py b/tods/tods_skinterface/test/feature_analysis/SKTruncatedSVD_skitest.py deleted file mode 100644 index 01b49bb..0000000 --- a/tods/tods_skinterface/test/feature_analysis/SKTruncatedSVD_skitest.py +++ /dev/null @@ -1,10 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.feature_analysis.SKTruncatedSVD_skinterface import SKTruncatedSVDSKI - -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = SKTruncatedSVDSKI() -X_transform = transformer.produce(X_test) - -print("Primitive:", transformer.primitive) -print("X_transform:\n", X_transform) diff --git a/tods/tods_skinterface/test/feature_analysis/SpectralResidualTransform_skitest.py b/tods/tods_skinterface/test/feature_analysis/SpectralResidualTransform_skitest.py deleted file mode 100644 index 8f63291..0000000 --- a/tods/tods_skinterface/test/feature_analysis/SpectralResidualTransform_skitest.py +++ /dev/null @@ -1,10 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.feature_analysis.SpectralResidualTransform_skinterface import SpectralResidualTransformSKI - -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = SpectralResidualTransformSKI() -X_transform = transformer.produce(X_test) - -print("Primitive:", transformer.primitive) -print("X_transform:\n", X_transform) diff --git a/tods/tods_skinterface/test/feature_analysis/StatisticalAbsEnergy_skitest.py b/tods/tods_skinterface/test/feature_analysis/StatisticalAbsEnergy_skitest.py deleted file mode 100644 index 953b14c..0000000 --- a/tods/tods_skinterface/test/feature_analysis/StatisticalAbsEnergy_skitest.py +++ /dev/null @@ -1,10 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.feature_analysis.StatisticalAbsEnergy_skinterface import StatisticalAbsEnergySKI - -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = StatisticalAbsEnergySKI() -X_transform = transformer.produce(X_test) - -print("Primitive:", transformer.primitive) -print("X_transform:\n", X_transform) diff --git a/tods/tods_skinterface/test/feature_analysis/StatisticalAbsSum_skitest.py b/tods/tods_skinterface/test/feature_analysis/StatisticalAbsSum_skitest.py deleted file mode 100644 index 9d3fbff..0000000 --- a/tods/tods_skinterface/test/feature_analysis/StatisticalAbsSum_skitest.py +++ /dev/null @@ -1,10 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.feature_analysis.StatisticalAbsSum_skinterface import StatisticalAbsSumSKI - -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = StatisticalAbsSumSKI() -X_transform = transformer.produce(X_test) - -print("Primitive:", transformer.primitive) -print("X_transform:\n", X_transform) diff --git a/tods/tods_skinterface/test/feature_analysis/StatisticalGmean_skitest.py b/tods/tods_skinterface/test/feature_analysis/StatisticalGmean_skitest.py deleted file mode 100644 index 1e9a9fd..0000000 --- a/tods/tods_skinterface/test/feature_analysis/StatisticalGmean_skitest.py +++ /dev/null @@ -1,10 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.feature_analysis.StatisticalGmean_skinterface import StatisticalGmeanSKI - -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = StatisticalGmeanSKI() -X_transform = transformer.produce(X_test) - -print("Primitive:", transformer.primitive) -print("X_transform:\n", X_transform) diff --git a/tods/tods_skinterface/test/feature_analysis/StatisticalHmean_skitest.py b/tods/tods_skinterface/test/feature_analysis/StatisticalHmean_skitest.py deleted file mode 100644 index cd0ddea..0000000 --- a/tods/tods_skinterface/test/feature_analysis/StatisticalHmean_skitest.py +++ /dev/null @@ -1,10 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.feature_analysis.StatisticalHmean_skinterface import StatisticalHmeanSKI - -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = StatisticalHmeanSKI() -X_transform = transformer.produce(X_test) - -print("Primitive:", transformer.primitive) -print("X_transform:\n", X_transform) diff --git a/tods/tods_skinterface/test/feature_analysis/StatisticalKurtosis_skitest.py b/tods/tods_skinterface/test/feature_analysis/StatisticalKurtosis_skitest.py deleted file mode 100644 index 172bd45..0000000 --- a/tods/tods_skinterface/test/feature_analysis/StatisticalKurtosis_skitest.py +++ /dev/null @@ -1,10 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.feature_analysis.StatisticalKurtosis_skinterface import StatisticalKurtosisSKI - -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = StatisticalKurtosisSKI() -X_transform = transformer.produce(X_test) - -print("Primitive:", transformer.primitive) -print("X_transform:\n", X_transform) diff --git a/tods/tods_skinterface/test/feature_analysis/StatisticalMaximum_skitest.py b/tods/tods_skinterface/test/feature_analysis/StatisticalMaximum_skitest.py deleted file mode 100644 index 29b31e6..0000000 --- a/tods/tods_skinterface/test/feature_analysis/StatisticalMaximum_skitest.py +++ /dev/null @@ -1,10 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.feature_analysis.StatisticalMaximum_skinterface import StatisticalMaximumSKI - -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = StatisticalMaximumSKI() -X_transform = transformer.produce(X_test) - -print("Primitive:", transformer.primitive) -print("X_transform:\n", X_transform) diff --git a/tods/tods_skinterface/test/feature_analysis/StatisticalMeanAbsTemporalDerivative_skitest.py b/tods/tods_skinterface/test/feature_analysis/StatisticalMeanAbsTemporalDerivative_skitest.py deleted file mode 100644 index 9b9af2a..0000000 --- a/tods/tods_skinterface/test/feature_analysis/StatisticalMeanAbsTemporalDerivative_skitest.py +++ /dev/null @@ -1,10 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.feature_analysis.StatisticalMeanAbsTemporalDerivative_skinterface import StatisticalMeanAbsTemporalDerivativeSKI - -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = StatisticalMeanAbsTemporalDerivativeSKI() -X_transform = transformer.produce(X_test) - -print("Primitive:", transformer.primitive) -print("X_transform:\n", X_transform) diff --git a/tods/tods_skinterface/test/feature_analysis/StatisticalMeanAbs_skitest.py b/tods/tods_skinterface/test/feature_analysis/StatisticalMeanAbs_skitest.py deleted file mode 100644 index af3a701..0000000 --- a/tods/tods_skinterface/test/feature_analysis/StatisticalMeanAbs_skitest.py +++ /dev/null @@ -1,10 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.feature_analysis.StatisticalMeanAbs_skinterface import StatisticalMeanAbsSKI - -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = StatisticalMeanAbsSKI() -X_transform = transformer.produce(X_test) - -print("Primitive:", transformer.primitive) -print("X_transform:\n", X_transform) diff --git a/tods/tods_skinterface/test/feature_analysis/StatisticalMeanTemporalDerivative_skitest.py b/tods/tods_skinterface/test/feature_analysis/StatisticalMeanTemporalDerivative_skitest.py deleted file mode 100644 index 0c57237..0000000 --- a/tods/tods_skinterface/test/feature_analysis/StatisticalMeanTemporalDerivative_skitest.py +++ /dev/null @@ -1,10 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.feature_analysis.StatisticalMeanTemporalDerivative_skinterface import StatisticalMeanTemporalDerivativeSKI - -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = StatisticalMeanTemporalDerivativeSKI() -X_transform = transformer.produce(X_test) - -print("Primitive:", transformer.primitive) -print("X_transform:\n", X_transform) diff --git a/tods/tods_skinterface/test/feature_analysis/StatisticalMean_skitest.py b/tods/tods_skinterface/test/feature_analysis/StatisticalMean_skitest.py deleted file mode 100644 index aa3827d..0000000 --- a/tods/tods_skinterface/test/feature_analysis/StatisticalMean_skitest.py +++ /dev/null @@ -1,10 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.feature_analysis.StatisticalMean_skinterface import StatisticalMeanSKI - -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = StatisticalMeanSKI() -X_transform = transformer.produce(X_test) - -print("Primitive:", transformer.primitive) -print("X_transform:\n", X_transform) diff --git a/tods/tods_skinterface/test/feature_analysis/StatisticalMedianAbsoluteDeviation_skitest.py b/tods/tods_skinterface/test/feature_analysis/StatisticalMedianAbsoluteDeviation_skitest.py deleted file mode 100644 index 2f0d34a..0000000 --- a/tods/tods_skinterface/test/feature_analysis/StatisticalMedianAbsoluteDeviation_skitest.py +++ /dev/null @@ -1,10 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.feature_analysis.StatisticalMedianAbsoluteDeviation_skinterface import StatisticalMedianAbsoluteDeviationSKI - -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = StatisticalMedianAbsoluteDeviationSKI() -X_transform = transformer.produce(X_test) - -print("Primitive:", transformer.primitive) -print("X_transform:\n", X_transform) diff --git a/tods/tods_skinterface/test/feature_analysis/StatisticalMedian_skitest.py b/tods/tods_skinterface/test/feature_analysis/StatisticalMedian_skitest.py deleted file mode 100644 index 1235fc9..0000000 --- a/tods/tods_skinterface/test/feature_analysis/StatisticalMedian_skitest.py +++ /dev/null @@ -1,10 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.feature_analysis.StatisticalMedian_skinterface import StatisticalMedianSKI - -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = StatisticalMedianSKI() -X_transform = transformer.produce(X_test) - -print("Primitive:", transformer.primitive) -print("X_transform:\n", X_transform) diff --git a/tods/tods_skinterface/test/feature_analysis/StatisticalMinimum_skitest.py b/tods/tods_skinterface/test/feature_analysis/StatisticalMinimum_skitest.py deleted file mode 100644 index 1afdb7e..0000000 --- a/tods/tods_skinterface/test/feature_analysis/StatisticalMinimum_skitest.py +++ /dev/null @@ -1,10 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.feature_analysis.StatisticalMinimum_skinterface import StatisticalMinimumSKI - -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = StatisticalMinimumSKI() -X_transform = transformer.produce(X_test) - -print("Primitive:", transformer.primitive) -print("X_transform:\n", X_transform) diff --git a/tods/tods_skinterface/test/feature_analysis/StatisticalSkew_skitest.py b/tods/tods_skinterface/test/feature_analysis/StatisticalSkew_skitest.py deleted file mode 100644 index 90e0356..0000000 --- a/tods/tods_skinterface/test/feature_analysis/StatisticalSkew_skitest.py +++ /dev/null @@ -1,10 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.feature_analysis.StatisticalSkew_skinterface import StatisticalSkewSKI - -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = StatisticalSkewSKI() -X_transform = transformer.produce(X_test) - -print("Primitive:", transformer.primitive) -print("X_transform:\n", X_transform) diff --git a/tods/tods_skinterface/test/feature_analysis/StatisticalStd_skitest.py b/tods/tods_skinterface/test/feature_analysis/StatisticalStd_skitest.py deleted file mode 100644 index 33f42c9..0000000 --- a/tods/tods_skinterface/test/feature_analysis/StatisticalStd_skitest.py +++ /dev/null @@ -1,10 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.feature_analysis.StatisticalStd_skinterface import StatisticalStdSKI - -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = StatisticalStdSKI() -X_transform = transformer.produce(X_test) - -print("Primitive:", transformer.primitive) -print("X_transform:\n", X_transform) diff --git a/tods/tods_skinterface/test/feature_analysis/StatisticalVar_skitest.py b/tods/tods_skinterface/test/feature_analysis/StatisticalVar_skitest.py deleted file mode 100644 index c4048ce..0000000 --- a/tods/tods_skinterface/test/feature_analysis/StatisticalVar_skitest.py +++ /dev/null @@ -1,10 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.feature_analysis.StatisticalVar_skinterface import StatisticalVarSKI - -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = StatisticalVarSKI() -X_transform = transformer.produce(X_test) - -print("Primitive:", transformer.primitive) -print("X_transform:\n", X_transform) diff --git a/tods/tods_skinterface/test/feature_analysis/StatisticalVariation_skitest.py b/tods/tods_skinterface/test/feature_analysis/StatisticalVariation_skitest.py deleted file mode 100644 index fb288f7..0000000 --- a/tods/tods_skinterface/test/feature_analysis/StatisticalVariation_skitest.py +++ /dev/null @@ -1,10 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.feature_analysis.StatisticalVariation_skinterface import StatisticalVariationSKI - -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = StatisticalVariationSKI() -X_transform = transformer.produce(X_test) - -print("Primitive:", transformer.primitive) -print("X_transform:\n", X_transform) diff --git a/tods/tods_skinterface/test/feature_analysis/StatisticalVecSum_skitest.py b/tods/tods_skinterface/test/feature_analysis/StatisticalVecSum_skitest.py deleted file mode 100644 index 17e12a6..0000000 --- a/tods/tods_skinterface/test/feature_analysis/StatisticalVecSum_skitest.py +++ /dev/null @@ -1,10 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.feature_analysis.StatisticalVecSum_skinterface import StatisticalVecSumSKI - -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = StatisticalVecSumSKI() -X_transform = transformer.produce(X_test) - -print("Primitive:", transformer.primitive) -print("X_transform:\n", X_transform) diff --git a/tods/tods_skinterface/test/feature_analysis/StatisticalWillisonAmplitude_skitest.py b/tods/tods_skinterface/test/feature_analysis/StatisticalWillisonAmplitude_skitest.py deleted file mode 100644 index 9e89fa5..0000000 --- a/tods/tods_skinterface/test/feature_analysis/StatisticalWillisonAmplitude_skitest.py +++ /dev/null @@ -1,10 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.feature_analysis.StatisticalWillisonAmplitude_skinterface import StatisticalWillisonAmplitudeSKI - -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = StatisticalWillisonAmplitudeSKI() -X_transform = transformer.produce(X_test) - -print("Primitive:", transformer.primitive) -print("X_transform:\n", X_transform) diff --git a/tods/tods_skinterface/test/feature_analysis/StatisticalZeroCrossing_skitest.py b/tods/tods_skinterface/test/feature_analysis/StatisticalZeroCrossing_skitest.py deleted file mode 100644 index 0c3e042..0000000 --- a/tods/tods_skinterface/test/feature_analysis/StatisticalZeroCrossing_skitest.py +++ /dev/null @@ -1,10 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.feature_analysis.StatisticalZeroCrossing_skinterface import StatisticalZeroCrossingSKI - -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = StatisticalZeroCrossingSKI() -X_transform = transformer.produce(X_test) - -print("Primitive:", transformer.primitive) -print("X_transform:\n", X_transform) diff --git a/tods/tods_skinterface/test/feature_analysis/TRMF_skitest.py b/tods/tods_skinterface/test/feature_analysis/TRMF_skitest.py deleted file mode 100644 index 6e189e4..0000000 --- a/tods/tods_skinterface/test/feature_analysis/TRMF_skitest.py +++ /dev/null @@ -1,10 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.feature_analysis.TRMF_skinterface import TRMFSKI - -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = TRMFSKI() -X_transform = transformer.produce(X_test) - -print("Primitive:", transformer.primitive) -print("X_transform:\n", X_transform) diff --git a/tods/tods_skinterface/test/feature_analysis/WaveletTransform_skitest.py b/tods/tods_skinterface/test/feature_analysis/WaveletTransform_skitest.py deleted file mode 100644 index ba387d2..0000000 --- a/tods/tods_skinterface/test/feature_analysis/WaveletTransform_skitest.py +++ /dev/null @@ -1,10 +0,0 @@ -import numpy as np -from tods.tods_skinterface.primitiveSKI.feature_analysis.WaveletTransform_skinterface import WaveletTransformSKI - -X_test = np.array([[3., 4., 8.6, 13.4, 22.5, 17, 19.2, 36.1, 127, -23, 59.2]]) - -transformer = WaveletTransformSKI() -X_transform = transformer.produce(X_test) - -print("Primitive:", transformer.primitive) -print("X_transform:\n", X_transform) diff --git a/tods/tods_skinterface/test_api.sh b/tods/tods_skinterface/test_api.sh deleted file mode 100644 index a07d8e3..0000000 --- a/tods/tods_skinterface/test_api.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash -test_scripts=$(ls tods/utils/test_main) -for file in $test_scripts -do - for f in $tested_file - do - echo $f - echo $file - done - echo $file - - # Test pipeline building - python tods/utils/test_main/$file > tods/utils/skinterface/tmp.txt 2>>tods/utils/skinterface/tmp.txt - error=$(cat tmp.txt | grep 'Error' | wc -l) - echo "\t#Pipeline Building Errors:" $error - if [ "$error" -gt "0" ] - then - cat tods/utils/skinterface/tmp.txt - #rm tmp.txt - break - fi - echo $file >> tods/utils/skinterface/tested_file.txt -done - -# do -# for f in *.py; do python "$f"; done -# done \ No newline at end of file