Exemple #1
0
    def test_algorithm_initializations():
        def detectors(seed):
            dets = [
                AutoEncoder(num_epochs=1, seed=seed),
                DAGMM(num_epochs=1, seed=seed),
                DAGMM(num_epochs=1,
                      autoencoder_type=DAGMM.AutoEncoder.LSTM,
                      seed=seed),
                LSTMAD(num_epochs=1, seed=seed),
                LSTMED(num_epochs=1, seed=seed),
                RecurrentEBM(num_epochs=1, seed=seed)
            ]
            return sorted(dets, key=lambda x: x.framework)

        RUNS = 1
        seeds = np.random.randint(np.iinfo(np.uint32).max,
                                  size=RUNS,
                                  dtype=np.uint32)
        output_dir = 'reports/experiments'
        evaluators = []
        outlier_height_steps = 1

        for outlier_type in ['extreme_1', 'shift_1', 'variance_1', 'trend_1']:
            announce_experiment('Outlier Height')
            ev_extr = run_extremes_experiment(detectors,
                                              seeds,
                                              RUNS,
                                              outlier_type,
                                              steps=outlier_height_steps,
                                              output_dir=os.path.join(
                                                  output_dir, outlier_type,
                                                  'intensity'))
            evaluators.append(ev_extr)

        ev_extr.plot_single_heatmap()
def run_experiments():
    # Set the seed manually for reproducibility.
    seeds = np.random.randint(np.iinfo(np.uint32).max,
                              size=RUNS,
                              dtype=np.uint32)
    output_dir = 'reports/experiments'
    evaluators = []

    announce_experiment('Multivariate Datasets')
    ev_mv = run_multivariate_experiment(detectors,
                                        seeds,
                                        RUNS,
                                        output_dir=os.path.join(
                                            output_dir, 'multivariate'))
    evaluators.append(ev_mv)

    for ev in evaluators:
        ev.plot_single_heatmap()
def run_experiments():
    # Set the seed manually for reproducibility.
    seeds = np.random.randint(np.iinfo(np.uint32).max,
                              size=RUNS,
                              dtype=np.uint32)
    output_dir = 'reports/experiments'
    evaluators = []
    outlier_height_steps = 10

    for outlier_type in ['extreme_1', 'shift_1', 'variance_1', 'trend_1']:
        announce_experiment('Outlier Height')
        ev_extr = run_extremes_experiment(detectors,
                                          seeds,
                                          RUNS,
                                          outlier_type,
                                          steps=outlier_height_steps,
                                          output_dir=os.path.join(
                                              output_dir, outlier_type,
                                              'intensity'))
        evaluators.append(ev_extr)

    announce_experiment('Multivariate Datasets')
    ev_mv = run_multivariate_experiment(detectors,
                                        seeds,
                                        RUNS,
                                        output_dir=os.path.join(
                                            output_dir, 'multivariate'))
    evaluators.append(ev_mv)

    for mv_anomaly in [
            'doubled', 'inversed', 'shrinked', 'delayed', 'xor',
            'delayed_missing'
    ]:
        announce_experiment(f'Multivariate Polluted {mv_anomaly} Datasets')
        ev_mv = run_multivariate_polluted_experiment(detectors,
                                                     seeds,
                                                     RUNS,
                                                     mv_anomaly,
                                                     output_dir=os.path.join(
                                                         output_dir,
                                                         'mv_polluted'))
        evaluators.append(ev_mv)

        announce_experiment(
            f'High-dimensional multivariate {mv_anomaly} outliers')
        ev_mv_dim = run_multi_dim_multivariate_experiment(
            detectors,
            seeds,
            RUNS,
            mv_anomaly,
            steps=20,
            output_dir=os.path.join(output_dir, 'multi_dim_mv'))
        evaluators.append(ev_mv_dim)

    announce_experiment('Long-Term Experiments')
    ev_different_windows = run_different_window_sizes_evaluator(
        different_window_detectors, seeds, RUNS)
    evaluators.append(ev_different_windows)

    for ev in evaluators:
        ev.plot_single_heatmap()