Conformal LSTM for Time-Series Anomaly Detection

Back to Project Summary

BACK TO TOP ↑


Imports

Code
import Pkg
packages = ["BSON", "CSV", "DataFrames", "DelimitedFiles",
"Flux", "JSON", "Statistics"]
for pkg in packages
     Pkg.add(pkg)
end
# Pkg.update()

using BSON: @save
using CSV
using DataFrames
using Dates
using DelimitedFiles
using Flux
using JSON
using Random
using Statistics

Random.seed!(86)
   Resolving package versions...

  No Changes to `~/.julia/environments/v1.10/Project.toml`

  No Changes to `~/.julia/environments/v1.10/Manifest.toml`

Precompiling packages...

Warning: attempting to remove probably stale pidfile

  path = "/root/.julia/compiled/v1.10/ReactantNNlibExt/aSIzU_MJWkB.ji.pidfile"

@ FileWatching.Pidfile /usr/local/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:244

  59973.2 msReactant → ReactantNNlibExt

   6915.7 msPlots → IJuliaExt

   9923.6 msPlots → GeometryBasicsExt

   6982.7 msPlots → FileIOExt

  21215.9 msLux → LuxReactantExt

 391279.9 msMakie

 394523.0 msReactant → ReactantCUDAExt

  7 dependencies successfully precompiled in 398 seconds. 507 already precompiled.

   Resolving package versions...

  No Changes to `~/.julia/environments/v1.10/Project.toml`

  No Changes to `~/.julia/environments/v1.10/Manifest.toml`

   Resolving package versions...

  No Changes to `~/.julia/environments/v1.10/Project.toml`

  No Changes to `~/.julia/environments/v1.10/Manifest.toml`

   Resolving package versions...

  No Changes to `~/.julia/environments/v1.10/Project.toml`

  No Changes to `~/.julia/environments/v1.10/Manifest.toml`

   Resolving package versions...

  No Changes to `~/.julia/environments/v1.10/Project.toml`

  No Changes to `~/.julia/environments/v1.10/Manifest.toml`

   Resolving package versions...

  No Changes to `~/.julia/environments/v1.10/Project.toml`

  No Changes to `~/.julia/environments/v1.10/Manifest.toml`

   Resolving package versions...

  No Changes to `~/.julia/environments/v1.10/Project.toml`

  No Changes to `~/.julia/environments/v1.10/Manifest.toml`
TaskLocalRNG()

Unsupervised

Parameter Loading

Code
function load_params(json_path::String)::Dict{String, Dict{String, Float64}}
    if isfile(json_path)
        return JSON.parsefile(json_path)
    else
        error("params_unsupervised.json not found at $json_path")
    end
end
load_params (generic function with 1 method)

Data Loading

Code
function load_csv_data(filepath::String)
    df = CSV.read(filepath, DataFrame)
    timestamps = DateTime.(df.timestamp, dateformat"yyyy-MM-dd HH:MM:SS")
    values = Float32.(df.value)
    return timestamps, values
end
load_csv_data (generic function with 1 method)

Data Normalisation and Splitting

Code
function split_and_normalize(values::Vector{Float32}, prob_ratio::Float64, calib_ratio::Float64)
    n = length(values)
    prob_count = Int(floor(prob_ratio * n))
    calib_count = Int(floor(calib_ratio * prob_count))
    train_count = prob_count - calib_count

    probation_vals = values[1:prob_count]
    mean_prob = mean(probation_vals)
    std_prob = std(probation_vals)
    normal_values = (values .- mean_prob) ./ std_prob

    train_data = normal_values[1:train_count]
    calib_data = normal_values[train_count+1 : prob_count]
    test_data  = normal_values[prob_count+1 : end]

    return (;train_data, calib_data, test_data)
end
split_and_normalize (generic function with 2 methods)

Data Sequencing

Code
function create_sequences(values::Vector{Float32}, window_size::Int)
    n_seq = length(values) - window_size
    x = Array{Float32}(undef, window_size, 1, n_seq)
    y = Array{Float32}(undef, 1, n_seq)

    for i in 1:n_seq
        x[:, 1, i] = values[i : i + window_size - 1]
        y[1, i] = values[i + window_size]
    end

    return x, y
end
create_sequences (generic function with 2 methods)

Model Training

Code
function build_lstm_model(window_size::Int, dropout::Float64)
    return Chain(
        LSTM(window_size => 64),
        Dropout(dropout),
        Dense(64 => 1)
    )
end

function train_model(x_train::Array{Float32, 3}, y_train::Array{Float32,2};
    window_size::Int, epochs::Int, lr::Float64, dropout::Float64)

    model = build_lstm_model(window_size, dropout)
    opt_state = Flux.setup(ADAMW(lr), model)

    for epoch in 1:epochs
        Flux.reset!(model)

        loss, grads = Flux.withgradient(model) do m
            y_pred = m(x_train)
            y_pred = dropdims(y_pred, dims=2)
            Flux.Losses.mse(y_pred, y_train)
        end

        Flux.Optimise.update!(opt_state, model, grads[1])
        println("Epoch $epoch -- Loss = $(round(loss, digits=4))")
    end

    return model
end
train_model (generic function with 1 method)

Conformal Classification

Code
function conformal_classification(model, x_calib, y_calib; confidence::Float64)
    residuals = Float32[]

    for i in 1:size(x_calib, 3)
        x = x_calib[:, :, i]
        Flux.reset!(model)
        y_pred = model(x)
        push!(residuals, abs(y_pred[1] - y_calib[1, i]))
    end

    if any(isnan, residuals)
        return NaN, residuals
    end

    threshold = quantile(residuals, confidence)

    println("Threshold = ", round(threshold, digits=4))
    return threshold, residuals
end
conformal_classification (generic function with 1 method)

Evaluation

Code
function evaluate_model(model, x_eval, y_eval, threshold)
    residuals = Float32[]
    predictions = Float32[]
    anomaly_flags = Int[]

    for i in 1:size(x_eval, 3)
        x = x_eval[:, :, i]
        Flux.reset!(model)
        y_pred = model(x)[1]
        res = abs(y_pred - y_eval[1, i])

        push!(residuals, res)
        push!(predictions, y_pred)
        push!(anomaly_flags, res > threshold ? 1 : 0)
    end

    return (;predictions, residuals, anomaly_flags)
end

function load_true_labels(label_path::String, file_key::String,
    eval_timestamps::Vector{DateTime})

    label_data = JSON.parsefile(label_path)
    windows = label_data[file_key]

    datetime_format = dateformat"yyyy-MM-dd HH:MM:SS.ssss"
    anomaly_windows = [(DateTime(w[1], datetime_format),
    DateTime(w[2], datetime_format)) for w in windows]

    true_flags = Int[]
    for ts in eval_timestamps
        is_anomaly = any(r -> ts  r[1] && ts  r[2], anomaly_windows)
        push!(true_flags, is_anomaly ? 1 : 0)
    end

    return true_flags
end

function compute_metrics(filename::String, pred_flags::Vector{Int}, true_flags::Vector{Int})
    TP = sum((pred_flags .== 1) .& (true_flags .== 1))
    FP = sum((pred_flags .== 1) .& (true_flags .== 0))
    FN = sum((pred_flags .== 0) .& (true_flags .== 1))

    precision = TP + FP == 0 ? 0.0 : TP / (TP + FP)
    recall    = TP + FN == 0 ? 0.0 : TP / (TP + FN)
    f1        = precision + recall == 0 ? 0.0 : 2 * (precision * recall) / (precision + recall)

    println("\nEvaluation Metrics for $filename")
    println("TP = $TP | FP = $FP | FN = $FN")
    println("Precision = $(round(precision * 100, digits=2))%")
    println("Recall    = $(round(recall * 100, digits=2))%")
    println("F1 Score  = $(round(f1 * 100, digits=2))%")

    return (;precision, recall, f1, TP, FP, FN)
end
compute_metrics (generic function with 2 methods)

Saving Metrics

Code
function save_model(model, filename::String)
    mkpath("models")
    model_path = joinpath("models", "model_" * replace(filename, "/" => "_") * ".bson")
    @save model_path model
end

function save_metrics(filename::String, metrics::NamedTuple)
    mkpath("results")
    results_file = joinpath("results", "unsupervsied_metrics.csv")

    header = ["filename", "TP", "FP", "FN", "Precision (%)", "Recall (%)", "F1 Score (%)"]

    row = [
        filename, metrics.TP, metrics.FP, metrics.FN,
        round(metrics.precision * 100, digits=2),
        round(metrics.recall * 100, digits=2),
        round(metrics.f1 * 100, digits=2)
    ]

    if isfile(results_file)
        open(results_file, "a") do io
            writedlm(io, [row], ',')
        end
    else
        open(results_file, "w") do io
            writedlm(io, [header], ',')
            writedlm(io, [row], ',')
        end
    end
end
save_metrics (generic function with 1 method)

Implementation

Code
data_root = "data"
label_path = "labels/combined_windows.json"
param_path = "params_unsupervised.json"

params = load_params(param_path)

all_files = sort(collect(keys(params)))

for filename in all_files
    println("\nProcessing: $filename")

    file_path = joinpath(data_root, filename)

    # Load data and parameters
    ts, values = load_csv_data(file_path)
    config = params[filename]
    probation_ratio = config["probation_ratio"]
    calib_ratio = config["calib_ratio"]
    window_size = Int(config["window_size"])
    epochs = Int(config["epochs"])
    lr = Float64(config["lr"])
    dropout = Float64(config["dropout"])
    conf = Float64(config["conf"])

    # Split and normalize data
    train_data, calib_data, eval_data = split_and_normalize(Vector{Float32}(values), probation_ratio, calib_ratio)

    # Create sequences
    x_train, y_train = create_sequences(train_data, window_size)
    x_calib, y_calib = create_sequences(calib_data, window_size)
    x_eval,  y_eval  = create_sequences(eval_data,  window_size)

    # Train model
    model = train_model(
        x_train, y_train;
        window_size=window_size,
        epochs=epochs,
        lr=lr,
        dropout=dropout
    )

    # Classification
    threshold, calib_residuals = conformal_classification(
        model, x_calib, y_calib; confidence=conf)

    if !isfinite(threshold)
        save_metrics(filename, (;TP=0, FP=0, FN=0, precision=0.0, recall=0.0, f1=0.0, mse=0.0, mae=0.0))
        continue
    end

    # Evaluate
    eval_results = evaluate_model(model, x_eval, y_eval, threshold)

    # True labels & metrics
    n = length(values)
    n_prob = Int(floor(probation_ratio * n))
    ts_eval = ts[n_prob + window_size + 1 : end]

    true_flags = load_true_labels(label_path, filename, ts_eval)
    metrics = compute_metrics(filename, eval_results.anomaly_flags, true_flags)

    # Save model & metrics
    # save_model(model, filename)
    save_metrics(filename, metrics)
end

println("\nAll files processed successfully")

Processing: artificialNoAnomaly/art_daily_no_noise.csv
Epoch 1 -- Loss = 1.2715
Epoch 2 -- Loss = 1.2593
Epoch 3 -- Loss = 1.2473
Epoch 4 -- Loss = 1.2359
Epoch 5 -- Loss = 1.2227
Epoch 6 -- Loss = 1.2225
Epoch 7 -- Loss = 1.2168
Epoch 8 -- Loss = 1.2021
Epoch 9 -- Loss = 1.2079
Epoch 10 -- Loss = 1.197
Epoch 11 -- Loss = 1.1886
Epoch 12 -- Loss = 1.1785
Epoch 13 -- Loss = 1.1714
Epoch 14 -- Loss = 1.168
Epoch 15 -- Loss = 1.1703
Epoch 16 -- Loss = 1.1514
Epoch 17 -- Loss = 1.1388
Epoch 18 -- Loss = 1.1433
Epoch 19 -- Loss = 1.1345
Epoch 20 -- Loss = 1.1253
Threshold = 0.7841

Evaluation Metrics for artificialNoAnomaly/art_daily_no_noise.csv
TP = 0 | FP = 1329 | FN = 0
Precision = 0.0%
Recall    = 0.0%
F1 Score  = 0.0%

Processing: artificialNoAnomaly/art_daily_perfect_square_wave.csv
Epoch 1 -- Loss = 0.9104
Epoch 2 -- Loss = 0.9014
Epoch 3 -- Loss = 0.8976
Epoch 4 -- Loss = 0.8914
Epoch 5 -- Loss = 0.8934
Epoch 6 -- Loss = 0.8788
Epoch 7 -- Loss = 0.8852
Epoch 8 -- Loss = 0.8797
Epoch 9 -- Loss = 0.869
Epoch 10 -- Loss = 0.8656
Epoch 11 -- Loss = 0.8719
Epoch 12 -- Loss = 0.8574
Epoch 13 -- Loss = 0.8469
Epoch 14 -- Loss = 0.846
Epoch 15 -- Loss = 0.8449
Epoch 16 -- Loss = 0.8361
Epoch 17 -- Loss = 0.8326
Epoch 18 -- Loss = 0.8282
Epoch 19 -- Loss = 0.8288
Epoch 20 -- Loss = 0.8202
Threshold = 0.6328

Evaluation Metrics for artificialNoAnomaly/art_daily_perfect_square_wave.csv
TP = 0 | FP = 1416 | FN = 0
Precision = 0.0%
Recall    = 0.0%
F1 Score  = 0.0%

Processing: artificialNoAnomaly/art_daily_small_noise.csv
Epoch 1 -- Loss = 0.9639
Epoch 2 -- Loss = 0.9624
Epoch 3 -- Loss = 0.952
Epoch 4 -- Loss = 0.9383
Epoch 5 -- Loss = 0.942
Epoch 6 -- Loss = 0.9281
Epoch 7 -- Loss = 0.9309
Epoch 8 -- Loss = 0.9209
Epoch 9 -- Loss = 0.9182
Epoch 10 -- Loss = 0.9091
Epoch 11 -- Loss = 0.905
Epoch 12 -- Loss = 0.9086
Epoch 13 -- Loss = 0.8949
Epoch 14 -- Loss = 0.8864
Epoch 15 -- Loss = 0.8781
Epoch 16 -- Loss = 0.8806
Epoch 17 -- Loss = 0.8688
Epoch 18 -- Loss = 0.8708
Epoch 19 -- Loss = 0.8602
Epoch 20 -- Loss = 0.8544
Threshold = 0.771

Evaluation Metrics for artificialNoAnomaly/art_daily_small_noise.csv
TP = 0 | FP = 1472 | FN = 0
Precision = 0.0%
Recall    = 0.0%
F1 Score  = 0.0%

Processing: artificialNoAnomaly/art_flatline.csv
Epoch 1 -- Loss = NaN
Epoch 2 -- Loss = NaN
Epoch 3 -- Loss = NaN
Epoch 4 -- Loss = NaN
Epoch 5 -- Loss = NaN
Epoch 6 -- Loss = NaN
Epoch 7 -- Loss = NaN
Epoch 8 -- Loss = NaN
Epoch 9 -- Loss = NaN
Epoch 10 -- Loss = NaN
Epoch 11 -- Loss = NaN
Epoch 12 -- Loss = NaN
Epoch 13 -- Loss = NaN
Epoch 14 -- Loss = NaN
Epoch 15 -- Loss = NaN
Epoch 16 -- Loss = NaN
Epoch 17 -- Loss = NaN
Epoch 18 -- Loss = NaN
Epoch 19 -- Loss = NaN
Epoch 20 -- Loss = NaN

Processing: artificialNoAnomaly/art_noisy.csv
Epoch 1 -- Loss = 1.0051
Epoch 2 -- Loss = 1.0041
Epoch 3 -- Loss = 1.0036
Epoch 4 -- Loss = 1.004
Epoch 5 -- Loss = 0.9992
Epoch 6 -- Loss = 1.0073
Epoch 7 -- Loss = 1.0037
Epoch 8 -- Loss = 1.0096
Epoch 9 -- Loss = 1.001
Epoch 10 -- Loss = 1.0114
Epoch 11 -- Loss = 1.006
Epoch 12 -- Loss = 1.0074
Epoch 13 -- Loss = 1.007
Epoch 14 -- Loss = 1.0079
Epoch 15 -- Loss = 1.0065
Epoch 16 -- Loss = 1.0042
Epoch 17 -- Loss = 1.0082
Epoch 18 -- Loss = 1.0036
Epoch 19 -- Loss = 0.9998
Epoch 20 -- Loss = 1.0072
Threshold = 1.6995

Evaluation Metrics for artificialNoAnomaly/art_noisy.csv
TP = 0 | FP = 149 | FN = 0
Precision = 0.0%
Recall    = 0.0%
F1 Score  = 0.0%

Processing: artificialWithAnomaly/art_daily_flatmiddle.csv
Epoch 1 -- Loss = 1.1488
Epoch 2 -- Loss = 1.1292
Epoch 3 -- Loss = 1.1307
Epoch 4 -- Loss = 1.1261
Epoch 5 -- Loss = 1.1253
Epoch 6 -- Loss = 1.113
Epoch 7 -- Loss = 1.113
Epoch 8 -- Loss = 1.1062
Epoch 9 -- Loss = 1.1057
Epoch 10 -- Loss = 1.0838
Epoch 11 -- Loss = 1.0891
Epoch 12 -- Loss = 1.0689
Epoch 13 -- Loss = 1.0714
Epoch 14 -- Loss = 1.0587
Epoch 15 -- Loss = 1.0632
Epoch 16 -- Loss = 1.0509
Epoch 17 -- Loss = 1.0487
Epoch 18 -- Loss = 1.0554
Epoch 19 -- Loss = 1.0392
Epoch 20 -- Loss = 1.0406
Threshold = 0.794

Evaluation Metrics for artificialWithAnomaly/art_daily_flatmiddle.csv
TP = 116 | FP = 1276 | FN = 287
Precision = 8.33%
Recall    = 28.78%
F1 Score  = 12.92%

Processing: artificialWithAnomaly/art_daily_jumpsdown.csv
Epoch 1 -- Loss = 1.1152
Epoch 2 -- Loss = 1.1153
Epoch 3 -- Loss = 1.1059
Epoch 4 -- Loss = 1.1038
Epoch 5 -- Loss = 1.0982
Epoch 6 -- Loss = 1.0949
Epoch 7 -- Loss = 1.0894
Epoch 8 -- Loss = 1.0837
Epoch 9 -- Loss = 1.0811
Epoch 10 -- Loss = 1.0712
Epoch 11 -- Loss = 1.0657
Epoch 12 -- Loss = 1.0655
Epoch 13 -- Loss = 1.0574
Epoch 14 -- Loss = 1.0453
Epoch 15 -- Loss = 1.0459
Epoch 16 -- Loss = 1.0363
Epoch 17 -- Loss = 1.0379
Epoch 18 -- Loss = 1.0311
Epoch 19 -- Loss = 1.0299
Epoch 20 -- Loss = 1.0261
Threshold = 0.8289

Evaluation Metrics for artificialWithAnomaly/art_daily_jumpsdown.csv
TP = 29 | FP = 1182 | FN = 374
Precision = 2.39%
Recall    = 7.2%
F1 Score  = 3.59%

Processing: artificialWithAnomaly/art_daily_jumpsup.csv
Epoch 1 -- Loss = 0.8976
Epoch 2 -- Loss = 0.9006
Epoch 3 -- Loss = 0.8915
Epoch 4 -- Loss = 0.8843
Epoch 5 -- Loss = 0.8771
Epoch 6 -- Loss = 0.8743
Epoch 7 -- Loss = 0.8741
Epoch 8 -- Loss = 0.8679
Epoch 9 -- Loss = 0.8604
Epoch 10 -- Loss = 0.8603
Epoch 11 -- Loss = 0.8573
Epoch 12 -- Loss = 0.8513
Epoch 13 -- Loss = 0.8388
Epoch 14 -- Loss = 0.8402
Epoch 15 -- Loss = 0.8376
Epoch 16 -- Loss = 0.8311
Epoch 17 -- Loss = 0.8224
Epoch 18 -- Loss = 0.8236
Epoch 19 -- Loss = 0.8178
Epoch 20 -- Loss = 0.8117
Threshold = 0.7069

Evaluation Metrics for artificialWithAnomaly/art_daily_jumpsup.csv
TP = 149 | FP = 1270 | FN = 254
Precision = 10.5%
Recall    = 36.97%
F1 Score  = 16.36%

Processing: artificialWithAnomaly/art_daily_nojump.csv
Epoch 1 -- Loss = 0.8568
Epoch 2 -- Loss = 0.852
Epoch 3 -- Loss = 0.8491
Epoch 4 -- Loss = 0.8378
Epoch 5 -- Loss = 0.8337
Epoch 6 -- Loss = 0.8336
Epoch 7 -- Loss = 0.8253
Epoch 8 -- Loss = 0.821
Epoch 9 -- Loss = 0.8194
Epoch 10 -- Loss = 0.8105
Epoch 11 -- Loss = 0.8092
Epoch 12 -- Loss = 0.803
Epoch 13 -- Loss = 0.7903
Epoch 14 -- Loss = 0.7917
Epoch 15 -- Loss = 0.7851
Epoch 16 -- Loss = 0.7836
Epoch 17 -- Loss = 0.7783
Epoch 18 -- Loss = 0.7622
Epoch 19 -- Loss = 0.7637
Epoch 20 -- Loss = 0.7599
Threshold = 0.7079

Evaluation Metrics for artificialWithAnomaly/art_daily_nojump.csv
TP = 33 | FP = 1193 | FN = 370
Precision = 2.69%
Recall    = 8.19%
F1 Score  = 4.05%

Processing: artificialWithAnomaly/art_increase_spike_density.csv
Epoch 1 -- Loss = 0.8743
Epoch 2 -- Loss = 0.8724
Epoch 3 -- Loss = 0.8645
Epoch 4 -- Loss = 0.8758
Epoch 5 -- Loss = 0.8758
Epoch 6 -- Loss = 0.8708
Epoch 7 -- Loss = 0.8713
Epoch 8 -- Loss = 0.8643
Epoch 9 -- Loss = 0.8726
Epoch 10 -- Loss = 0.8638
Epoch 11 -- Loss = 0.8815
Epoch 12 -- Loss = 0.8616
Epoch 13 -- Loss = 0.8652
Epoch 14 -- Loss = 0.8682
Epoch 15 -- Loss = 0.8591
Epoch 16 -- Loss = 0.8651
Epoch 17 -- Loss = 0.8629
Epoch 18 -- Loss = 0.8633
Epoch 19 -- Loss = 0.8596
Epoch 20 -- Loss = 0.867
Threshold = 0.1299

Evaluation Metrics for artificialWithAnomaly/art_increase_spike_density.csv
TP = 59 | FP = 360 | FN = 344
Precision = 14.08%
Recall    = 14.64%
F1 Score  = 14.36%

Processing: artificialWithAnomaly/art_load_balancer_spikes.csv
Epoch 1 -- Loss = 0.7586
Epoch 2 -- Loss = 0.7727
Epoch 3 -- Loss = 0.7645
Epoch 4 -- Loss = 0.7569
Epoch 5 -- Loss = 0.7686
Epoch 6 -- Loss = 0.7636
Epoch 7 -- Loss = 0.7643
Epoch 8 -- Loss = 0.7673
Epoch 9 -- Loss = 0.7622
Epoch 10 -- Loss = 0.763
Epoch 11 -- Loss = 0.7589
Epoch 12 -- Loss = 0.76
Epoch 13 -- Loss = 0.7565
Epoch 14 -- Loss = 0.7627
Epoch 15 -- Loss = 0.7621
Epoch 16 -- Loss = 0.7628
Epoch 17 -- Loss = 0.7571
Epoch 18 -- Loss = 0.7652
Epoch 19 -- Loss = 0.7598
Epoch 20 -- Loss = 0.7541
Threshold = 0.1785

Evaluation Metrics for artificialWithAnomaly/art_load_balancer_spikes.csv
TP = 200 | FP = 865 | FN = 203
Precision = 18.78%
Recall    = 49.63%
F1 Score  = 27.25%

Processing: realAWSCloudwatch/ec2_cpu_utilization_24ae8d.csv
Epoch 1 -- Loss = 1.1169
Epoch 2 -- Loss = 1.114
Epoch 3 -- Loss = 1.1162
Epoch 4 -- Loss = 1.1161
Epoch 5 -- Loss = 1.1219
Epoch 6 -- Loss = 1.1198
Epoch 7 -- Loss = 1.1221
Epoch 8 -- Loss = 1.1144
Epoch 9 -- Loss = 1.112
Epoch 10 -- Loss = 1.1162
Epoch 11 -- Loss = 1.1171
Epoch 12 -- Loss = 1.1153
Epoch 13 -- Loss = 1.1123
Epoch 14 -- Loss = 1.1151
Epoch 15 -- Loss = 1.1191
Epoch 16 -- Loss = 1.1159
Epoch 17 -- Loss = 1.1156
Epoch 18 -- Loss = 1.1139
Epoch 19 -- Loss = 1.1156
Epoch 20 -- Loss = 1.1111
Threshold = 0.6926

Evaluation Metrics for realAWSCloudwatch/ec2_cpu_utilization_24ae8d.csv
TP = 40 | FP = 287 | FN = 362
Precision = 12.23%
Recall    = 9.95%
F1 Score  = 10.97%

Processing: realAWSCloudwatch/ec2_cpu_utilization_53ea38.csv
Epoch 1 -- Loss = 1.0809
Epoch 2 -- Loss = 1.0786
Epoch 3 -- Loss = 1.0719
Epoch 4 -- Loss = 1.08
Epoch 5 -- Loss = 1.0759
Epoch 6 -- Loss = 1.072
Epoch 7 -- Loss = 1.0818
Epoch 8 -- Loss = 1.0766
Epoch 9 -- Loss = 1.072
Epoch 10 -- Loss = 1.0741
Epoch 11 -- Loss = 1.0705
Epoch 12 -- Loss = 1.0672
Epoch 13 -- Loss = 1.0687
Epoch 14 -- Loss = 1.0673
Epoch 15 -- Loss = 1.0678
Epoch 16 -- Loss = 1.064
Epoch 17 -- Loss = 1.0637
Epoch 18 -- Loss = 1.0647
Epoch 19 -- Loss = 1.0639
Epoch 20 -- Loss = 1.0572
Threshold = 1.5085

Evaluation Metrics for realAWSCloudwatch/ec2_cpu_utilization_53ea38.csv
TP = 79 | FP = 401 | FN = 323
Precision = 16.46%
Recall    = 19.65%
F1 Score  = 17.91%

Processing: realAWSCloudwatch/ec2_cpu_utilization_5f5533.csv
Epoch 1 -- Loss = 0.9429
Epoch 2 -- Loss = 0.9333
Epoch 3 -- Loss = 0.933
Epoch 4 -- Loss = 0.9285
Epoch 5 -- Loss = 0.9339
Epoch 6 -- Loss = 0.9226
Epoch 7 -- Loss = 0.928
Epoch 8 -- Loss = 0.9274
Epoch 9 -- Loss = 0.9225
Epoch 10 -- Loss = 0.9258
Epoch 11 -- Loss = 0.9141
Epoch 12 -- Loss = 0.9173
Epoch 13 -- Loss = 0.9156
Epoch 14 -- Loss = 0.9109
Epoch 15 -- Loss = 0.9044
Epoch 16 -- Loss = 0.9061
Epoch 17 -- Loss = 0.91
Epoch 18 -- Loss = 0.9046
Epoch 19 -- Loss = 0.9058
Epoch 20 -- Loss = 0.8957
Threshold = 1.7524

Evaluation Metrics for realAWSCloudwatch/ec2_cpu_utilization_5f5533.csv
TP = 105 | FP = 1140 | FN = 297
Precision = 8.43%
Recall    = 26.12%
F1 Score  = 12.75%

Processing: realAWSCloudwatch/ec2_cpu_utilization_77c1ca.csv
Epoch 1 -- Loss = 1.0075
Epoch 2 -- Loss = 1.0227
Epoch 3 -- Loss = 1.0137
Epoch 4 -- Loss = 1.0115
Epoch 5 -- Loss = 1.0125
Epoch 6 -- Loss = 1.009
Epoch 7 -- Loss = 1.0065
Epoch 8 -- Loss = 1.0139
Epoch 9 -- Loss = 1.009
Epoch 10 -- Loss = 1.0079
Epoch 11 -- Loss = 1.0055
Epoch 12 -- Loss = 1.0052
Epoch 13 -- Loss = 1.0073
Epoch 14 -- Loss = 0.9898
Epoch 15 -- Loss = 1.003
Epoch 16 -- Loss = 1.001
Epoch 17 -- Loss = 0.984
Epoch 18 -- Loss = 0.9906
Epoch 19 -- Loss = 0.997
Epoch 20 -- Loss = 0.9926
Threshold = 0.3762

Evaluation Metrics for realAWSCloudwatch/ec2_cpu_utilization_77c1ca.csv
TP = 167 | FP = 971 | FN = 236
Precision = 14.67%
Recall    = 41.44%
F1 Score  = 21.67%

Processing: realAWSCloudwatch/ec2_cpu_utilization_825cc2.csv
Epoch 1 -- Loss = 1.0465
Epoch 2 -- Loss = 1.0407
Epoch 3 -- Loss = 1.0542
Epoch 4 -- Loss = 1.0392
Epoch 5 -- Loss = 1.039
Epoch 6 -- Loss = 1.0396
Epoch 7 -- Loss = 1.0327
Epoch 8 -- Loss = 1.0326
Epoch 9 -- Loss = 1.0408
Epoch 10 -- Loss = 1.0283
Epoch 11 -- Loss = 1.038
Epoch 12 -- Loss = 1.0306
Epoch 13 -- Loss = 1.033
Epoch 14 -- Loss = 1.0242
Epoch 15 -- Loss = 1.0283
Epoch 16 -- Loss = 1.0187
Epoch 17 -- Loss = 1.022
Epoch 18 -- Loss = 1.0227
Epoch 19 -- Loss = 1.0235
Epoch 20 -- Loss = 1.0173
Threshold = 1.6043

Evaluation Metrics for realAWSCloudwatch/ec2_cpu_utilization_825cc2.csv
TP = 145 | FP = 985 | FN = 198
Precision = 12.83%
Recall    = 42.27%
F1 Score  = 19.69%

Processing: realAWSCloudwatch/ec2_cpu_utilization_ac20cd.csv
Epoch 1 -- Loss = 0.7104
Epoch 2 -- Loss = 0.7099
Epoch 3 -- Loss = 0.7092
Epoch 4 -- Loss = 0.7046
Epoch 5 -- Loss = 0.6951
Epoch 6 -- Loss = 0.6848
Epoch 7 -- Loss = 0.6816
Epoch 8 -- Loss = 0.6823
Epoch 9 -- Loss = 0.6727
Epoch 10 -- Loss = 0.6701
Epoch 11 -- Loss = 0.6622
Epoch 12 -- Loss = 0.6579
Epoch 13 -- Loss = 0.6621
Epoch 14 -- Loss = 0.6573
Epoch 15 -- Loss = 0.6523
Epoch 16 -- Loss = 0.6407
Epoch 17 -- Loss = 0.6429
Epoch 18 -- Loss = 0.6418
Epoch 19 -- Loss = 0.631
Epoch 20 -- Loss = 0.6306
Threshold = 1.3307

Evaluation Metrics for realAWSCloudwatch/ec2_cpu_utilization_ac20cd.csv
TP = 203 | FP = 255 | FN = 200
Precision = 44.32%
Recall    = 50.37%
F1 Score  = 47.15%

Processing: realAWSCloudwatch/ec2_cpu_utilization_c6585a.csv
Epoch 1 -- Loss = 1.1113
Epoch 2 -- Loss = 1.1149
Epoch 3 -- Loss = 1.1103
Epoch 4 -- Loss = 1.1125
Epoch 5 -- Loss = 1.1105
Epoch 6 -- Loss = 1.1128
Epoch 7 -- Loss = 1.1121
Epoch 8 -- Loss = 1.1097
Epoch 9 -- Loss = 1.1093
Epoch 10 -- Loss = 1.1122
Epoch 11 -- Loss = 1.1125
Epoch 12 -- Loss = 1.1082
Epoch 13 -- Loss = 1.1104
Epoch 14 -- Loss = 1.1073
Epoch 15 -- Loss = 1.1114
Epoch 16 -- Loss = 1.1092
Epoch 17 -- Loss = 1.1067
Epoch 18 -- Loss = 1.1107
Epoch 19 -- Loss = 1.1113
Epoch 20 -- Loss = 1.1067
Threshold = 0.558

Evaluation Metrics for realAWSCloudwatch/ec2_cpu_utilization_c6585a.csv
TP = 0 | FP = 232 | FN = 0
Precision = 0.0%
Recall    = 0.0%
F1 Score  = 0.0%

Processing: realAWSCloudwatch/ec2_cpu_utilization_fe7f93.csv
Epoch 1 -- Loss = 1.0927
Epoch 2 -- Loss = 1.0977
Epoch 3 -- Loss = 1.0939
Epoch 4 -- Loss = 1.0865
Epoch 5 -- Loss = 1.1015
Epoch 6 -- Loss = 1.1051
Epoch 7 -- Loss = 1.0973
Epoch 8 -- Loss = 1.0977
Epoch 9 -- Loss = 1.0935
Epoch 10 -- Loss = 1.0711
Epoch 11 -- Loss = 1.0869
Epoch 12 -- Loss = 1.0728
Epoch 13 -- Loss = 1.0973
Epoch 14 -- Loss = 1.0974
Epoch 15 -- Loss = 1.0723
Epoch 16 -- Loss = 1.0832
Epoch 17 -- Loss = 1.0614
Epoch 18 -- Loss = 1.0911
Epoch 19 -- Loss = 1.0665
Epoch 20 -- Loss = 1.0746
Threshold = 0.1908

Evaluation Metrics for realAWSCloudwatch/ec2_cpu_utilization_fe7f93.csv
TP = 92 | FP = 580 | FN = 313
Precision = 13.69%
Recall    = 22.72%
F1 Score  = 17.08%

Processing: realAWSCloudwatch/ec2_disk_write_bytes_1ef3de.csv
Epoch 1 -- Loss = 0.7043
Epoch 2 -- Loss = 0.7067
Epoch 3 -- Loss = 0.6994
Epoch 4 -- Loss = 0.7016
Epoch 5 -- Loss = 0.6916
Epoch 6 -- Loss = 0.6873
Epoch 7 -- Loss = 0.6892
Epoch 8 -- Loss = 0.6893
Epoch 9 -- Loss = 0.6841
Epoch 10 -- Loss = 0.6827
Epoch 11 -- Loss = 0.6743
Epoch 12 -- Loss = 0.6749
Epoch 13 -- Loss = 0.6733
Epoch 14 -- Loss = 0.6652
Epoch 15 -- Loss = 0.6762
Epoch 16 -- Loss = 0.6625
Epoch 17 -- Loss = 0.6592
Epoch 18 -- Loss = 0.6565
Epoch 19 -- Loss = 0.6617
Epoch 20 -- Loss = 0.6581
Epoch 21 -- Loss = 0.6508
Epoch 22 -- Loss = 0.6556
Epoch 23 -- Loss = 0.653
Epoch 24 -- Loss = 0.6471
Epoch 25 -- Loss = 0.639
Epoch 26 -- Loss = 0.6417
Epoch 27 -- Loss = 0.6379
Epoch 28 -- Loss = 0.6306
Epoch 29 -- Loss = 0.6396
Epoch 30 -- Loss = 0.6315
Threshold = 0.6955

Evaluation Metrics for realAWSCloudwatch/ec2_disk_write_bytes_1ef3de.csv
TP = 57 | FP = 256 | FN = 416
Precision = 18.21%
Recall    = 12.05%
F1 Score  = 14.5%

Processing: realAWSCloudwatch/ec2_disk_write_bytes_c0d644.csv
Epoch 1 -- Loss = 1.0651
Epoch 2 -- Loss = 1.0599
Epoch 3 -- Loss = 1.058
Epoch 4 -- Loss = 1.0635
Epoch 5 -- Loss = 1.0618
Epoch 6 -- Loss = 1.0648
Epoch 7 -- Loss = 1.0593
Epoch 8 -- Loss = 1.06
Epoch 9 -- Loss = 1.0579
Epoch 10 -- Loss = 1.0582
Epoch 11 -- Loss = 1.0603
Epoch 12 -- Loss = 1.0556
Epoch 13 -- Loss = 1.0619
Epoch 14 -- Loss = 1.061
Epoch 15 -- Loss = 1.0513
Epoch 16 -- Loss = 1.05
Epoch 17 -- Loss = 1.0572
Epoch 18 -- Loss = 1.0566
Epoch 19 -- Loss = 1.0513
Epoch 20 -- Loss = 1.0535
Threshold = 0.2409

Evaluation Metrics for realAWSCloudwatch/ec2_disk_write_bytes_c0d644.csv
TP = 148 | FP = 874 | FN = 257
Precision = 14.48%
Recall    = 36.54%
F1 Score  = 20.74%

Processing: realAWSCloudwatch/ec2_network_in_257a54.csv
Epoch 1 -- Loss = 1.0331
Epoch 2 -- Loss = 1.037
Epoch 3 -- Loss = 1.0385
Epoch 4 -- Loss = 1.0419
Epoch 5 -- Loss = 1.0371
Epoch 6 -- Loss = 1.0313
Epoch 7 -- Loss = 1.0325
Epoch 8 -- Loss = 1.0315
Epoch 9 -- Loss = 1.024
Epoch 10 -- Loss = 1.0307
Epoch 11 -- Loss = 1.0299
Epoch 12 -- Loss = 1.0205
Epoch 13 -- Loss = 1.0224
Epoch 14 -- Loss = 1.0212
Epoch 15 -- Loss = 1.0172
Epoch 16 -- Loss = 1.0175
Epoch 17 -- Loss = 1.012
Epoch 18 -- Loss = 1.0215
Epoch 19 -- Loss = 1.005
Epoch 20 -- Loss = 1.0118
Threshold = 2.1924

Evaluation Metrics for realAWSCloudwatch/ec2_network_in_257a54.csv
TP = 19 | FP = 47 | FN = 384
Precision = 28.79%
Recall    = 4.71%
F1 Score  = 8.1%

Processing: realAWSCloudwatch/ec2_network_in_5abac7.csv
Epoch 1 -- Loss = 0.7098
Epoch 2 -- Loss = 0.7062
Epoch 3 -- Loss = 0.7081
Epoch 4 -- Loss = 0.707
Epoch 5 -- Loss = 0.7051
Epoch 6 -- Loss = 0.6948
Epoch 7 -- Loss = 0.6907
Epoch 8 -- Loss = 0.6987
Epoch 9 -- Loss = 0.6961
Epoch 10 -- Loss = 0.6964
Epoch 11 -- Loss = 0.6927
Epoch 12 -- Loss = 0.6942
Epoch 13 -- Loss = 0.6962
Epoch 14 -- Loss = 0.6978
Epoch 15 -- Loss = 0.6961
Epoch 16 -- Loss = 0.6974
Epoch 17 -- Loss = 0.6949
Epoch 18 -- Loss = 0.6872
Epoch 19 -- Loss = 0.6916
Epoch 20 -- Loss = 0.6866
Epoch 21 -- Loss = 0.6976
Epoch 22 -- Loss = 0.6823
Epoch 23 -- Loss = 0.6857
Epoch 24 -- Loss = 0.6838
Epoch 25 -- Loss = 0.6839
Epoch 26 -- Loss = 0.6869
Epoch 27 -- Loss = 0.6829
Epoch 28 -- Loss = 0.692
Epoch 29 -- Loss = 0.685
Epoch 30 -- Loss = 0.6807
Threshold = 0.5035

Evaluation Metrics for realAWSCloudwatch/ec2_network_in_5abac7.csv
TP = 55 | FP = 152 | FN = 419
Precision = 26.57%
Recall    = 11.6%
F1 Score  = 16.15%

Processing: realAWSCloudwatch/elb_request_count_8c0756.csv
Epoch 1 -- Loss = 0.9751
Epoch 2 -- Loss = 0.9747
Epoch 3 -- Loss = 0.9725
Epoch 4 -- Loss = 0.9827
Epoch 5 -- Loss = 0.976
Epoch 6 -- Loss = 0.9765
Epoch 7 -- Loss = 0.9795
Epoch 8 -- Loss = 0.9786
Epoch 9 -- Loss = 0.9757
Epoch 10 -- Loss = 0.9758
Epoch 11 -- Loss = 0.9737
Epoch 12 -- Loss = 0.9757
Epoch 13 -- Loss = 0.9757
Epoch 14 -- Loss = 0.9749
Epoch 15 -- Loss = 0.977
Epoch 16 -- Loss = 0.9723
Epoch 17 -- Loss = 0.9715
Epoch 18 -- Loss = 0.9744
Epoch 19 -- Loss = 0.9632
Epoch 20 -- Loss = 0.9671
Threshold = 2.362

Evaluation Metrics for realAWSCloudwatch/elb_request_count_8c0756.csv
TP = 17 | FP = 57 | FN = 385
Precision = 22.97%
Recall    = 4.23%
F1 Score  = 7.14%

Processing: realAWSCloudwatch/grok_asg_anomaly.csv
Epoch 1 -- Loss = 1.1024
Epoch 2 -- Loss = 1.0905
Epoch 3 -- Loss = 1.098
Epoch 4 -- Loss = 1.0895
Epoch 5 -- Loss = 1.0916
Epoch 6 -- Loss = 1.0903
Epoch 7 -- Loss = 1.0881
Epoch 8 -- Loss = 1.0773
Epoch 9 -- Loss = 1.0821
Epoch 10 -- Loss = 1.0822
Epoch 11 -- Loss = 1.0702
Epoch 12 -- Loss = 1.0792
Epoch 13 -- Loss = 1.0751
Epoch 14 -- Loss = 1.0704
Epoch 15 -- Loss = 1.0707
Epoch 16 -- Loss = 1.0739
Epoch 17 -- Loss = 1.0612
Epoch 18 -- Loss = 1.0656
Epoch 19 -- Loss = 1.0548
Epoch 20 -- Loss = 1.0633
Epoch 21 -- Loss = 1.0551
Epoch 22 -- Loss = 1.0497
Epoch 23 -- Loss = 1.0478
Epoch 24 -- Loss = 1.0458
Epoch 25 -- Loss = 1.0457
Epoch 26 -- Loss = 1.0598
Epoch 27 -- Loss = 1.0536
Epoch 28 -- Loss = 1.0413
Epoch 29 -- Loss = 1.038
Epoch 30 -- Loss = 1.0435
Threshold = 0.112

Evaluation Metrics for realAWSCloudwatch/grok_asg_anomaly.csv
TP = 383 | FP = 2835 | FN = 82
Precision = 11.9%
Recall    = 82.37%
F1 Score  = 20.8%

Processing: realAWSCloudwatch/iio_us-east-1_i-a2eb1cd9_NetworkIn.csv
Epoch 1 -- Loss = 0.238
Epoch 2 -- Loss = 0.2365
Epoch 3 -- Loss = 0.2188
Epoch 4 -- Loss = 0.2175
Epoch 5 -- Loss = 0.2006
Epoch 6 -- Loss = 0.1967
Epoch 7 -- Loss = 0.1845
Epoch 8 -- Loss = 0.1784
Epoch 9 -- Loss = 0.169
Epoch 10 -- Loss = 0.1588
Epoch 11 -- Loss = 0.1484
Epoch 12 -- Loss = 0.1545
Epoch 13 -- Loss = 0.1404
Epoch 14 -- Loss = 0.1305
Epoch 15 -- Loss = 0.1294
Epoch 16 -- Loss = 0.1216
Epoch 17 -- Loss = 0.117
Epoch 18 -- Loss = 0.111
Epoch 19 -- Loss = 0.1072
Epoch 20 -- Loss = 0.0994
Epoch 21 -- Loss = 0.0996
Epoch 22 -- Loss = 0.0877
Epoch 23 -- Loss = 0.0867
Epoch 24 -- Loss = 0.0851
Epoch 25 -- Loss = 0.0823
Epoch 26 -- Loss = 0.0775
Epoch 27 -- Loss = 0.0757
Epoch 28 -- Loss = 0.0717
Epoch 29 -- Loss = 0.0677
Epoch 30 -- Loss = 0.0651
Epoch 31 -- Loss = 0.0638
Epoch 32 -- Loss = 0.059
Epoch 33 -- Loss = 0.0591
Epoch 34 -- Loss = 0.0579
Epoch 35 -- Loss = 0.0524
Epoch 36 -- Loss = 0.0549
Epoch 37 -- Loss = 0.0542
Epoch 38 -- Loss = 0.0476
Epoch 39 -- Loss = 0.051
Epoch 40 -- Loss = 0.0479
Epoch 41 -- Loss = 0.0444
Epoch 42 -- Loss = 0.0457
Epoch 43 -- Loss = 0.0435
Epoch 44 -- Loss = 0.0419
Epoch 45 -- Loss = 0.041
Epoch 46 -- Loss = 0.0392
Epoch 47 -- Loss = 0.038
Epoch 48 -- Loss = 0.0365
Epoch 49 -- Loss = 0.0401
Epoch 50 -- Loss = 0.0395
Threshold = 0.0555

Evaluation Metrics for realAWSCloudwatch/iio_us-east-1_i-a2eb1cd9_NetworkIn.csv
TP = 80 | FP = 467 | FN = 46
Precision = 14.63%
Recall    = 63.49%
F1 Score  = 23.77%

Processing: realAWSCloudwatch/rds_cpu_utilization_cc0c53.csv
Epoch 1 -- Loss = 1.0176
Epoch 2 -- Loss = 1.0305
Epoch 3 -- Loss = 1.0199
Epoch 4 -- Loss = 1.0216
Epoch 5 -- Loss = 1.0284
Epoch 6 -- Loss = 1.0259
Epoch 7 -- Loss = 1.0248
Epoch 8 -- Loss = 1.0189
Epoch 9 -- Loss = 1.0272
Epoch 10 -- Loss = 1.0191
Epoch 11 -- Loss = 1.0171
Epoch 12 -- Loss = 1.02
Epoch 13 -- Loss = 1.0193
Epoch 14 -- Loss = 1.0188
Epoch 15 -- Loss = 1.0212
Epoch 16 -- Loss = 1.025
Epoch 17 -- Loss = 1.0221
Epoch 18 -- Loss = 1.0138
Epoch 19 -- Loss = 1.0126
Epoch 20 -- Loss = 1.016
Threshold = 2.2402

Evaluation Metrics for realAWSCloudwatch/rds_cpu_utilization_cc0c53.csv
TP = 305 | FP = 721 | FN = 97
Precision = 29.73%
Recall    = 75.87%
F1 Score  = 42.72%

Processing: realAWSCloudwatch/rds_cpu_utilization_e47b3b.csv
Epoch 1 -- Loss = 0.9818
Epoch 2 -- Loss = 0.981
Epoch 3 -- Loss = 0.9747
Epoch 4 -- Loss = 0.9826
Epoch 5 -- Loss = 0.9727
Epoch 6 -- Loss = 0.9677
Epoch 7 -- Loss = 0.982
Epoch 8 -- Loss = 0.968
Epoch 9 -- Loss = 0.9746
Epoch 10 -- Loss = 0.9776
Epoch 11 -- Loss = 0.9698
Epoch 12 -- Loss = 0.9719
Epoch 13 -- Loss = 0.9704
Epoch 14 -- Loss = 0.9745
Epoch 15 -- Loss = 0.9715
Epoch 16 -- Loss = 0.9668
Epoch 17 -- Loss = 0.9676
Epoch 18 -- Loss = 0.9656
Epoch 19 -- Loss = 0.9725
Epoch 20 -- Loss = 0.967
Threshold = 1.5222

Evaluation Metrics for realAWSCloudwatch/rds_cpu_utilization_e47b3b.csv
TP = 311 | FP = 2797 | FN = 91
Precision = 10.01%
Recall    = 77.36%
F1 Score  = 17.72%

Processing: realAdExchange/exchange-2_cpc_results.csv
Epoch 1 -- Loss = 0.8759
Epoch 2 -- Loss = 0.8615
Epoch 3 -- Loss = 0.8468
Epoch 4 -- Loss = 0.8221
Epoch 5 -- Loss = 0.7993
Epoch 6 -- Loss = 0.7806
Epoch 7 -- Loss = 0.7747
Epoch 8 -- Loss = 0.7583
Epoch 9 -- Loss = 0.7316
Epoch 10 -- Loss = 0.7102
Epoch 11 -- Loss = 0.7055
Epoch 12 -- Loss = 0.6754
Epoch 13 -- Loss = 0.6815
Epoch 14 -- Loss = 0.6522
Epoch 15 -- Loss = 0.6439
Epoch 16 -- Loss = 0.6328
Epoch 17 -- Loss = 0.6246
Epoch 18 -- Loss = 0.6037
Epoch 19 -- Loss = 0.5814
Epoch 20 -- Loss = 0.5794
Epoch 21 -- Loss = 0.5712
Epoch 22 -- Loss = 0.5549
Epoch 23 -- Loss = 0.5444
Epoch 24 -- Loss = 0.5401
Epoch 25 -- Loss = 0.5238
Threshold = 0.8707

Evaluation Metrics for realAdExchange/exchange-2_cpc_results.csv
TP = 85 | FP = 171 | FN = 230
Precision = 33.2%
Recall    = 26.98%
F1 Score  = 29.77%

Processing: realAdExchange/exchange-2_cpm_results.csv
Epoch 1 -- Loss = 1.0637
Epoch 2 -- Loss = 1.0588
Epoch 3 -- Loss = 1.0097
Epoch 4 -- Loss = 0.9834
Epoch 5 -- Loss = 0.9764
Epoch 6 -- Loss = 0.945
Epoch 7 -- Loss = 0.918
Epoch 8 -- Loss = 0.9075
Epoch 9 -- Loss = 0.8747
Epoch 10 -- Loss = 0.8529
Epoch 11 -- Loss = 0.8211
Epoch 12 -- Loss = 0.817
Epoch 13 -- Loss = 0.7886
Epoch 14 -- Loss = 0.7542
Epoch 15 -- Loss = 0.7608
Epoch 16 -- Loss = 0.7257
Epoch 17 -- Loss = 0.7307
Epoch 18 -- Loss = 0.6912
Epoch 19 -- Loss = 0.6793
Epoch 20 -- Loss = 0.6661
Epoch 21 -- Loss = 0.6376
Epoch 22 -- Loss = 0.6196
Epoch 23 -- Loss = 0.6059
Epoch 24 -- Loss = 0.5962
Epoch 25 -- Loss = 0.5897
Threshold = 0.8956

Evaluation Metrics for realAdExchange/exchange-2_cpm_results.csv
TP = 61 | FP = 250 | FN = 203
Precision = 19.61%
Recall    = 23.11%
F1 Score  = 21.22%

Processing: realAdExchange/exchange-3_cpc_results.csv
Epoch 1 -- Loss = 1.0199
Epoch 2 -- Loss = 1.0128
Epoch 3 -- Loss = 1.024
Epoch 4 -- Loss = 1.0113
Epoch 5 -- Loss = 1.0169
Epoch 6 -- Loss = 1.0096
Epoch 7 -- Loss = 1.0089
Epoch 8 -- Loss = 1.0168
Epoch 9 -- Loss = 1.0158
Epoch 10 -- Loss = 1.0141
Epoch 11 -- Loss = 1.017
Epoch 12 -- Loss = 1.0159
Epoch 13 -- Loss = 1.009
Epoch 14 -- Loss = 1.0046
Epoch 15 -- Loss = 1.0037
Epoch 16 -- Loss = 1.0031
Epoch 17 -- Loss = 1.0039
Epoch 18 -- Loss = 1.0031
Epoch 19 -- Loss = 0.9948
Epoch 20 -- Loss = 1.0103
Threshold = 1.559

Evaluation Metrics for realAdExchange/exchange-3_cpc_results.csv
TP = 13 | FP = 8 | FN = 237
Precision = 61.9%
Recall    = 5.2%
F1 Score  = 9.59%

Processing: realAdExchange/exchange-3_cpm_results.csv
Epoch 1 -- Loss = 0.9592
Epoch 2 -- Loss = 0.9585
Epoch 3 -- Loss = 0.9595
Epoch 4 -- Loss = 0.9557
Epoch 5 -- Loss = 0.9528
Epoch 6 -- Loss = 0.9568
Epoch 7 -- Loss = 0.9508
Epoch 8 -- Loss = 0.9595
Epoch 9 -- Loss = 0.9541
Epoch 10 -- Loss = 0.9609
Epoch 11 -- Loss = 0.9407
Epoch 12 -- Loss = 0.9479
Epoch 13 -- Loss = 0.9457
Epoch 14 -- Loss = 0.9417
Epoch 15 -- Loss = 0.9483
Epoch 16 -- Loss = 0.9433
Epoch 17 -- Loss = 0.9407
Epoch 18 -- Loss = 0.9402
Epoch 19 -- Loss = 0.9392
Epoch 20 -- Loss = 0.9423
Threshold = 1.1551

Evaluation Metrics for realAdExchange/exchange-3_cpm_results.csv
TP = 6 | FP = 53 | FN = 299
Precision = 10.17%
Recall    = 1.97%
F1 Score  = 3.3%

Processing: realAdExchange/exchange-4_cpc_results.csv
Epoch 1 -- Loss = 0.9974
Epoch 2 -- Loss = 0.9887
Epoch 3 -- Loss = 0.9747
Epoch 4 -- Loss = 0.9651
Epoch 5 -- Loss = 0.9426
Epoch 6 -- Loss = 0.9406
Epoch 7 -- Loss = 0.9434
Epoch 8 -- Loss = 0.9355
Epoch 9 -- Loss = 0.9246
Epoch 10 -- Loss = 0.9098
Epoch 11 -- Loss = 0.9118
Epoch 12 -- Loss = 0.9053
Epoch 13 -- Loss = 0.8973
Epoch 14 -- Loss = 0.8887
Epoch 15 -- Loss = 0.8718
Epoch 16 -- Loss = 0.8773
Epoch 17 -- Loss = 0.8647
Epoch 18 -- Loss = 0.8648
Epoch 19 -- Loss = 0.8679
Epoch 20 -- Loss = 0.8505
Epoch 21 -- Loss = 0.8545
Epoch 22 -- Loss = 0.8391
Epoch 23 -- Loss = 0.8461
Epoch 24 -- Loss = 0.8557
Epoch 25 -- Loss = 0.8435
Threshold = 1.5999

Evaluation Metrics for realAdExchange/exchange-4_cpc_results.csv
TP = 112 | FP = 291 | FN = 220
Precision = 27.79%
Recall    = 33.73%
F1 Score  = 30.48%

Processing: realAdExchange/exchange-4_cpm_results.csv
Epoch 1 -- Loss = 0.4882
Epoch 2 -- Loss = 0.4822
Epoch 3 -- Loss = 0.4838
Epoch 4 -- Loss = 0.4725
Epoch 5 -- Loss = 0.4656
Epoch 6 -- Loss = 0.4604
Epoch 7 -- Loss = 0.4598
Epoch 8 -- Loss = 0.4504
Epoch 9 -- Loss = 0.4509
Epoch 10 -- Loss = 0.4427
Epoch 11 -- Loss = 0.4447
Epoch 12 -- Loss = 0.4363
Epoch 13 -- Loss = 0.4293
Epoch 14 -- Loss = 0.4299
Epoch 15 -- Loss = 0.4253
Epoch 16 -- Loss = 0.4187
Epoch 17 -- Loss = 0.4156
Epoch 18 -- Loss = 0.4223
Epoch 19 -- Loss = 0.4144
Epoch 20 -- Loss = 0.4155
Epoch 21 -- Loss = 0.4051
Epoch 22 -- Loss = 0.4111
Epoch 23 -- Loss = 0.4038
Epoch 24 -- Loss = 0.3965
Epoch 25 -- Loss = 0.4031
Threshold = 1.6484

Evaluation Metrics for realAdExchange/exchange-4_cpm_results.csv
TP = 17 | FP = 76 | FN = 229
Precision = 18.28%
Recall    = 6.91%
F1 Score  = 10.03%

Processing: realKnownCause/ambient_temperature_system_failure.csv
Epoch 1 -- Loss = 0.9385
Epoch 2 -- Loss = 0.8845
Epoch 3 -- Loss = 0.8202
Epoch 4 -- Loss = 0.7648
Epoch 5 -- Loss = 0.7218
Epoch 6 -- Loss = 0.6811
Epoch 7 -- Loss = 0.6357
Epoch 8 -- Loss = 0.6024
Epoch 9 -- Loss = 0.5638
Epoch 10 -- Loss = 0.5347
Epoch 11 -- Loss = 0.5073
Epoch 12 -- Loss = 0.4776
Epoch 13 -- Loss = 0.4526
Epoch 14 -- Loss = 0.4315
Epoch 15 -- Loss = 0.4234
Epoch 16 -- Loss = 0.3912
Epoch 17 -- Loss = 0.3797
Epoch 18 -- Loss = 0.3673
Epoch 19 -- Loss = 0.3542
Epoch 20 -- Loss = 0.3419
Epoch 21 -- Loss = 0.3306
Epoch 22 -- Loss = 0.3153
Epoch 23 -- Loss = 0.3101
Epoch 24 -- Loss = 0.2954
Epoch 25 -- Loss = 0.292
Epoch 26 -- Loss = 0.2831
Epoch 27 -- Loss = 0.281
Epoch 28 -- Loss = 0.2693
Epoch 29 -- Loss = 0.2648
Epoch 30 -- Loss = 0.2589
Threshold = 1.0679

Evaluation Metrics for realKnownCause/ambient_temperature_system_failure.csv
TP = 91 | FP = 439 | FN = 1579
Precision = 17.17%
Recall    = 5.45%
F1 Score  = 8.27%

Processing: realKnownCause/cpu_utilization_asg_misconfiguration.csv
Epoch 1 -- Loss = 0.8377
Epoch 2 -- Loss = 0.8055
Epoch 3 -- Loss = 0.7879
Epoch 4 -- Loss = 0.769
Epoch 5 -- Loss = 0.728
Epoch 6 -- Loss = 0.7218
Epoch 7 -- Loss = 0.6988
Epoch 8 -- Loss = 0.6715
Epoch 9 -- Loss = 0.6646
Epoch 10 -- Loss = 0.6465
Epoch 11 -- Loss = 0.6135
Epoch 12 -- Loss = 0.6038
Epoch 13 -- Loss = 0.5846
Epoch 14 -- Loss = 0.5706
Epoch 15 -- Loss = 0.5471
Epoch 16 -- Loss = 0.5435
Epoch 17 -- Loss = 0.521
Epoch 18 -- Loss = 0.51
Epoch 19 -- Loss = 0.5074
Epoch 20 -- Loss = 0.4884
Epoch 21 -- Loss = 0.4706
Epoch 22 -- Loss = 0.4679
Epoch 23 -- Loss = 0.4535
Epoch 24 -- Loss = 0.4401
Epoch 25 -- Loss = 0.4258
Epoch 26 -- Loss = 0.4271
Epoch 27 -- Loss = 0.4241
Epoch 28 -- Loss = 0.4036
Epoch 29 -- Loss = 0.3937
Epoch 30 -- Loss = 0.3851
Threshold = 1.7381

Evaluation Metrics for realKnownCause/cpu_utilization_asg_misconfiguration.csv
TP = 1181 | FP = 1293 | FN = 1817
Precision = 47.74%
Recall    = 39.39%
F1 Score  = 43.17%

Processing: realKnownCause/ec2_request_latency_system_failure.csv
Epoch 1 -- Loss = 1.0579
Epoch 2 -- Loss = 1.0503
Epoch 3 -- Loss = 1.0534
Epoch 4 -- Loss = 1.0515
Epoch 5 -- Loss = 1.0495
Epoch 6 -- Loss = 1.0538
Epoch 7 -- Loss = 1.053
Epoch 8 -- Loss = 1.0464
Epoch 9 -- Loss = 1.0479
Epoch 10 -- Loss = 1.0457
Epoch 11 -- Loss = 1.0456
Epoch 12 -- Loss = 1.0446
Epoch 13 -- Loss = 1.0458
Epoch 14 -- Loss = 1.0435
Epoch 15 -- Loss = 1.0449
Epoch 16 -- Loss = 1.049
Epoch 17 -- Loss = 1.0411
Epoch 18 -- Loss = 1.0471
Epoch 19 -- Loss = 1.041
Epoch 20 -- Loss = 1.044
Threshold = 1.5267

Evaluation Metrics for realKnownCause/ec2_request_latency_system_failure.csv
TP = 64 | FP = 620 | FN = 282
Precision = 9.36%
Recall    = 18.5%
F1 Score  = 12.43%

Processing: realKnownCause/machine_temperature_system_failure.csv
Epoch 1 -- Loss = 1.0801
Epoch 2 -- Loss = 0.9989
Epoch 3 -- Loss = 0.9141
Epoch 4 -- Loss = 0.8296
Epoch 5 -- Loss = 0.7591
Epoch 6 -- Loss = 0.7001
Epoch 7 -- Loss = 0.6494
Epoch 8 -- Loss = 0.6
Epoch 9 -- Loss = 0.5534
Epoch 10 -- Loss = 0.5295
Epoch 11 -- Loss = 0.4856
Epoch 12 -- Loss = 0.449
Epoch 13 -- Loss = 0.4388
Epoch 14 -- Loss = 0.4074
Epoch 15 -- Loss = 0.3879
Epoch 16 -- Loss = 0.3725
Epoch 17 -- Loss = 0.3356
Epoch 18 -- Loss = 0.3387
Epoch 19 -- Loss = 0.3105
Epoch 20 -- Loss = 0.3036
Epoch 21 -- Loss = 0.2936
Epoch 22 -- Loss = 0.2868
Epoch 23 -- Loss = 0.2716
Epoch 24 -- Loss = 0.254
Epoch 25 -- Loss = 0.2525
Epoch 26 -- Loss = 0.2419
Epoch 27 -- Loss = 0.2365
Epoch 28 -- Loss = 0.2331
Epoch 29 -- Loss = 0.2227
Epoch 30 -- Loss = 0.214
Threshold = 0.6973

Evaluation Metrics for realKnownCause/machine_temperature_system_failure.csv
TP = 1916 | FP = 7150 | FN = 919
Precision = 21.13%
Recall    = 67.58%
F1 Score  = 32.2%

Processing: realKnownCause/nyc_taxi.csv
Epoch 1 -- Loss = 0.9915
Epoch 2 -- Loss = 0.9296
Epoch 3 -- Loss = 0.8747
Epoch 4 -- Loss = 0.8132
Epoch 5 -- Loss = 0.7632
Epoch 6 -- Loss = 0.7158
Epoch 7 -- Loss = 0.6831
Epoch 8 -- Loss = 0.6346
Epoch 9 -- Loss = 0.5893
Epoch 10 -- Loss = 0.5534
Epoch 11 -- Loss = 0.5227
Epoch 12 -- Loss = 0.4921
Epoch 13 -- Loss = 0.4618
Epoch 14 -- Loss = 0.4399
Epoch 15 -- Loss = 0.4108
Epoch 16 -- Loss = 0.3951
Epoch 17 -- Loss = 0.3691
Epoch 18 -- Loss = 0.3508
Epoch 19 -- Loss = 0.3368
Epoch 20 -- Loss = 0.3168
Epoch 21 -- Loss = 0.3033
Epoch 22 -- Loss = 0.2852
Epoch 23 -- Loss = 0.2801
Epoch 24 -- Loss = 0.2651
Epoch 25 -- Loss = 0.253
Epoch 26 -- Loss = 0.2468
Epoch 27 -- Loss = 0.2373
Epoch 28 -- Loss = 0.2312
Epoch 29 -- Loss = 0.2171
Epoch 30 -- Loss = 0.2119
Threshold = 0.9209

Evaluation Metrics for realKnownCause/nyc_taxi.csv
TP = 255 | FP = 603 | FN = 2392
Precision = 29.72%
Recall    = 9.63%
F1 Score  = 14.55%

Processing: realKnownCause/rogue_agent_key_hold.csv
Epoch 1 -- Loss = 1.1383
Epoch 2 -- Loss = 1.1365
Epoch 3 -- Loss = 1.1311
Epoch 4 -- Loss = 1.1334
Epoch 5 -- Loss = 1.1315
Epoch 6 -- Loss = 1.1287
Epoch 7 -- Loss = 1.1236
Epoch 8 -- Loss = 1.1239
Epoch 9 -- Loss = 1.1214
Epoch 10 -- Loss = 1.1245
Epoch 11 -- Loss = 1.1223
Epoch 12 -- Loss = 1.1201
Epoch 13 -- Loss = 1.1205
Epoch 14 -- Loss = 1.1175
Epoch 15 -- Loss = 1.1156
Epoch 16 -- Loss = 1.117
Epoch 17 -- Loss = 1.1187
Epoch 18 -- Loss = 1.1172
Epoch 19 -- Loss = 1.1103
Epoch 20 -- Loss = 1.1076
Epoch 21 -- Loss = 1.1115
Epoch 22 -- Loss = 1.1044
Epoch 23 -- Loss = 1.1039
Epoch 24 -- Loss = 1.1065
Epoch 25 -- Loss = 1.1048
Epoch 26 -- Loss = 1.1071
Epoch 27 -- Loss = 1.1069
Epoch 28 -- Loss = 1.1048
Epoch 29 -- Loss = 1.1025
Epoch 30 -- Loss = 1.1016
Threshold = 0.1546

Evaluation Metrics for realKnownCause/rogue_agent_key_hold.csv
TP = 182 | FP = 1106 | FN = 8
Precision = 14.13%
Recall    = 95.79%
F1 Score  = 24.63%

Processing: realKnownCause/rogue_agent_key_updown.csv
Epoch 1 -- Loss = 1.2153
Epoch 2 -- Loss = 1.2024
Epoch 3 -- Loss = 1.1847
Epoch 4 -- Loss = 1.1697
Epoch 5 -- Loss = 1.1509
Epoch 6 -- Loss = 1.1421
Epoch 7 -- Loss = 1.1495
Epoch 8 -- Loss = 1.1222
Epoch 9 -- Loss = 1.1483
Epoch 10 -- Loss = 1.1196
Epoch 11 -- Loss = 1.1015
Epoch 12 -- Loss = 1.0971
Epoch 13 -- Loss = 1.0884
Epoch 14 -- Loss = 1.0979
Epoch 15 -- Loss = 1.0737
Epoch 16 -- Loss = 1.082
Epoch 17 -- Loss = 1.0515
Epoch 18 -- Loss = 1.062
Epoch 19 -- Loss = 1.0357
Epoch 20 -- Loss = 1.0373
Epoch 21 -- Loss = 1.0325
Epoch 22 -- Loss = 1.0299
Epoch 23 -- Loss = 1.017
Epoch 24 -- Loss = 1.0096
Epoch 25 -- Loss = 1.0144
Epoch 26 -- Loss = 0.9939
Epoch 27 -- Loss = 0.9949
Epoch 28 -- Loss = 0.9819
Epoch 29 -- Loss = 0.9795
Epoch 30 -- Loss = 0.9767
Threshold = 0.0441

Evaluation Metrics for realKnownCause/rogue_agent_key_updown.csv
TP = 237 | FP = 1333 | FN = 293
Precision = 15.1%
Recall    = 44.72%
F1 Score  = 22.57%

Processing: realTraffic/TravelTime_387.csv
Epoch 1 -- Loss = 0.9912
Epoch 2 -- Loss = 0.9742
Epoch 3 -- Loss = 0.966
Epoch 4 -- Loss = 0.9754
Epoch 5 -- Loss = 0.946
Epoch 6 -- Loss = 0.9494
Epoch 7 -- Loss = 0.9492
Epoch 8 -- Loss = 0.9204
Epoch 9 -- Loss = 0.9323
Epoch 10 -- Loss = 0.9236
Epoch 11 -- Loss = 0.9172
Epoch 12 -- Loss = 0.8914
Epoch 13 -- Loss = 0.9191
Epoch 14 -- Loss = 0.8911
Epoch 15 -- Loss = 0.9063
Epoch 16 -- Loss = 0.8926
Epoch 17 -- Loss = 0.8891
Epoch 18 -- Loss = 0.8768
Epoch 19 -- Loss = 0.8697
Epoch 20 -- Loss = 0.8696
Epoch 21 -- Loss = 0.8587
Epoch 22 -- Loss = 0.8641
Epoch 23 -- Loss = 0.8627
Epoch 24 -- Loss = 0.8461
Epoch 25 -- Loss = 0.839
Epoch 26 -- Loss = 0.8384
Epoch 27 -- Loss = 0.8152
Epoch 28 -- Loss = 0.815
Epoch 29 -- Loss = 0.8186
Epoch 30 -- Loss = 0.8308
Epoch 31 -- Loss = 0.807
Epoch 32 -- Loss = 0.8232
Epoch 33 -- Loss = 0.8157
Epoch 34 -- Loss = 0.8055
Epoch 35 -- Loss = 0.8053
Epoch 36 -- Loss = 0.8145
Epoch 37 -- Loss = 0.7746
Epoch 38 -- Loss = 0.7788
Epoch 39 -- Loss = 0.759
Epoch 40 -- Loss = 0.7705
Threshold = 0.4175

Evaluation Metrics for realTraffic/TravelTime_387.csv
TP = 82 | FP = 303 | FN = 326
Precision = 21.3%
Recall    = 20.1%
F1 Score  = 20.68%

Processing: realTraffic/TravelTime_451.csv
Epoch 1 -- Loss = 1.0185
Epoch 2 -- Loss = 0.9789
Epoch 3 -- Loss = 0.9566
Epoch 4 -- Loss = 0.9869
Epoch 5 -- Loss = 0.9144
Epoch 6 -- Loss = 0.9155
Epoch 7 -- Loss = 0.8612
Epoch 8 -- Loss = 0.839
Epoch 9 -- Loss = 0.8507
Epoch 10 -- Loss = 0.8211
Epoch 11 -- Loss = 0.8532
Epoch 12 -- Loss = 0.7797
Epoch 13 -- Loss = 0.7806
Epoch 14 -- Loss = 0.788
Epoch 15 -- Loss = 0.7663
Epoch 16 -- Loss = 0.7189
Epoch 17 -- Loss = 0.6998
Epoch 18 -- Loss = 0.7013
Epoch 19 -- Loss = 0.6952
Epoch 20 -- Loss = 0.6921
Epoch 21 -- Loss = 0.6689
Epoch 22 -- Loss = 0.6542
Epoch 23 -- Loss = 0.6803
Epoch 24 -- Loss = 0.6491
Epoch 25 -- Loss = 0.6827
Epoch 26 -- Loss = 0.6989
Epoch 27 -- Loss = 0.7059
Epoch 28 -- Loss = 0.6154
Epoch 29 -- Loss = 0.6748
Epoch 30 -- Loss = 0.6116
Threshold = 0.2028

Evaluation Metrics for realTraffic/TravelTime_451.csv
TP = 130 | FP = 432 | FN = 292
Precision = 23.13%
Recall    = 30.81%
F1 Score  = 26.42%

Processing: realTraffic/occupancy_6005.csv
Epoch 1 -- Loss = 0.9207
Epoch 2 -- Loss = 0.892
Epoch 3 -- Loss = 0.8665
Epoch 4 -- Loss = 0.8476
Epoch 5 -- Loss = 0.8149
Epoch 6 -- Loss = 0.7954
Epoch 7 -- Loss = 0.7859
Epoch 8 -- Loss = 0.756
Epoch 9 -- Loss = 0.7561
Epoch 10 -- Loss = 0.735
Epoch 11 -- Loss = 0.7109
Epoch 12 -- Loss = 0.6954
Epoch 13 -- Loss = 0.6705
Epoch 14 -- Loss = 0.6746
Epoch 15 -- Loss = 0.6489
Epoch 16 -- Loss = 0.6358
Epoch 17 -- Loss = 0.6283
Epoch 18 -- Loss = 0.6167
Epoch 19 -- Loss = 0.6139
Epoch 20 -- Loss = 0.6009
Threshold = 0.9148

Evaluation Metrics for realTraffic/occupancy_6005.csv
TP = 29 | FP = 190 | FN = 210
Precision = 13.24%
Recall    = 12.13%
F1 Score  = 12.66%

Processing: realTraffic/occupancy_t4013.csv
Epoch 1 -- Loss = 1.007
Epoch 2 -- Loss = 0.9725
Epoch 3 -- Loss = 0.9536
Epoch 4 -- Loss = 0.9429
Epoch 5 -- Loss = 0.9152
Epoch 6 -- Loss = 0.8941
Epoch 7 -- Loss = 0.8796
Epoch 8 -- Loss = 0.8513
Epoch 9 -- Loss = 0.8321
Epoch 10 -- Loss = 0.8168
Epoch 11 -- Loss = 0.7942
Epoch 12 -- Loss = 0.7874
Epoch 13 -- Loss = 0.7649
Epoch 14 -- Loss = 0.7465
Epoch 15 -- Loss = 0.748
Epoch 16 -- Loss = 0.7133
Epoch 17 -- Loss = 0.7165
Epoch 18 -- Loss = 0.6981
Epoch 19 -- Loss = 0.6922
Epoch 20 -- Loss = 0.6767
Epoch 21 -- Loss = 0.6716
Epoch 22 -- Loss = 0.6566
Epoch 23 -- Loss = 0.6452
Epoch 24 -- Loss = 0.6363
Epoch 25 -- Loss = 0.6137
Epoch 26 -- Loss = 0.629
Epoch 27 -- Loss = 0.6182
Epoch 28 -- Loss = 0.6055
Epoch 29 -- Loss = 0.6024
Epoch 30 -- Loss = 0.5979
Epoch 31 -- Loss = 0.5967
Epoch 32 -- Loss = 0.5878
Epoch 33 -- Loss = 0.5821
Epoch 34 -- Loss = 0.5824
Epoch 35 -- Loss = 0.5806
Epoch 36 -- Loss = 0.5808
Epoch 37 -- Loss = 0.5819
Epoch 38 -- Loss = 0.5803
Epoch 39 -- Loss = 0.571
Epoch 40 -- Loss = 0.572
Threshold = 0.9674

Evaluation Metrics for realTraffic/occupancy_t4013.csv
TP = 46 | FP = 165 | FN = 204
Precision = 21.8%
Recall    = 18.4%
F1 Score  = 19.96%

Processing: realTraffic/speed_6005.csv
Epoch 1 -- Loss = 0.9831
Epoch 2 -- Loss = 0.9997
Epoch 3 -- Loss = 0.9861
Epoch 4 -- Loss = 0.98
Epoch 5 -- Loss = 0.9859
Epoch 6 -- Loss = 0.9916
Epoch 7 -- Loss = 0.9758
Epoch 8 -- Loss = 0.9791
Epoch 9 -- Loss = 0.9578
Epoch 10 -- Loss = 0.9651
Epoch 11 -- Loss = 0.9609
Epoch 12 -- Loss = 0.9655
Epoch 13 -- Loss = 0.9602
Epoch 14 -- Loss = 0.9564
Epoch 15 -- Loss = 0.9613
Epoch 16 -- Loss = 0.9474
Epoch 17 -- Loss = 0.9483
Epoch 18 -- Loss = 0.9433
Epoch 19 -- Loss = 0.9411
Epoch 20 -- Loss = 0.9235
Epoch 21 -- Loss = 0.9332
Epoch 22 -- Loss = 0.9352
Epoch 23 -- Loss = 0.9232
Epoch 24 -- Loss = 0.9255
Epoch 25 -- Loss = 0.9376
Epoch 26 -- Loss = 0.9272
Epoch 27 -- Loss = 0.9295
Epoch 28 -- Loss = 0.9206
Epoch 29 -- Loss = 0.9168
Epoch 30 -- Loss = 0.9254
Epoch 31 -- Loss = 0.9283
Epoch 32 -- Loss = 0.9315
Epoch 33 -- Loss = 0.9099
Epoch 34 -- Loss = 0.9182
Epoch 35 -- Loss = 0.9071
Epoch 36 -- Loss = 0.9109
Epoch 37 -- Loss = 0.907
Epoch 38 -- Loss = 0.9137
Epoch 39 -- Loss = 0.908
Epoch 40 -- Loss = 0.914
Threshold = 1.4087

Evaluation Metrics for realTraffic/speed_6005.csv
TP = 24 | FP = 184 | FN = 215
Precision = 11.54%
Recall    = 10.04%
F1 Score  = 10.74%

Processing: realTraffic/speed_7578.csv
Epoch 1 -- Loss = 1.0401
Epoch 2 -- Loss = 1.0374
Epoch 3 -- Loss = 1.0321
Epoch 4 -- Loss = 1.0306
Epoch 5 -- Loss = 0.9957
Epoch 6 -- Loss = 0.9895
Epoch 7 -- Loss = 0.9833
Epoch 8 -- Loss = 0.9852
Epoch 9 -- Loss = 0.9772
Epoch 10 -- Loss = 0.9535
Epoch 11 -- Loss = 0.9619
Epoch 12 -- Loss = 0.9341
Epoch 13 -- Loss = 0.9684
Epoch 14 -- Loss = 0.9126
Epoch 15 -- Loss = 0.9367
Epoch 16 -- Loss = 0.9227
Epoch 17 -- Loss = 0.9294
Epoch 18 -- Loss = 0.9191
Epoch 19 -- Loss = 0.9131
Epoch 20 -- Loss = 0.8946
Epoch 21 -- Loss = 0.8892
Epoch 22 -- Loss = 0.9063
Epoch 23 -- Loss = 0.9029
Epoch 24 -- Loss = 0.8929
Epoch 25 -- Loss = 0.8726
Epoch 26 -- Loss = 0.852
Epoch 27 -- Loss = 0.8643
Epoch 28 -- Loss = 0.8911
Epoch 29 -- Loss = 0.8541
Epoch 30 -- Loss = 0.8755
Epoch 31 -- Loss = 0.8566
Epoch 32 -- Loss = 0.8402
Epoch 33 -- Loss = 0.8525
Epoch 34 -- Loss = 0.8306
Epoch 35 -- Loss = 0.832
Epoch 36 -- Loss = 0.8389
Epoch 37 -- Loss = 0.828
Epoch 38 -- Loss = 0.8286
Epoch 39 -- Loss = 0.8123
Epoch 40 -- Loss = 0.7951
Epoch 41 -- Loss = 0.8191
Epoch 42 -- Loss = 0.8077
Epoch 43 -- Loss = 0.8033
Epoch 44 -- Loss = 0.8153
Epoch 45 -- Loss = 0.7892
Epoch 46 -- Loss = 0.7976
Epoch 47 -- Loss = 0.8081
Epoch 48 -- Loss = 0.7837
Epoch 49 -- Loss = 0.8011
Epoch 50 -- Loss = 0.778
Threshold = 0.8308

Evaluation Metrics for realTraffic/speed_7578.csv
TP = 71 | FP = 252 | FN = 45
Precision = 21.98%
Recall    = 61.21%
F1 Score  = 32.35%

Processing: realTraffic/speed_t4013.csv
Epoch 1 -- Loss = 1.0396
Epoch 2 -- Loss = 1.0311
Epoch 3 -- Loss = 1.0349
Epoch 4 -- Loss = 0.9981
Epoch 5 -- Loss = 1.0021
Epoch 6 -- Loss = 0.9828
Epoch 7 -- Loss = 0.9889
Epoch 8 -- Loss = 0.9763
Epoch 9 -- Loss = 0.9681
Epoch 10 -- Loss = 0.9679
Epoch 11 -- Loss = 0.9536
Epoch 12 -- Loss = 0.9476
Epoch 13 -- Loss = 0.9406
Epoch 14 -- Loss = 0.929
Epoch 15 -- Loss = 0.9186
Epoch 16 -- Loss = 0.9204
Epoch 17 -- Loss = 0.8986
Epoch 18 -- Loss = 0.9097
Epoch 19 -- Loss = 0.8753
Epoch 20 -- Loss = 0.8881
Epoch 21 -- Loss = 0.8835
Epoch 22 -- Loss = 0.8897
Epoch 23 -- Loss = 0.8746
Epoch 24 -- Loss = 0.8622
Epoch 25 -- Loss = 0.8915
Epoch 26 -- Loss = 0.8584
Epoch 27 -- Loss = 0.8567
Epoch 28 -- Loss = 0.8538
Epoch 29 -- Loss = 0.8353
Epoch 30 -- Loss = 0.8495
Epoch 31 -- Loss = 0.8655
Epoch 32 -- Loss = 0.8406
Epoch 33 -- Loss = 0.8295
Epoch 34 -- Loss = 0.8394
Epoch 35 -- Loss = 0.835
Epoch 36 -- Loss = 0.8553
Epoch 37 -- Loss = 0.8293
Epoch 38 -- Loss = 0.8417
Epoch 39 -- Loss = 0.8424
Epoch 40 -- Loss = 0.8177
Threshold = 0.7113

Evaluation Metrics for realTraffic/speed_t4013.csv
TP = 82 | FP = 420 | FN = 168
Precision = 16.33%
Recall    = 32.8%
F1 Score  = 21.81%

Processing: realTweets/Twitter_volume_AAPL.csv
Epoch 1 -- Loss = 1.1064
Epoch 2 -- Loss = 1.0599
Epoch 3 -- Loss = 0.9985
Epoch 4 -- Loss = 0.968
Epoch 5 -- Loss = 0.9183
Epoch 6 -- Loss = 0.8777
Epoch 7 -- Loss = 0.8412
Epoch 8 -- Loss = 0.7982
Epoch 9 -- Loss = 0.7762
Epoch 10 -- Loss = 0.7499
Epoch 11 -- Loss = 0.7201
Epoch 12 -- Loss = 0.7077
Epoch 13 -- Loss = 0.6929
Epoch 14 -- Loss = 0.6792
Epoch 15 -- Loss = 0.6637
Epoch 16 -- Loss = 0.647
Epoch 17 -- Loss = 0.6443
Epoch 18 -- Loss = 0.6349
Epoch 19 -- Loss = 0.6265
Epoch 20 -- Loss = 0.6145
Epoch 21 -- Loss = 0.6091
Epoch 22 -- Loss = 0.6143
Epoch 23 -- Loss = 0.6104
Epoch 24 -- Loss = 0.6033
Epoch 25 -- Loss = 0.5923
Epoch 26 -- Loss = 0.5845
Epoch 27 -- Loss = 0.5855
Epoch 28 -- Loss = 0.5776
Epoch 29 -- Loss = 0.576
Epoch 30 -- Loss = 0.5683
Threshold = 0.2182

Evaluation Metrics for realTweets/Twitter_volume_AAPL.csv
TP = 1880 | FP = 6792 | FN = 899
Precision = 21.68%
Recall    = 67.65%
F1 Score  = 32.84%

Processing: realTweets/Twitter_volume_AMZN.csv
Epoch 1 -- Loss = 0.7837
Epoch 2 -- Loss = 0.7696
Epoch 3 -- Loss = 0.7622
Epoch 4 -- Loss = 0.7411
Epoch 5 -- Loss = 0.7377
Epoch 6 -- Loss = 0.7277
Epoch 7 -- Loss = 0.7113
Epoch 8 -- Loss = 0.7001
Epoch 9 -- Loss = 0.693
Epoch 10 -- Loss = 0.6936
Epoch 11 -- Loss = 0.6742
Epoch 12 -- Loss = 0.6728
Epoch 13 -- Loss = 0.6689
Epoch 14 -- Loss = 0.6579
Epoch 15 -- Loss = 0.6544
Epoch 16 -- Loss = 0.6549
Epoch 17 -- Loss = 0.6512
Epoch 18 -- Loss = 0.6388
Epoch 19 -- Loss = 0.6383
Epoch 20 -- Loss = 0.6361
Epoch 21 -- Loss = 0.6225
Epoch 22 -- Loss = 0.6201
Epoch 23 -- Loss = 0.6206
Epoch 24 -- Loss = 0.6176
Epoch 25 -- Loss = 0.6185
Epoch 26 -- Loss = 0.6101
Epoch 27 -- Loss = 0.612
Epoch 28 -- Loss = 0.6057
Epoch 29 -- Loss = 0.599
Epoch 30 -- Loss = 0.5932
Threshold = 1.5263

Evaluation Metrics for realTweets/Twitter_volume_AMZN.csv
TP = 225 | FP = 525 | FN = 2811
Precision = 30.0%
Recall    = 7.41%
F1 Score  = 11.89%

Processing: realTweets/Twitter_volume_CRM.csv
Epoch 1 -- Loss = 0.9625
Epoch 2 -- Loss = 0.9475
Epoch 3 -- Loss = 0.9243
Epoch 4 -- Loss = 0.9043
Epoch 5 -- Loss = 0.8868
Epoch 6 -- Loss = 0.8618
Epoch 7 -- Loss = 0.8471
Epoch 8 -- Loss = 0.8343
Epoch 9 -- Loss = 0.8347
Epoch 10 -- Loss = 0.8073
Epoch 11 -- Loss = 0.799
Epoch 12 -- Loss = 0.7848
Epoch 13 -- Loss = 0.7772
Epoch 14 -- Loss = 0.7716
Epoch 15 -- Loss = 0.762
Epoch 16 -- Loss = 0.7542
Epoch 17 -- Loss = 0.7458
Epoch 18 -- Loss = 0.7324
Epoch 19 -- Loss = 0.7327
Epoch 20 -- Loss = 0.7205
Epoch 21 -- Loss = 0.7253
Epoch 22 -- Loss = 0.7234
Epoch 23 -- Loss = 0.7164
Epoch 24 -- Loss = 0.7124
Epoch 25 -- Loss = 0.714
Epoch 26 -- Loss = 0.7068
Epoch 27 -- Loss = 0.7068
Epoch 28 -- Loss = 0.6937
Epoch 29 -- Loss = 0.6997
Epoch 30 -- Loss = 0.6916
Threshold = 0.4981

Evaluation Metrics for realTweets/Twitter_volume_CRM.csv
TP = 1485 | FP = 6183 | FN = 1170
Precision = 19.37%
Recall    = 55.93%
F1 Score  = 28.77%

Processing: realTweets/Twitter_volume_CVS.csv
Epoch 1 -- Loss = 1.0227
Epoch 2 -- Loss = 1.017
Epoch 3 -- Loss = 1.0093
Epoch 4 -- Loss = 1.0075
Epoch 5 -- Loss = 1.0085
Epoch 6 -- Loss = 0.9955
Epoch 7 -- Loss = 0.9916
Epoch 8 -- Loss = 0.987
Epoch 9 -- Loss = 0.9812
Epoch 10 -- Loss = 0.9708
Epoch 11 -- Loss = 0.9627
Epoch 12 -- Loss = 0.9777
Epoch 13 -- Loss = 0.9602
Epoch 14 -- Loss = 0.9566
Epoch 15 -- Loss = 0.9549
Epoch 16 -- Loss = 0.9495
Epoch 17 -- Loss = 0.9384
Epoch 18 -- Loss = 0.9435
Epoch 19 -- Loss = 0.9383
Epoch 20 -- Loss = 0.9333
Epoch 21 -- Loss = 0.9293
Epoch 22 -- Loss = 0.9256
Epoch 23 -- Loss = 0.9308
Epoch 24 -- Loss = 0.9159
Epoch 25 -- Loss = 0.9085
Epoch 26 -- Loss = 0.9062
Epoch 27 -- Loss = 0.9061
Epoch 28 -- Loss = 0.9042
Epoch 29 -- Loss = 0.8942
Epoch 30 -- Loss = 0.8966
Threshold = 1.3009

Evaluation Metrics for realTweets/Twitter_volume_CVS.csv
TP = 412 | FP = 1868 | FN = 2243
Precision = 18.07%
Recall    = 15.52%
F1 Score  = 16.7%

Processing: realTweets/Twitter_volume_FB.csv
Epoch 1 -- Loss = 1.0486
Epoch 2 -- Loss = 1.0191
Epoch 3 -- Loss = 0.9824
Epoch 4 -- Loss = 0.9443
Epoch 5 -- Loss = 0.9289
Epoch 6 -- Loss = 0.9085
Epoch 7 -- Loss = 0.8749
Epoch 8 -- Loss = 0.857
Epoch 9 -- Loss = 0.8278
Epoch 10 -- Loss = 0.8179
Epoch 11 -- Loss = 0.8069
Epoch 12 -- Loss = 0.7967
Epoch 13 -- Loss = 0.7836
Epoch 14 -- Loss = 0.7726
Epoch 15 -- Loss = 0.767
Epoch 16 -- Loss = 0.7547
Epoch 17 -- Loss = 0.7449
Epoch 18 -- Loss = 0.752
Epoch 19 -- Loss = 0.7384
Epoch 20 -- Loss = 0.7267
Epoch 21 -- Loss = 0.7244
Epoch 22 -- Loss = 0.7232
Epoch 23 -- Loss = 0.706
Epoch 24 -- Loss = 0.7038
Epoch 25 -- Loss = 0.689
Epoch 26 -- Loss = 0.6885
Epoch 27 -- Loss = 0.6815
Epoch 28 -- Loss = 0.674
Epoch 29 -- Loss = 0.6691
Epoch 30 -- Loss = 0.6595
Threshold = 0.2278

Evaluation Metrics for realTweets/Twitter_volume_FB.csv
TP = 1091 | FP = 3844 | FN = 2073
Precision = 22.11%
Recall    = 34.48%
F1 Score  = 26.94%

Processing: realTweets/Twitter_volume_GOOG.csv
Epoch 1 -- Loss = 1.1099
Epoch 2 -- Loss = 1.0795
Epoch 3 -- Loss = 1.0452
Epoch 4 -- Loss = 1.0097
Epoch 5 -- Loss = 0.9895
Epoch 6 -- Loss = 0.9673
Epoch 7 -- Loss = 0.9426
Epoch 8 -- Loss = 0.9213
Epoch 9 -- Loss = 0.8988
Epoch 10 -- Loss = 0.8762
Epoch 11 -- Loss = 0.8765
Epoch 12 -- Loss = 0.8425
Epoch 13 -- Loss = 0.8364
Epoch 14 -- Loss = 0.8119
Epoch 15 -- Loss = 0.8041
Epoch 16 -- Loss = 0.7952
Epoch 17 -- Loss = 0.7871
Epoch 18 -- Loss = 0.7768
Epoch 19 -- Loss = 0.7733
Epoch 20 -- Loss = 0.7638
Epoch 21 -- Loss = 0.7505
Epoch 22 -- Loss = 0.7409
Epoch 23 -- Loss = 0.7418
Epoch 24 -- Loss = 0.7348
Epoch 25 -- Loss = 0.7336
Epoch 26 -- Loss = 0.7318
Epoch 27 -- Loss = 0.7283
Epoch 28 -- Loss = 0.7046
Epoch 29 -- Loss = 0.6996
Epoch 30 -- Loss = 0.6999
Threshold = 0.4021

Evaluation Metrics for realTweets/Twitter_volume_GOOG.csv
TP = 540 | FP = 3825 | FN = 1319
Precision = 12.37%
Recall    = 29.05%
F1 Score  = 17.35%

Processing: realTweets/Twitter_volume_IBM.csv
Epoch 1 -- Loss = 1.0631
Epoch 2 -- Loss = 1.0584
Epoch 3 -- Loss = 1.0315
Epoch 4 -- Loss = 1.0203
Epoch 5 -- Loss = 1.0025
Epoch 6 -- Loss = 0.9964
Epoch 7 -- Loss = 0.9781
Epoch 8 -- Loss = 0.9802
Epoch 9 -- Loss = 0.9632
Epoch 10 -- Loss = 0.9587
Epoch 11 -- Loss = 0.9422
Epoch 12 -- Loss = 0.9386
Epoch 13 -- Loss = 0.9319
Epoch 14 -- Loss = 0.9311
Epoch 15 -- Loss = 0.9223
Epoch 16 -- Loss = 0.9213
Epoch 17 -- Loss = 0.9173
Epoch 18 -- Loss = 0.9178
Epoch 19 -- Loss = 0.9106
Epoch 20 -- Loss = 0.9035
Epoch 21 -- Loss = 0.9031
Epoch 22 -- Loss = 0.9038
Epoch 23 -- Loss = 0.8917
Epoch 24 -- Loss = 0.8871
Epoch 25 -- Loss = 0.8862
Epoch 26 -- Loss = 0.8909
Epoch 27 -- Loss = 0.8877
Epoch 28 -- Loss = 0.8799
Epoch 29 -- Loss = 0.8831
Epoch 30 -- Loss = 0.8719
Threshold = 0.6227

Evaluation Metrics for realTweets/Twitter_volume_IBM.csv
TP = 1008 | FP = 4651 | FN = 1530
Precision = 17.81%
Recall    = 39.72%
F1 Score  = 24.59%

Processing: realTweets/Twitter_volume_KO.csv
Epoch 1 -- Loss = 1.228
Epoch 2 -- Loss = 1.2203
Epoch 3 -- Loss = 1.2301
Epoch 4 -- Loss = 1.2182
Epoch 5 -- Loss = 1.2137
Epoch 6 -- Loss = 1.2157
Epoch 7 -- Loss = 1.2078
Epoch 8 -- Loss = 1.2051
Epoch 9 -- Loss = 1.2025
Epoch 10 -- Loss = 1.1972
Epoch 11 -- Loss = 1.1922
Epoch 12 -- Loss = 1.195
Epoch 13 -- Loss = 1.1891
Epoch 14 -- Loss = 1.1911
Epoch 15 -- Loss = 1.1875
Epoch 16 -- Loss = 1.1775
Epoch 17 -- Loss = 1.1723
Epoch 18 -- Loss = 1.1768
Epoch 19 -- Loss = 1.1723
Epoch 20 -- Loss = 1.1735
Epoch 21 -- Loss = 1.1672
Epoch 22 -- Loss = 1.1617
Epoch 23 -- Loss = 1.1709
Epoch 24 -- Loss = 1.1652
Epoch 25 -- Loss = 1.1595
Epoch 26 -- Loss = 1.1635
Epoch 27 -- Loss = 1.157
Epoch 28 -- Loss = 1.161
Epoch 29 -- Loss = 1.1558
Epoch 30 -- Loss = 1.155
Threshold = 0.3456

Evaluation Metrics for realTweets/Twitter_volume_KO.csv
TP = 584 | FP = 2181 | FN = 2590
Precision = 21.12%
Recall    = 18.4%
F1 Score  = 19.67%

Processing: realTweets/Twitter_volume_PFE.csv
Epoch 1 -- Loss = 0.28
Epoch 2 -- Loss = 0.2771
Epoch 3 -- Loss = 0.2758
Epoch 4 -- Loss = 0.2752
Epoch 5 -- Loss = 0.2711
Epoch 6 -- Loss = 0.2723
Epoch 7 -- Loss = 0.2687
Epoch 8 -- Loss = 0.2667
Epoch 9 -- Loss = 0.2658
Epoch 10 -- Loss = 0.2693
Epoch 11 -- Loss = 0.2621
Epoch 12 -- Loss = 0.2602
Epoch 13 -- Loss = 0.2595
Epoch 14 -- Loss = 0.2596
Epoch 15 -- Loss = 0.2552
Epoch 16 -- Loss = 0.2569
Epoch 17 -- Loss = 0.2529
Epoch 18 -- Loss = 0.2533
Epoch 19 -- Loss = 0.2548
Epoch 20 -- Loss = 0.254
Epoch 21 -- Loss = 0.253
Epoch 22 -- Loss = 0.2534
Epoch 23 -- Loss = 0.2463
Epoch 24 -- Loss = 0.25
Epoch 25 -- Loss = 0.2482
Epoch 26 -- Loss = 0.2471
Epoch 27 -- Loss = 0.2449
Epoch 28 -- Loss = 0.2433
Epoch 29 -- Loss = 0.2467
Epoch 30 -- Loss = 0.2442
Threshold = 1.0148

Evaluation Metrics for realTweets/Twitter_volume_PFE.csv
TP = 449 | FP = 1341 | FN = 2727
Precision = 25.08%
Recall    = 14.14%
F1 Score  = 18.08%

Processing: realTweets/Twitter_volume_UPS.csv
Epoch 1 -- Loss = 0.9302
Epoch 2 -- Loss = 0.9199
Epoch 3 -- Loss = 0.8971
Epoch 4 -- Loss = 0.8753
Epoch 5 -- Loss = 0.87
Epoch 6 -- Loss = 0.8561
Epoch 7 -- Loss = 0.8521
Epoch 8 -- Loss = 0.8305
Epoch 9 -- Loss = 0.821
Epoch 10 -- Loss = 0.8059
Epoch 11 -- Loss = 0.8109
Epoch 12 -- Loss = 0.804
Epoch 13 -- Loss = 0.799
Epoch 14 -- Loss = 0.7923
Epoch 15 -- Loss = 0.7883
Epoch 16 -- Loss = 0.7817
Epoch 17 -- Loss = 0.7732
Epoch 18 -- Loss = 0.7778
Epoch 19 -- Loss = 0.776
Epoch 20 -- Loss = 0.7642
Epoch 21 -- Loss = 0.7529
Epoch 22 -- Loss = 0.7545
Epoch 23 -- Loss = 0.7521
Epoch 24 -- Loss = 0.7359
Epoch 25 -- Loss = 0.7425
Epoch 26 -- Loss = 0.7366
Epoch 27 -- Loss = 0.7306
Epoch 28 -- Loss = 0.7311
Epoch 29 -- Loss = 0.7261
Epoch 30 -- Loss = 0.7301
Threshold = 0.2898

Evaluation Metrics for realTweets/Twitter_volume_UPS.csv
TP = 1929 | FP = 8967 | FN = 607
Precision = 17.7%
Recall    = 76.06%
F1 Score  = 28.72%

All files processed successfully

Supervised

Parameter Loading

Code
function load_params(json_path::String)::Dict{String, Dict{String, Float64}}
    if isfile(json_path)
        return JSON.parsefile(json_path)
    else
        error("params_supervised.json not found at $json_path")
    end
end
load_params (generic function with 1 method)

Data Loading

Code
function load_data_with_labels(filepath::String, labelpath::String)
    label_data = JSON.parsefile(labelpath)
    dataset_key = joinpath(splitpath(filepath)[end-1:end]...)

    df = CSV.read(filepath, DataFrame)
    timestamps = DateTime.(df.timestamp, dateformat"yyyy-MM-dd HH:MM:SS")
    values = Float32.(df.value)

    anomaly_windows = get(label_data, dataset_key, [])
    datetime_format = "yyyy-MM-dd HH:MM:SS.ssss"

    labels = Vector{Int}(undef, length(timestamps))
    for (i, ts) in enumerate(timestamps)
        labels[i] = any(DateTime(w[1], datetime_format) <= ts <=
        DateTime(w[2], datetime_format) for w in anomaly_windows) ? 1 : 0
    end

    return timestamps, values, labels
end
load_data_with_labels (generic function with 1 method)

Data Normalisation and Splitting

Code
function split_and_normalize(values, labels,
    train_ratio::Float64, calib_ratio::Float64)

    n = length(values)
    train_end = floor(Int, n * train_ratio)
    calib_end = floor(Int, n * (train_ratio + calib_ratio))

    train_raw = values[1:train_end]
    mean_train = mean(train_raw)
    std_train = std(train_raw)
    normal_values = (values .- mean_train) ./ std_train

    train_values = normal_values[1:train_end]
    train_labels = labels[1:train_end]

    calib_values = normal_values[train_end+1:calib_end]
    calib_labels = labels[train_end+1:calib_end]

    test_values = normal_values[calib_end+1:end]
    test_labels = labels[calib_end+1:end]

    return (;train_values, train_labels,
           calib_values, calib_labels,
           test_values, test_labels)
end
split_and_normalize (generic function with 2 methods)

Data Sequencing

Code
function create_sequences(values::Vector{Float32}, labels::Vector{Int}, window_size::Int)
    n_seq = length(values) - window_size
    x = Array{Float32}(undef, window_size, 1, n_seq)
    y = Array{Float32}(undef, 1, n_seq)

    for i in 1:n_seq
        x[:, 1, i] = values[i:(i + window_size - 1)]
        y[1, i] = labels[i + window_size - 1]
    end

    return x, y
end
create_sequences (generic function with 2 methods)

Model Training

Code
function build_model(window_size::Int, dropout::Float64)
    return Chain(
        LSTM(window_size => 64),
        Dropout(dropout),
        Dense(64 => 1),
        sigmoid
    )
end

function train_model(x_train::Array{Float32, 3}, y_train::Array{Float32,2};
    window_size::Int, epochs::Int, lr::Float64, dropout::Float64)

    model = build_lstm_model(window_size, dropout)
    opt_state = Flux.setup(ADAMW(lr), model)

    for epoch in 1:epochs
        Flux.reset!(model)

        loss, grads = Flux.withgradient(model) do m
            y_pred = m(x_train)
            y_true = reshape(y_train, size(y_pred))
            Flux.logitbinarycrossentropy(y_pred, y_true)
        end

        Flux.update!(opt_state, model, grads[1])
        println("Epoch $epoch -- Loss: $(round(loss, digits=4))")
    end

    return model
end
train_model (generic function with 1 method)

Conformal Classification

Code
function conformal_threshold(model, x_calib, y_calib, x_test, confidence::Float64)
    Flux.reset!(model)
    calib_prob = model(x_calib)
    residuals = vec(abs.(calib_prob .- y_calib))

    if any(isnan, residuals)
        return NaN, NaN, NaN
    end

    threshold = quantile(residuals, confidence)

    println("\nThreshold = $(round(threshold, digits=4))")

    Flux.reset!(model)
    test_prob = model(x_test)
    test_residuals = abs.(test_prob .- 0.0)
    predicted_anomalies = test_residuals .> threshold

    return predicted_anomalies, test_prob, threshold

end
conformal_threshold (generic function with 1 method)

Evaluation

Code
function compute_metrics(filename:: String, y_true::Vector{Int}, y_pred::BitVector)
    TP = sum((y_true .== 1) .& (y_pred .== true))
    FP = sum((y_true .== 0) .& (y_pred .== true))
    FN = sum((y_true .== 1) .& (y_pred .== false))

    precision = TP + FP == 0 ? 0.0 : TP / (TP + FP)
    recall = TP + FN == 0 ? 0.0 : TP / (TP + FN)
    f1 = precision + recall == 0 ? 0.0 : 2 * (precision * recall) / (precision + recall)

    println("\nEvaluation Metrics for $filename")
    println("TP = $TP | FP = $FP | FN = $FN")
    println("Precision: $(round(precision * 100, digits=2))%")
    println("Recall:    $(round(recall * 100, digits=2))%")
    println("F1 Score:  $(round(f1 * 100, digits=2))%")

    return (;precision, recall, f1, TP, FP, FN)
end
compute_metrics (generic function with 2 methods)

Saving Metrics

Code
function save_metrics(filename::String, metrics::NamedTuple)
    mkpath("results")
    results_file = joinpath("results", "supervised_metrics.csv")

    header = ["filename", "TP", "FP", "FN", "Precision (%)", "Recall (%)", "F1 Score (%)"]

    row = [
        filename, metrics.TP, metrics.FP, metrics.FN,
        round(metrics.precision * 100, digits=2),
        round(metrics.recall * 100, digits=2),
        round(metrics.f1 * 100, digits=2)
    ]

    if isfile(results_file)
        open(results_file, "a") do io
            writedlm(io, [row], ',')
        end
    else
        open(results_file, "w") do io
            writedlm(io, [header], ',')
            writedlm(io, [row], ',')
        end
    end
end
save_metrics (generic function with 1 method)

Implementation

Code
data_root = "data"
label_path = "labels/combined_windows.json"
param_path = "params_supervised.json"

params = load_params(param_path)

all_files = sort(collect(keys(params)))

for filename in all_files
    println("\nProcessing: $filename")

    file_path = joinpath(data_root, filename)

    # Load data and parameters
    timestamps, values, labels = load_data_with_labels(file_path, label_path)
    config = params[filename]
    train_ratio = config["train_ratio"]
    calib_ratio = config["calib_ratio"]
    window_size = Int(config["window_size"])
    epochs = Int(config["epochs"])
    lr = Float64(config["lr"])
    dropout = Float64(config["dropout"])
    conf = Float64(config["conf"])

    # Split and normalize data
    clean_data = split_and_normalize(values, labels, train_ratio, calib_ratio)

    # Create sequences
    x_train, y_train = create_sequences(clean_data.train_values, clean_data.train_labels, window_size)
    x_calib, y_calib = create_sequences(clean_data.calib_values, clean_data.calib_labels, window_size)
    x_test, y_test = create_sequences(clean_data.test_values, clean_data.test_labels, window_size)

    # Train model
    model = train_model(
        x_train, y_train;
        window_size=window_size,
        epochs=epochs,
        lr=lr,
        dropout=dropout
    )

    # Classification
    y_pred_class, test_prob, threshold = conformal_threshold(
        model, x_calib, y_calib, x_test, conf)

    if !isfinite(threshold)
        save_metrics(filename, (;TP=0, FP=0, FN=0, precision=0.0, recall=0.0, f1=0.0, mse=0.0, mae=0.0))
        continue
    end

    # Evaluation
    y_true = Int.(vec(y_test))
    y_pred = vec(y_pred_class)
    metrics = compute_metrics(filename, y_true, y_pred)

    # Save metrics
    save_metrics(filename, metrics)
end
println("\nAll files processed successfully")

Processing: artificialNoAnomaly/art_daily_no_noise.csv
Epoch 1 -- Loss: 0.7144
Epoch 2 -- Loss: 0.7027
Epoch 3 -- Loss: 0.6904
Epoch 4 -- Loss: 0.6801
Epoch 5 -- Loss: 0.6677
Epoch 6 -- Loss: 0.6554
Epoch 7 -- Loss: 0.6445
Epoch 8 -- Loss: 0.6315
Epoch 9 -- Loss: 0.6213
Epoch 10 -- Loss: 0.6087
Epoch 11 -- Loss: 0.5985
Epoch 12 -- Loss: 0.5874
Epoch 13 -- Loss: 0.5767
Epoch 14 -- Loss: 0.5629
Epoch 15 -- Loss: 0.5531
Epoch 16 -- Loss: 0.5434
Epoch 17 -- Loss: 0.5324
Epoch 18 -- Loss: 0.5215
Epoch 19 -- Loss: 0.5082
Epoch 20 -- Loss: 0.4989
Epoch 21 -- Loss: 0.4847
Epoch 22 -- Loss: 0.4737
Epoch 23 -- Loss: 0.4628
Epoch 24 -- Loss: 0.4494
Epoch 25 -- Loss: 0.4389
Epoch 26 -- Loss: 0.4283
Epoch 27 -- Loss: 0.4185
Epoch 28 -- Loss: 0.4076
Epoch 29 -- Loss: 0.394
Epoch 30 -- Loss: 0.3844

Threshold = 1.0347

Evaluation Metrics for artificialNoAnomaly/art_daily_no_noise.csv
TP = 0 | FP = 300 | FN = 0
Precision: 0.0%
Recall:    0.0%
F1 Score:  0.0%

Processing: artificialNoAnomaly/art_daily_perfect_square_wave.csv
Epoch 1 -- Loss: 0.6975
Epoch 2 -- Loss: 0.6838
Epoch 3 -- Loss: 0.6707
Epoch 4 -- Loss: 0.6603
Epoch 5 -- Loss: 0.6483
Epoch 6 -- Loss: 0.6366
Epoch 7 -- Loss: 0.6235
Epoch 8 -- Loss: 0.6134
Epoch 9 -- Loss: 0.6001
Epoch 10 -- Loss: 0.5888
Epoch 11 -- Loss: 0.5796
Epoch 12 -- Loss: 0.5668
Epoch 13 -- Loss: 0.5562
Epoch 14 -- Loss: 0.5465
Epoch 15 -- Loss: 0.5351
Epoch 16 -- Loss: 0.5198
Epoch 17 -- Loss: 0.5125
Epoch 18 -- Loss: 0.4983
Epoch 19 -- Loss: 0.49
Epoch 20 -- Loss: 0.4803
Epoch 21 -- Loss: 0.4681
Epoch 22 -- Loss: 0.4562
Epoch 23 -- Loss: 0.4458
Epoch 24 -- Loss: 0.4384
Epoch 25 -- Loss: 0.4248
Epoch 26 -- Loss: 0.4162
Epoch 27 -- Loss: 0.4046
Epoch 28 -- Loss: 0.3982
Epoch 29 -- Loss: 0.3861
Epoch 30 -- Loss: 0.3758

Threshold = 1.481

Evaluation Metrics for artificialNoAnomaly/art_daily_perfect_square_wave.csv
TP = 0 | FP = 12 | FN = 0
Precision: 0.0%
Recall:    0.0%
F1 Score:  0.0%

Processing: artificialNoAnomaly/art_daily_small_noise.csv
Epoch 1 -- Loss: 0.6961
Epoch 2 -- Loss: 0.6812
Epoch 3 -- Loss: 0.6669
Epoch 4 -- Loss: 0.6541
Epoch 5 -- Loss: 0.6411
Epoch 6 -- Loss: 0.6271
Epoch 7 -- Loss: 0.6158
Epoch 8 -- Loss: 0.6012
Epoch 9 -- Loss: 0.5905
Epoch 10 -- Loss: 0.5751
Epoch 11 -- Loss: 0.5641
Epoch 12 -- Loss: 0.5497
Epoch 13 -- Loss: 0.539
Epoch 14 -- Loss: 0.5263
Epoch 15 -- Loss: 0.5137
Epoch 16 -- Loss: 0.5004
Epoch 17 -- Loss: 0.4889
Epoch 18 -- Loss: 0.4774
Epoch 19 -- Loss: 0.4666
Epoch 20 -- Loss: 0.4534
Epoch 21 -- Loss: 0.4408
Epoch 22 -- Loss: 0.4289
Epoch 23 -- Loss: 0.421
Epoch 24 -- Loss: 0.4058
Epoch 25 -- Loss: 0.3946
Epoch 26 -- Loss: 0.3861
Epoch 27 -- Loss: 0.3737
Epoch 28 -- Loss: 0.3629
Epoch 29 -- Loss: 0.3535
Epoch 30 -- Loss: 0.3431

Threshold = 1.4356

Evaluation Metrics for artificialNoAnomaly/art_daily_small_noise.csv
TP = 0 | FP = 329 | FN = 0
Precision: 0.0%
Recall:    0.0%
F1 Score:  0.0%

Processing: artificialNoAnomaly/art_flatline.csv
Epoch 1 -- Loss: NaN
Epoch 2 -- Loss: NaN
Epoch 3 -- Loss: NaN
Epoch 4 -- Loss: NaN
Epoch 5 -- Loss: NaN
Epoch 6 -- Loss: NaN
Epoch 7 -- Loss: NaN
Epoch 8 -- Loss: NaN
Epoch 9 -- Loss: NaN
Epoch 10 -- Loss: NaN
Epoch 11 -- Loss: NaN
Epoch 12 -- Loss: NaN
Epoch 13 -- Loss: NaN
Epoch 14 -- Loss: NaN
Epoch 15 -- Loss: NaN
Epoch 16 -- Loss: NaN
Epoch 17 -- Loss: NaN
Epoch 18 -- Loss: NaN
Epoch 19 -- Loss: NaN
Epoch 20 -- Loss: NaN
Epoch 21 -- Loss: NaN
Epoch 22 -- Loss: NaN
Epoch 23 -- Loss: NaN
Epoch 24 -- Loss: NaN
Epoch 25 -- Loss: NaN
Epoch 26 -- Loss: NaN
Epoch 27 -- Loss: NaN
Epoch 28 -- Loss: NaN
Epoch 29 -- Loss: NaN
Epoch 30 -- Loss: NaN

Processing: artificialNoAnomaly/art_noisy.csv
Epoch 1 -- Loss: 0.6969
Epoch 2 -- Loss: 0.6932
Epoch 3 -- Loss: 0.6915
Epoch 4 -- Loss: 0.6884
Epoch 5 -- Loss: 0.6837
Epoch 6 -- Loss: 0.6798
Epoch 7 -- Loss: 0.6786
Epoch 8 -- Loss: 0.6738
Epoch 9 -- Loss: 0.6718
Epoch 10 -- Loss: 0.6679
Epoch 11 -- Loss: 0.6642
Epoch 12 -- Loss: 0.6615
Epoch 13 -- Loss: 0.6578
Epoch 14 -- Loss: 0.656
Epoch 15 -- Loss: 0.6503
Epoch 16 -- Loss: 0.6486
Epoch 17 -- Loss: 0.6432
Epoch 18 -- Loss: 0.6433
Epoch 19 -- Loss: 0.6376
Epoch 20 -- Loss: 0.635
Epoch 21 -- Loss: 0.6322
Epoch 22 -- Loss: 0.6286
Epoch 23 -- Loss: 0.6265
Epoch 24 -- Loss: 0.6217
Epoch 25 -- Loss: 0.6157
Epoch 26 -- Loss: 0.6166
Epoch 27 -- Loss: 0.6093
Epoch 28 -- Loss: 0.6057
Epoch 29 -- Loss: 0.6037
Epoch 30 -- Loss: 0.5996

Threshold = 0.3081

Evaluation Metrics for artificialNoAnomaly/art_noisy.csv
TP = 0 | FP = 510 | FN = 0
Precision: 0.0%
Recall:    0.0%
F1 Score:  0.0%

Processing: artificialWithAnomaly/art_daily_flatmiddle.csv
Epoch 1 -- Loss: 0.6701
Epoch 2 -- Loss: 0.6624
Epoch 3 -- Loss: 0.6473
Epoch 4 -- Loss: 0.6364
Epoch 5 -- Loss: 0.6265
Epoch 6 -- Loss: 0.6163
Epoch 7 -- Loss: 0.6052
Epoch 8 -- Loss: 0.5946
Epoch 9 -- Loss: 0.5812
Epoch 10 -- Loss: 0.5716
Epoch 11 -- Loss: 0.5622
Epoch 12 -- Loss: 0.5487
Epoch 13 -- Loss: 0.5381
Epoch 14 -- Loss: 0.5288
Epoch 15 -- Loss: 0.5165
Epoch 16 -- Loss: 0.5087
Epoch 17 -- Loss: 0.4957
Epoch 18 -- Loss: 0.4856
Epoch 19 -- Loss: 0.4755
Epoch 20 -- Loss: 0.4625
Epoch 21 -- Loss: 0.4535
Epoch 22 -- Loss: 0.4395
Epoch 23 -- Loss: 0.4303
Epoch 24 -- Loss: 0.4208
Epoch 25 -- Loss: 0.4093
Epoch 26 -- Loss: 0.401
Epoch 27 -- Loss: 0.3889
Epoch 28 -- Loss: 0.3762
Epoch 29 -- Loss: 0.367
Epoch 30 -- Loss: 0.3575

Threshold = 1.2231

Evaluation Metrics for artificialWithAnomaly/art_daily_flatmiddle.csv
TP = 52 | FP = 306 | FN = 351
Precision: 14.53%
Recall:    12.9%
F1 Score:  13.67%

Processing: artificialWithAnomaly/art_daily_jumpsdown.csv
Epoch 1 -- Loss: 0.6635
Epoch 2 -- Loss: 0.6548
Epoch 3 -- Loss: 0.6409
Epoch 4 -- Loss: 0.6294
Epoch 5 -- Loss: 0.6185
Epoch 6 -- Loss: 0.6056
Epoch 7 -- Loss: 0.5956
Epoch 8 -- Loss: 0.5848
Epoch 9 -- Loss: 0.5717
Epoch 10 -- Loss: 0.5599
Epoch 11 -- Loss: 0.5497
Epoch 12 -- Loss: 0.5381
Epoch 13 -- Loss: 0.5262
Epoch 14 -- Loss: 0.5142
Epoch 15 -- Loss: 0.5035
Epoch 16 -- Loss: 0.4911
Epoch 17 -- Loss: 0.4808
Epoch 18 -- Loss: 0.468
Epoch 19 -- Loss: 0.4567
Epoch 20 -- Loss: 0.4455
Epoch 21 -- Loss: 0.4346
Epoch 22 -- Loss: 0.4222
Epoch 23 -- Loss: 0.4126
Epoch 24 -- Loss: 0.4026
Epoch 25 -- Loss: 0.3894
Epoch 26 -- Loss: 0.3827
Epoch 27 -- Loss: 0.3691
Epoch 28 -- Loss: 0.3587
Epoch 29 -- Loss: 0.3484
Epoch 30 -- Loss: 0.3416

Threshold = 1.364

Evaluation Metrics for artificialWithAnomaly/art_daily_jumpsdown.csv
TP = 15 | FP = 322 | FN = 388
Precision: 4.45%
Recall:    3.72%
F1 Score:  4.05%

Processing: artificialWithAnomaly/art_daily_jumpsup.csv
Epoch 1 -- Loss: 0.6987
Epoch 2 -- Loss: 0.6889
Epoch 3 -- Loss: 0.6708
Epoch 4 -- Loss: 0.6567
Epoch 5 -- Loss: 0.6468
Epoch 6 -- Loss: 0.6315
Epoch 7 -- Loss: 0.6186
Epoch 8 -- Loss: 0.6033
Epoch 9 -- Loss: 0.5936
Epoch 10 -- Loss: 0.5796
Epoch 11 -- Loss: 0.5692
Epoch 12 -- Loss: 0.5529
Epoch 13 -- Loss: 0.5399
Epoch 14 -- Loss: 0.5295
Epoch 15 -- Loss: 0.5187
Epoch 16 -- Loss: 0.5088
Epoch 17 -- Loss: 0.4929
Epoch 18 -- Loss: 0.4824
Epoch 19 -- Loss: 0.474
Epoch 20 -- Loss: 0.4605
Epoch 21 -- Loss: 0.4497
Epoch 22 -- Loss: 0.4386
Epoch 23 -- Loss: 0.4279
Epoch 24 -- Loss: 0.4181
Epoch 25 -- Loss: 0.4071
Epoch 26 -- Loss: 0.3985
Epoch 27 -- Loss: 0.3871
Epoch 28 -- Loss: 0.3764
Epoch 29 -- Loss: 0.3696
Epoch 30 -- Loss: 0.3582

Threshold = 1.7117

Evaluation Metrics for artificialWithAnomaly/art_daily_jumpsup.csv
TP = 124 | FP = 173 | FN = 279
Precision: 41.75%
Recall:    30.77%
F1 Score:  35.43%

Processing: artificialWithAnomaly/art_daily_nojump.csv
Epoch 1 -- Loss: 0.7043
Epoch 2 -- Loss: 0.6908
Epoch 3 -- Loss: 0.6787
Epoch 4 -- Loss: 0.6703
Epoch 5 -- Loss: 0.6581
Epoch 6 -- Loss: 0.6468
Epoch 7 -- Loss: 0.6369
Epoch 8 -- Loss: 0.6254
Epoch 9 -- Loss: 0.6127
Epoch 10 -- Loss: 0.6053
Epoch 11 -- Loss: 0.5946
Epoch 12 -- Loss: 0.5839
Epoch 13 -- Loss: 0.5746
Epoch 14 -- Loss: 0.5647
Epoch 15 -- Loss: 0.5534
Epoch 16 -- Loss: 0.5432
Epoch 17 -- Loss: 0.534
Epoch 18 -- Loss: 0.5245
Epoch 19 -- Loss: 0.514
Epoch 20 -- Loss: 0.5037
Epoch 21 -- Loss: 0.4932
Epoch 22 -- Loss: 0.4854
Epoch 23 -- Loss: 0.4742
Epoch 24 -- Loss: 0.4636
Epoch 25 -- Loss: 0.4545
Epoch 26 -- Loss: 0.4438
Epoch 27 -- Loss: 0.4373
Epoch 28 -- Loss: 0.4264
Epoch 29 -- Loss: 0.416
Epoch 30 -- Loss: 0.4056

Threshold = 1.4665

Evaluation Metrics for artificialWithAnomaly/art_daily_nojump.csv
TP = 7 | FP = 323 | FN = 396
Precision: 2.12%
Recall:    1.74%
F1 Score:  1.91%

Processing: artificialWithAnomaly/art_increase_spike_density.csv
Epoch 1 -- Loss: 0.6874
Epoch 2 -- Loss: 0.6829
Epoch 3 -- Loss: 0.682
Epoch 4 -- Loss: 0.676
Epoch 5 -- Loss: 0.6729
Epoch 6 -- Loss: 0.668
Epoch 7 -- Loss: 0.6661
Epoch 8 -- Loss: 0.6613
Epoch 9 -- Loss: 0.6583
Epoch 10 -- Loss: 0.6544
Epoch 11 -- Loss: 0.6515
Epoch 12 -- Loss: 0.6459
Epoch 13 -- Loss: 0.6432
Epoch 14 -- Loss: 0.6384
Epoch 15 -- Loss: 0.6355
Epoch 16 -- Loss: 0.6319
Epoch 17 -- Loss: 0.6291
Epoch 18 -- Loss: 0.6261
Epoch 19 -- Loss: 0.6221
Epoch 20 -- Loss: 0.6171
Epoch 21 -- Loss: 0.6128
Epoch 22 -- Loss: 0.6092
Epoch 23 -- Loss: 0.6048
Epoch 24 -- Loss: 0.6018
Epoch 25 -- Loss: 0.5975
Epoch 26 -- Loss: 0.5944
Epoch 27 -- Loss: 0.5901
Epoch 28 -- Loss: 0.5865
Epoch 29 -- Loss: 0.5804
Epoch 30 -- Loss: 0.5781

Threshold = 0.2833

Evaluation Metrics for artificialWithAnomaly/art_increase_spike_density.csv
TP = 63 | FP = 477 | FN = 340
Precision: 11.67%
Recall:    15.63%
F1 Score:  13.36%

Processing: artificialWithAnomaly/art_load_balancer_spikes.csv
Epoch 1 -- Loss: 0.6964
Epoch 2 -- Loss: 0.6941
Epoch 3 -- Loss: 0.6878
Epoch 4 -- Loss: 0.6825
Epoch 5 -- Loss: 0.6781
Epoch 6 -- Loss: 0.674
Epoch 7 -- Loss: 0.6707
Epoch 8 -- Loss: 0.6683
Epoch 9 -- Loss: 0.6629
Epoch 10 -- Loss: 0.6578
Epoch 11 -- Loss: 0.6566
Epoch 12 -- Loss: 0.6507
Epoch 13 -- Loss: 0.6465
Epoch 14 -- Loss: 0.643
Epoch 15 -- Loss: 0.6381
Epoch 16 -- Loss: 0.6338
Epoch 17 -- Loss: 0.6294
Epoch 18 -- Loss: 0.6257
Epoch 19 -- Loss: 0.6213
Epoch 20 -- Loss: 0.6172
Epoch 21 -- Loss: 0.6121
Epoch 22 -- Loss: 0.6084
Epoch 23 -- Loss: 0.6048
Epoch 24 -- Loss: 0.6021
Epoch 25 -- Loss: 0.5962
Epoch 26 -- Loss: 0.594
Epoch 27 -- Loss: 0.5891
Epoch 28 -- Loss: 0.5837
Epoch 29 -- Loss: 0.5808
Epoch 30 -- Loss: 0.5765

Threshold = 0.3077

Evaluation Metrics for artificialWithAnomaly/art_load_balancer_spikes.csv
TP = 131 | FP = 375 | FN = 272
Precision: 25.89%
Recall:    32.51%
F1 Score:  28.82%

Processing: realAWSCloudwatch/ec2_cpu_utilization_24ae8d.csv
Epoch 1 -- Loss: 0.6991
Epoch 2 -- Loss: 0.6931
Epoch 3 -- Loss: 0.6915
Epoch 4 -- Loss: 0.6911
Epoch 5 -- Loss: 0.6859
Epoch 6 -- Loss: 0.684
Epoch 7 -- Loss: 0.6817
Epoch 8 -- Loss: 0.679
Epoch 9 -- Loss: 0.6762
Epoch 10 -- Loss: 0.6736
Epoch 11 -- Loss: 0.6699
Epoch 12 -- Loss: 0.6671
Epoch 13 -- Loss: 0.6629
Epoch 14 -- Loss: 0.6614
Epoch 15 -- Loss: 0.6581
Epoch 16 -- Loss: 0.6563
Epoch 17 -- Loss: 0.6556
Epoch 18 -- Loss: 0.6501
Epoch 19 -- Loss: 0.6485
Epoch 20 -- Loss: 0.645
Epoch 21 -- Loss: 0.6429
Epoch 22 -- Loss: 0.6388
Epoch 23 -- Loss: 0.6375
Epoch 24 -- Loss: 0.6332
Epoch 25 -- Loss: 0.6303
Epoch 26 -- Loss: 0.6286
Epoch 27 -- Loss: 0.6255
Epoch 28 -- Loss: 0.6222
Epoch 29 -- Loss: 0.6199
Epoch 30 -- Loss: 0.6165

Threshold = 0.3493

Evaluation Metrics for realAWSCloudwatch/ec2_cpu_utilization_24ae8d.csv
TP = 47 | FP = 257 | FN = 355
Precision: 15.46%
Recall:    11.69%
F1 Score:  13.31%

Processing: realAWSCloudwatch/ec2_cpu_utilization_53ea38.csv
Epoch 1 -- Loss: 0.7003
Epoch 2 -- Loss: 0.699
Epoch 3 -- Loss: 0.691
Epoch 4 -- Loss: 0.6894
Epoch 5 -- Loss: 0.685
Epoch 6 -- Loss: 0.6803
Epoch 7 -- Loss: 0.6736
Epoch 8 -- Loss: 0.6688
Epoch 9 -- Loss: 0.6648
Epoch 10 -- Loss: 0.6613
Epoch 11 -- Loss: 0.6554
Epoch 12 -- Loss: 0.6526
Epoch 13 -- Loss: 0.6466
Epoch 14 -- Loss: 0.6407
Epoch 15 -- Loss: 0.6376
Epoch 16 -- Loss: 0.632
Epoch 17 -- Loss: 0.6277
Epoch 18 -- Loss: 0.6266
Epoch 19 -- Loss: 0.6177
Epoch 20 -- Loss: 0.615
Epoch 21 -- Loss: 0.6094
Epoch 22 -- Loss: 0.605
Epoch 23 -- Loss: 0.603
Epoch 24 -- Loss: 0.5946
Epoch 25 -- Loss: 0.5932
Epoch 26 -- Loss: 0.5847
Epoch 27 -- Loss: 0.581
Epoch 28 -- Loss: 0.5767
Epoch 29 -- Loss: 0.5711
Epoch 30 -- Loss: 0.567

Threshold = 0.4663

Evaluation Metrics for realAWSCloudwatch/ec2_cpu_utilization_53ea38.csv
TP = 103 | FP = 502 | FN = 299
Precision: 17.02%
Recall:    25.62%
F1 Score:  20.46%

Processing: realAWSCloudwatch/ec2_cpu_utilization_5f5533.csv
Epoch 1 -- Loss: 0.6927
Epoch 2 -- Loss: 0.6876
Epoch 3 -- Loss: 0.6829
Epoch 4 -- Loss: 0.6735
Epoch 5 -- Loss: 0.6672
Epoch 6 -- Loss: 0.6636
Epoch 7 -- Loss: 0.6559
Epoch 8 -- Loss: 0.6465
Epoch 9 -- Loss: 0.6425
Epoch 10 -- Loss: 0.6347
Epoch 11 -- Loss: 0.6279
Epoch 12 -- Loss: 0.6212
Epoch 13 -- Loss: 0.615
Epoch 14 -- Loss: 0.6065
Epoch 15 -- Loss: 0.6006
Epoch 16 -- Loss: 0.5961
Epoch 17 -- Loss: 0.5873
Epoch 18 -- Loss: 0.5787
Epoch 19 -- Loss: 0.5711
Epoch 20 -- Loss: 0.5664
Epoch 21 -- Loss: 0.5597
Epoch 22 -- Loss: 0.5514
Epoch 23 -- Loss: 0.5419
Epoch 24 -- Loss: 0.535
Epoch 25 -- Loss: 0.5285
Epoch 26 -- Loss: 0.5221
Epoch 27 -- Loss: 0.5137
Epoch 28 -- Loss: 0.5059
Epoch 29 -- Loss: 0.4997
Epoch 30 -- Loss: 0.4909

Threshold = 0.6771

Evaluation Metrics for realAWSCloudwatch/ec2_cpu_utilization_5f5533.csv
TP = 21 | FP = 93 | FN = 381
Precision: 18.42%
Recall:    5.22%
F1 Score:  8.14%

Processing: realAWSCloudwatch/ec2_cpu_utilization_77c1ca.csv
Epoch 1 -- Loss: 0.7017
Epoch 2 -- Loss: 0.6959
Epoch 3 -- Loss: 0.6941
Epoch 4 -- Loss: 0.6864
Epoch 5 -- Loss: 0.6819
Epoch 6 -- Loss: 0.6775
Epoch 7 -- Loss: 0.6729
Epoch 8 -- Loss: 0.669
Epoch 9 -- Loss: 0.6643
Epoch 10 -- Loss: 0.6584
Epoch 11 -- Loss: 0.656
Epoch 12 -- Loss: 0.6517
Epoch 13 -- Loss: 0.6465
Epoch 14 -- Loss: 0.6415
Epoch 15 -- Loss: 0.6393
Epoch 16 -- Loss: 0.6331
Epoch 17 -- Loss: 0.63
Epoch 18 -- Loss: 0.6234
Epoch 19 -- Loss: 0.6196
Epoch 20 -- Loss: 0.6141
Epoch 21 -- Loss: 0.6093
Epoch 22 -- Loss: 0.6046
Epoch 23 -- Loss: 0.5996
Epoch 24 -- Loss: 0.5973
Epoch 25 -- Loss: 0.5912
Epoch 26 -- Loss: 0.5873
Epoch 27 -- Loss: 0.5844
Epoch 28 -- Loss: 0.5776
Epoch 29 -- Loss: 0.5721
Epoch 30 -- Loss: 0.566

Threshold = 0.414

Evaluation Metrics for realAWSCloudwatch/ec2_cpu_utilization_77c1ca.csv
TP = 36 | FP = 284 | FN = 367
Precision: 11.25%
Recall:    8.93%
F1 Score:  9.96%

Processing: realAWSCloudwatch/ec2_cpu_utilization_825cc2.csv
Epoch 1 -- Loss: 0.692
Epoch 2 -- Loss: 0.6893
Epoch 3 -- Loss: 0.6838
Epoch 4 -- Loss: 0.6792
Epoch 5 -- Loss: 0.6749
Epoch 6 -- Loss: 0.6716
Epoch 7 -- Loss: 0.6672
Epoch 8 -- Loss: 0.6626
Epoch 9 -- Loss: 0.6577
Epoch 10 -- Loss: 0.6524
Epoch 11 -- Loss: 0.6511
Epoch 12 -- Loss: 0.6467
Epoch 13 -- Loss: 0.6427
Epoch 14 -- Loss: 0.6379
Epoch 15 -- Loss: 0.6317
Epoch 16 -- Loss: 0.628
Epoch 17 -- Loss: 0.6248
Epoch 18 -- Loss: 0.6188
Epoch 19 -- Loss: 0.6152
Epoch 20 -- Loss: 0.6123
Epoch 21 -- Loss: 0.6062
Epoch 22 -- Loss: 0.6018
Epoch 23 -- Loss: 0.5965
Epoch 24 -- Loss: 0.592
Epoch 25 -- Loss: 0.5878
Epoch 26 -- Loss: 0.5822
Epoch 27 -- Loss: 0.5782
Epoch 28 -- Loss: 0.5724
Epoch 29 -- Loss: 0.5659
Epoch 30 -- Loss: 0.5623

Threshold = 0.7435

Evaluation Metrics for realAWSCloudwatch/ec2_cpu_utilization_825cc2.csv
TP = 163 | FP = 1498 | FN = 180
Precision: 9.81%
Recall:    47.52%
F1 Score:  16.27%

Processing: realAWSCloudwatch/ec2_cpu_utilization_ac20cd.csv
Epoch 1 -- Loss: 0.6908
Epoch 2 -- Loss: 0.6911
Epoch 3 -- Loss: 0.69
Epoch 4 -- Loss: 0.689
Epoch 5 -- Loss: 0.6894
Epoch 6 -- Loss: 0.6903
Epoch 7 -- Loss: 0.6917
Epoch 8 -- Loss: 0.69
Epoch 9 -- Loss: 0.6908
Epoch 10 -- Loss: 0.6898
Epoch 11 -- Loss: 0.6891
Epoch 12 -- Loss: 0.6875
Epoch 13 -- Loss: 0.688
Epoch 14 -- Loss: 0.6865
Epoch 15 -- Loss: 0.6872
Epoch 16 -- Loss: 0.6863
Epoch 17 -- Loss: 0.6874
Epoch 18 -- Loss: 0.6868
Epoch 19 -- Loss: 0.6868
Epoch 20 -- Loss: 0.685

Threshold = 1.148

Evaluation Metrics for realAWSCloudwatch/ec2_cpu_utilization_ac20cd.csv
TP = 0 | FP = 0 | FN = 403
Precision: 0.0%
Recall:    0.0%
F1 Score:  0.0%

Processing: realAWSCloudwatch/ec2_cpu_utilization_c6585a.csv
Epoch 1 -- Loss: 0.6967
Epoch 2 -- Loss: 0.692
Epoch 3 -- Loss: 0.6883
Epoch 4 -- Loss: 0.6861
Epoch 5 -- Loss: 0.6823
Epoch 6 -- Loss: 0.6801
Epoch 7 -- Loss: 0.6762
Epoch 8 -- Loss: 0.6748
Epoch 9 -- Loss: 0.6706
Epoch 10 -- Loss: 0.6679
Epoch 11 -- Loss: 0.6658
Epoch 12 -- Loss: 0.6614
Epoch 13 -- Loss: 0.6582
Epoch 14 -- Loss: 0.6558
Epoch 15 -- Loss: 0.6523
Epoch 16 -- Loss: 0.6493
Epoch 17 -- Loss: 0.6483
Epoch 18 -- Loss: 0.6443
Epoch 19 -- Loss: 0.6407
Epoch 20 -- Loss: 0.6374
Epoch 21 -- Loss: 0.6344
Epoch 22 -- Loss: 0.6312
Epoch 23 -- Loss: 0.6275
Epoch 24 -- Loss: 0.6244
Epoch 25 -- Loss: 0.6238
Epoch 26 -- Loss: 0.6194
Epoch 27 -- Loss: 0.6156
Epoch 28 -- Loss: 0.6136
Epoch 29 -- Loss: 0.6096
Epoch 30 -- Loss: 0.6076

Threshold = 0.3174

Evaluation Metrics for realAWSCloudwatch/ec2_cpu_utilization_c6585a.csv
TP = 0 | FP = 522 | FN = 0
Precision: 0.0%
Recall:    0.0%
F1 Score:  0.0%

Processing: realAWSCloudwatch/ec2_cpu_utilization_fe7f93.csv
Epoch 1 -- Loss: 0.6895
Epoch 2 -- Loss: 0.6859
Epoch 3 -- Loss: 0.6813
Epoch 4 -- Loss: 0.6772
Epoch 5 -- Loss: 0.6726
Epoch 6 -- Loss: 0.6684
Epoch 7 -- Loss: 0.6621
Epoch 8 -- Loss: 0.6582
Epoch 9 -- Loss: 0.6552
Epoch 10 -- Loss: 0.6496
Epoch 11 -- Loss: 0.6445
Epoch 12 -- Loss: 0.6371
Epoch 13 -- Loss: 0.6349
Epoch 14 -- Loss: 0.6309
Epoch 15 -- Loss: 0.6273
Epoch 16 -- Loss: 0.6211
Epoch 17 -- Loss: 0.6178
Epoch 18 -- Loss: 0.6105
Epoch 19 -- Loss: 0.6067
Epoch 20 -- Loss: 0.6048
Epoch 21 -- Loss: 0.5984
Epoch 22 -- Loss: 0.5939
Epoch 23 -- Loss: 0.5894
Epoch 24 -- Loss: 0.5839
Epoch 25 -- Loss: 0.5798
Epoch 26 -- Loss: 0.5737
Epoch 27 -- Loss: 0.5698
Epoch 28 -- Loss: 0.5659
Epoch 29 -- Loss: 0.5571
Epoch 30 -- Loss: 0.5539

Threshold = 0.3976

Evaluation Metrics for realAWSCloudwatch/ec2_cpu_utilization_fe7f93.csv
TP = 71 | FP = 163 | FN = 334
Precision: 30.34%
Recall:    17.53%
F1 Score:  22.22%

Processing: realAWSCloudwatch/ec2_disk_write_bytes_1ef3de.csv
Epoch 1 -- Loss: 0.6935
Epoch 2 -- Loss: 0.6921
Epoch 3 -- Loss: 0.6887
Epoch 4 -- Loss: 0.6868
Epoch 5 -- Loss: 0.6846
Epoch 6 -- Loss: 0.6829
Epoch 7 -- Loss: 0.6806
Epoch 8 -- Loss: 0.6782
Epoch 9 -- Loss: 0.6764
Epoch 10 -- Loss: 0.6746
Epoch 11 -- Loss: 0.672
Epoch 12 -- Loss: 0.6705
Epoch 13 -- Loss: 0.6672
Epoch 14 -- Loss: 0.666
Epoch 15 -- Loss: 0.6628
Epoch 16 -- Loss: 0.6615
Epoch 17 -- Loss: 0.6586
Epoch 18 -- Loss: 0.6573
Epoch 19 -- Loss: 0.6544
Epoch 20 -- Loss: 0.6516
Epoch 21 -- Loss: 0.6503
Epoch 22 -- Loss: 0.6476
Epoch 23 -- Loss: 0.6448
Epoch 24 -- Loss: 0.6435
Epoch 25 -- Loss: 0.6406
Epoch 26 -- Loss: 0.6378
Epoch 27 -- Loss: 0.6356
Epoch 28 -- Loss: 0.6334
Epoch 29 -- Loss: 0.6309
Epoch 30 -- Loss: 0.6284

Threshold = 0.808

Evaluation Metrics for realAWSCloudwatch/ec2_disk_write_bytes_1ef3de.csv
TP = 40 | FP = 246 | FN = 433
Precision: 13.99%
Recall:    8.46%
F1 Score:  10.54%

Processing: realAWSCloudwatch/ec2_disk_write_bytes_c0d644.csv
Epoch 1 -- Loss: 0.7019
Epoch 2 -- Loss: 0.6985
Epoch 3 -- Loss: 0.6951
Epoch 4 -- Loss: 0.6887
Epoch 5 -- Loss: 0.6885
Epoch 6 -- Loss: 0.6838
Epoch 7 -- Loss: 0.6792
Epoch 8 -- Loss: 0.6771
Epoch 9 -- Loss: 0.6725
Epoch 10 -- Loss: 0.6702
Epoch 11 -- Loss: 0.6681
Epoch 12 -- Loss: 0.6643
Epoch 13 -- Loss: 0.66
Epoch 14 -- Loss: 0.6575
Epoch 15 -- Loss: 0.6545
Epoch 16 -- Loss: 0.6499
Epoch 17 -- Loss: 0.6458
Epoch 18 -- Loss: 0.6418
Epoch 19 -- Loss: 0.6388
Epoch 20 -- Loss: 0.6364
Epoch 21 -- Loss: 0.6317
Epoch 22 -- Loss: 0.6278
Epoch 23 -- Loss: 0.6258
Epoch 24 -- Loss: 0.6217
Epoch 25 -- Loss: 0.6176
Epoch 26 -- Loss: 0.615
Epoch 27 -- Loss: 0.6117
Epoch 28 -- Loss: 0.6067
Epoch 29 -- Loss: 0.603
Epoch 30 -- Loss: 0.5991

Threshold = 0.2771

Evaluation Metrics for realAWSCloudwatch/ec2_disk_write_bytes_c0d644.csv
TP = 62 | FP = 384 | FN = 343
Precision: 13.9%
Recall:    15.31%
F1 Score:  14.57%

Processing: realAWSCloudwatch/ec2_network_in_257a54.csv
Epoch 1 -- Loss: 0.6933
Epoch 2 -- Loss: 0.6855
Epoch 3 -- Loss: 0.6792
Epoch 4 -- Loss: 0.6751
Epoch 5 -- Loss: 0.6718
Epoch 6 -- Loss: 0.6635
Epoch 7 -- Loss: 0.6563
Epoch 8 -- Loss: 0.6529
Epoch 9 -- Loss: 0.6475
Epoch 10 -- Loss: 0.6405
Epoch 11 -- Loss: 0.6371
Epoch 12 -- Loss: 0.6309
Epoch 13 -- Loss: 0.6245
Epoch 14 -- Loss: 0.6187
Epoch 15 -- Loss: 0.6145
Epoch 16 -- Loss: 0.608
Epoch 17 -- Loss: 0.6043
Epoch 18 -- Loss: 0.5996
Epoch 19 -- Loss: 0.5916
Epoch 20 -- Loss: 0.5868
Epoch 21 -- Loss: 0.5799
Epoch 22 -- Loss: 0.5757
Epoch 23 -- Loss: 0.5714
Epoch 24 -- Loss: 0.5631
Epoch 25 -- Loss: 0.5595
Epoch 26 -- Loss: 0.5545
Epoch 27 -- Loss: 0.5459
Epoch 28 -- Loss: 0.5414
Epoch 29 -- Loss: 0.5346
Epoch 30 -- Loss: 0.5318

Threshold = 0.5072

Evaluation Metrics for realAWSCloudwatch/ec2_network_in_257a54.csv
TP = 41 | FP = 101 | FN = 362
Precision: 28.87%
Recall:    10.17%
F1 Score:  15.05%

Processing: realAWSCloudwatch/ec2_network_in_5abac7.csv
Epoch 1 -- Loss: 0.6922
Epoch 2 -- Loss: 0.6899
Epoch 3 -- Loss: 0.689
Epoch 4 -- Loss: 0.6867
Epoch 5 -- Loss: 0.685
Epoch 6 -- Loss: 0.6834
Epoch 7 -- Loss: 0.6818
Epoch 8 -- Loss: 0.6798
Epoch 9 -- Loss: 0.6774
Epoch 10 -- Loss: 0.6766
Epoch 11 -- Loss: 0.6751
Epoch 12 -- Loss: 0.6728
Epoch 13 -- Loss: 0.6702
Epoch 14 -- Loss: 0.6692
Epoch 15 -- Loss: 0.6672
Epoch 16 -- Loss: 0.6662
Epoch 17 -- Loss: 0.6626
Epoch 18 -- Loss: 0.6613
Epoch 19 -- Loss: 0.6596
Epoch 20 -- Loss: 0.6573
Epoch 21 -- Loss: 0.6556
Epoch 22 -- Loss: 0.6539
Epoch 23 -- Loss: 0.6519
Epoch 24 -- Loss: 0.6493
Epoch 25 -- Loss: 0.648
Epoch 26 -- Loss: 0.6461
Epoch 27 -- Loss: 0.6439
Epoch 28 -- Loss: 0.6416
Epoch 29 -- Loss: 0.6403
Epoch 30 -- Loss: 0.6385

Threshold = 0.3805

Evaluation Metrics for realAWSCloudwatch/ec2_network_in_5abac7.csv
TP = 85 | FP = 296 | FN = 389
Precision: 22.31%
Recall:    17.93%
F1 Score:  19.88%

Processing: realAWSCloudwatch/elb_request_count_8c0756.csv
Epoch 1 -- Loss: 0.6922
Epoch 2 -- Loss: 0.6861
Epoch 3 -- Loss: 0.6855
Epoch 4 -- Loss: 0.6807
Epoch 5 -- Loss: 0.6765
Epoch 6 -- Loss: 0.675
Epoch 7 -- Loss: 0.6689
Epoch 8 -- Loss: 0.667
Epoch 9 -- Loss: 0.6626
Epoch 10 -- Loss: 0.6605
Epoch 11 -- Loss: 0.655
Epoch 12 -- Loss: 0.6513
Epoch 13 -- Loss: 0.648
Epoch 14 -- Loss: 0.6442
Epoch 15 -- Loss: 0.6403
Epoch 16 -- Loss: 0.6376
Epoch 17 -- Loss: 0.633
Epoch 18 -- Loss: 0.6296
Epoch 19 -- Loss: 0.6251
Epoch 20 -- Loss: 0.623
Epoch 21 -- Loss: 0.6196
Epoch 22 -- Loss: 0.615
Epoch 23 -- Loss: 0.6123
Epoch 24 -- Loss: 0.6074
Epoch 25 -- Loss: 0.6031
Epoch 26 -- Loss: 0.6009
Epoch 27 -- Loss: 0.5973
Epoch 28 -- Loss: 0.5919
Epoch 29 -- Loss: 0.5881
Epoch 30 -- Loss: 0.5839

Threshold = 0.3274

Evaluation Metrics for realAWSCloudwatch/elb_request_count_8c0756.csv
TP = 140 | FP = 1368 | FN = 262
Precision: 9.28%
Recall:    34.83%
F1 Score:  14.66%

Processing: realAWSCloudwatch/grok_asg_anomaly.csv
Epoch 1 -- Loss: 0.6926
Epoch 2 -- Loss: 0.6908
Epoch 3 -- Loss: 0.6879
Epoch 4 -- Loss: 0.6872
Epoch 5 -- Loss: 0.6848
Epoch 6 -- Loss: 0.6834
Epoch 7 -- Loss: 0.6809
Epoch 8 -- Loss: 0.68
Epoch 9 -- Loss: 0.6775
Epoch 10 -- Loss: 0.6762
Epoch 11 -- Loss: 0.6725
Epoch 12 -- Loss: 0.6711
Epoch 13 -- Loss: 0.6678
Epoch 14 -- Loss: 0.6669
Epoch 15 -- Loss: 0.6646
Epoch 16 -- Loss: 0.6622
Epoch 17 -- Loss: 0.6617
Epoch 18 -- Loss: 0.6595
Epoch 19 -- Loss: 0.6566
Epoch 20 -- Loss: 0.6562
Epoch 21 -- Loss: 0.6522
Epoch 22 -- Loss: 0.6506
Epoch 23 -- Loss: 0.6477
Epoch 24 -- Loss: 0.6455
Epoch 25 -- Loss: 0.6456
Epoch 26 -- Loss: 0.6414
Epoch 27 -- Loss: 0.6416
Epoch 28 -- Loss: 0.6388
Epoch 29 -- Loss: 0.6381
Epoch 30 -- Loss: 0.6341

Threshold = 0.2376

Evaluation Metrics for realAWSCloudwatch/grok_asg_anomaly.csv
TP = 300 | FP = 2521 | FN = 165
Precision: 10.63%
Recall:    64.52%
F1 Score:  18.26%

Processing: realAWSCloudwatch/iio_us-east-1_i-a2eb1cd9_NetworkIn.csv
Epoch 1 -- Loss: 0.6875
Epoch 2 -- Loss: 0.6835
Epoch 3 -- Loss: 0.6746
Epoch 4 -- Loss: 0.6668
Epoch 5 -- Loss: 0.6538
Epoch 6 -- Loss: 0.6544
Epoch 7 -- Loss: 0.6432
Epoch 8 -- Loss: 0.6414
Epoch 9 -- Loss: 0.63
Epoch 10 -- Loss: 0.6242
Epoch 11 -- Loss: 0.6163
Epoch 12 -- Loss: 0.612
Epoch 13 -- Loss: 0.606
Epoch 14 -- Loss: 0.5984
Epoch 15 -- Loss: 0.594
Epoch 16 -- Loss: 0.5862
Epoch 17 -- Loss: 0.5798
Epoch 18 -- Loss: 0.5737
Epoch 19 -- Loss: 0.5705
Epoch 20 -- Loss: 0.5629
Epoch 21 -- Loss: 0.5537
Epoch 22 -- Loss: 0.5512
Epoch 23 -- Loss: 0.5449
Epoch 24 -- Loss: 0.5406
Epoch 25 -- Loss: 0.5343
Epoch 26 -- Loss: 0.5293
Epoch 27 -- Loss: 0.5203
Epoch 28 -- Loss: 0.5209
Epoch 29 -- Loss: 0.5115
Epoch 30 -- Loss: 0.5063

Threshold = 1.0869

Evaluation Metrics for realAWSCloudwatch/iio_us-east-1_i-a2eb1cd9_NetworkIn.csv
TP = 0 | FP = 0 | FN = 126
Precision: 0.0%
Recall:    0.0%
F1 Score:  0.0%

Processing: realAWSCloudwatch/rds_cpu_utilization_cc0c53.csv
Epoch 1 -- Loss: 0.7
Epoch 2 -- Loss: 0.6965
Epoch 3 -- Loss: 0.6921
Epoch 4 -- Loss: 0.6876
Epoch 5 -- Loss: 0.6839
Epoch 6 -- Loss: 0.6818
Epoch 7 -- Loss: 0.6785
Epoch 8 -- Loss: 0.6724
Epoch 9 -- Loss: 0.6703
Epoch 10 -- Loss: 0.6676
Epoch 11 -- Loss: 0.664
Epoch 12 -- Loss: 0.6615
Epoch 13 -- Loss: 0.6578
Epoch 14 -- Loss: 0.6525
Epoch 15 -- Loss: 0.6491
Epoch 16 -- Loss: 0.6482
Epoch 17 -- Loss: 0.6429
Epoch 18 -- Loss: 0.6402
Epoch 19 -- Loss: 0.6356
Epoch 20 -- Loss: 0.6314
Epoch 21 -- Loss: 0.6292
Epoch 22 -- Loss: 0.622
Epoch 23 -- Loss: 0.6223
Epoch 24 -- Loss: 0.6188
Epoch 25 -- Loss: 0.6152
Epoch 26 -- Loss: 0.61
Epoch 27 -- Loss: 0.6074
Epoch 28 -- Loss: 0.6027
Epoch 29 -- Loss: 0.5986
Epoch 30 -- Loss: 0.5925

Threshold = 0.3683

Evaluation Metrics for realAWSCloudwatch/rds_cpu_utilization_cc0c53.csv
TP = 312 | FP = 862 | FN = 90
Precision: 26.58%
Recall:    77.61%
F1 Score:  39.59%

Processing: realAWSCloudwatch/rds_cpu_utilization_e47b3b.csv
Epoch 1 -- Loss: 0.693
Epoch 2 -- Loss: 0.6888
Epoch 3 -- Loss: 0.6856
Epoch 4 -- Loss: 0.6821
Epoch 5 -- Loss: 0.6759
Epoch 6 -- Loss: 0.673
Epoch 7 -- Loss: 0.6678
Epoch 8 -- Loss: 0.6641
Epoch 9 -- Loss: 0.6604
Epoch 10 -- Loss: 0.6586
Epoch 11 -- Loss: 0.6515
Epoch 12 -- Loss: 0.6477
Epoch 13 -- Loss: 0.6434
Epoch 14 -- Loss: 0.6384
Epoch 15 -- Loss: 0.6336
Epoch 16 -- Loss: 0.63
Epoch 17 -- Loss: 0.6268
Epoch 18 -- Loss: 0.6218
Epoch 19 -- Loss: 0.6197
Epoch 20 -- Loss: 0.6169
Epoch 21 -- Loss: 0.6119
Epoch 22 -- Loss: 0.6044
Epoch 23 -- Loss: 0.6016
Epoch 24 -- Loss: 0.5971
Epoch 25 -- Loss: 0.5913
Epoch 26 -- Loss: 0.5877
Epoch 27 -- Loss: 0.5832
Epoch 28 -- Loss: 0.5799
Epoch 29 -- Loss: 0.5752
Epoch 30 -- Loss: 0.5712

Threshold = 0.5783

Evaluation Metrics for realAWSCloudwatch/rds_cpu_utilization_e47b3b.csv
TP = 306 | FP = 2830 | FN = 96
Precision: 9.76%
Recall:    76.12%
F1 Score:  17.3%

Processing: realAdExchange/exchange-2_cpc_results.csv
Epoch 1 -- Loss: 0.6829
Epoch 2 -- Loss: 0.6735
Epoch 3 -- Loss: 0.6674
Epoch 4 -- Loss: 0.6613
Epoch 5 -- Loss: 0.655
Epoch 6 -- Loss: 0.6473
Epoch 7 -- Loss: 0.6371
Epoch 8 -- Loss: 0.6359
Epoch 9 -- Loss: 0.6271
Epoch 10 -- Loss: 0.6179
Epoch 11 -- Loss: 0.6075
Epoch 12 -- Loss: 0.606
Epoch 13 -- Loss: 0.5968
Epoch 14 -- Loss: 0.5954
Epoch 15 -- Loss: 0.5851
Epoch 16 -- Loss: 0.5758
Epoch 17 -- Loss: 0.5698
Epoch 18 -- Loss: 0.5609
Epoch 19 -- Loss: 0.5545
Epoch 20 -- Loss: 0.5485
Epoch 21 -- Loss: 0.5375
Epoch 22 -- Loss: 0.5344
Epoch 23 -- Loss: 0.5227
Epoch 24 -- Loss: 0.5179
Epoch 25 -- Loss: 0.5095
Epoch 26 -- Loss: 0.4987
Epoch 27 -- Loss: 0.4918
Epoch 28 -- Loss: 0.4834
Epoch 29 -- Loss: 0.4791
Epoch 30 -- Loss: 0.472

Threshold = 0.5774

Evaluation Metrics for realAdExchange/exchange-2_cpc_results.csv
TP = 11 | FP = 25 | FN = 285
Precision: 30.56%
Recall:    3.72%
F1 Score:  6.63%

Processing: realAdExchange/exchange-2_cpm_results.csv
Epoch 1 -- Loss: 0.6934
Epoch 2 -- Loss: 0.6872
Epoch 3 -- Loss: 0.6812
Epoch 4 -- Loss: 0.6781
Epoch 5 -- Loss: 0.6715
Epoch 6 -- Loss: 0.6712
Epoch 7 -- Loss: 0.6676
Epoch 8 -- Loss: 0.6628
Epoch 9 -- Loss: 0.6615
Epoch 10 -- Loss: 0.6535
Epoch 11 -- Loss: 0.6531
Epoch 12 -- Loss: 0.6497
Epoch 13 -- Loss: 0.6416
Epoch 14 -- Loss: 0.6414
Epoch 15 -- Loss: 0.6349
Epoch 16 -- Loss: 0.6312
Epoch 17 -- Loss: 0.6237
Epoch 18 -- Loss: 0.6222
Epoch 19 -- Loss: 0.6182
Epoch 20 -- Loss: 0.613
Epoch 21 -- Loss: 0.6078
Epoch 22 -- Loss: 0.6068
Epoch 23 -- Loss: 0.6027
Epoch 24 -- Loss: 0.5914
Epoch 25 -- Loss: 0.589

Threshold = 1.2787

Evaluation Metrics for realAdExchange/exchange-2_cpm_results.csv
TP = 0 | FP = 0 | FN = 265
Precision: 0.0%
Recall:    0.0%
F1 Score:  0.0%

Processing: realAdExchange/exchange-3_cpc_results.csv
Epoch 1 -- Loss: 0.6892
Epoch 2 -- Loss: 0.6851
Epoch 3 -- Loss: 0.6762
Epoch 4 -- Loss: 0.6783
Epoch 5 -- Loss: 0.67
Epoch 6 -- Loss: 0.6639
Epoch 7 -- Loss: 0.6606
Epoch 8 -- Loss: 0.6529
Epoch 9 -- Loss: 0.6458
Epoch 10 -- Loss: 0.6416
Epoch 11 -- Loss: 0.6331
Epoch 12 -- Loss: 0.631
Epoch 13 -- Loss: 0.6267
Epoch 14 -- Loss: 0.6197
Epoch 15 -- Loss: 0.6175
Epoch 16 -- Loss: 0.6131
Epoch 17 -- Loss: 0.6057
Epoch 18 -- Loss: 0.5977
Epoch 19 -- Loss: 0.596
Epoch 20 -- Loss: 0.5913
Epoch 21 -- Loss: 0.5838
Epoch 22 -- Loss: 0.5809
Epoch 23 -- Loss: 0.5732
Epoch 24 -- Loss: 0.5726
Epoch 25 -- Loss: 0.5604
Epoch 26 -- Loss: 0.56
Epoch 27 -- Loss: 0.5567
Epoch 28 -- Loss: 0.5497
Epoch 29 -- Loss: 0.5427
Epoch 30 -- Loss: 0.542

Threshold = 0.6417

Evaluation Metrics for realAdExchange/exchange-3_cpc_results.csv
TP = 48 | FP = 6 | FN = 188
Precision: 88.89%
Recall:    20.34%
F1 Score:  33.1%

Processing: realAdExchange/exchange-3_cpm_results.csv
Epoch 1 -- Loss: 0.6867
Epoch 2 -- Loss: 0.681
Epoch 3 -- Loss: 0.6791
Epoch 4 -- Loss: 0.6712
Epoch 5 -- Loss: 0.6706
Epoch 6 -- Loss: 0.6621
Epoch 7 -- Loss: 0.6532
Epoch 8 -- Loss: 0.6465
Epoch 9 -- Loss: 0.642
Epoch 10 -- Loss: 0.6364
Epoch 11 -- Loss: 0.6324
Epoch 12 -- Loss: 0.6278
Epoch 13 -- Loss: 0.6221
Epoch 14 -- Loss: 0.614
Epoch 15 -- Loss: 0.6121
Epoch 16 -- Loss: 0.6061
Epoch 17 -- Loss: 0.5966
Epoch 18 -- Loss: 0.5972
Epoch 19 -- Loss: 0.591
Epoch 20 -- Loss: 0.5841
Epoch 21 -- Loss: 0.5801
Epoch 22 -- Loss: 0.577
Epoch 23 -- Loss: 0.5724
Epoch 24 -- Loss: 0.5637
Epoch 25 -- Loss: 0.5606
Epoch 26 -- Loss: 0.5544
Epoch 27 -- Loss: 0.5457
Epoch 28 -- Loss: 0.5446
Epoch 29 -- Loss: 0.5411
Epoch 30 -- Loss: 0.5344

Threshold = 0.7581

Evaluation Metrics for realAdExchange/exchange-3_cpm_results.csv
TP = 5 | FP = 69 | FN = 300
Precision: 6.76%
Recall:    1.64%
F1 Score:  2.64%

Processing: realAdExchange/exchange-4_cpc_results.csv
Epoch 1 -- Loss: 0.6965
Epoch 2 -- Loss: 0.6908
Epoch 3 -- Loss: 0.6854
Epoch 4 -- Loss: 0.6784
Epoch 5 -- Loss: 0.6803
Epoch 6 -- Loss: 0.6757
Epoch 7 -- Loss: 0.6681
Epoch 8 -- Loss: 0.6673
Epoch 9 -- Loss: 0.6604
Epoch 10 -- Loss: 0.6588
Epoch 11 -- Loss: 0.6506
Epoch 12 -- Loss: 0.6472
Epoch 13 -- Loss: 0.6451
Epoch 14 -- Loss: 0.6397
Epoch 15 -- Loss: 0.6364
Epoch 16 -- Loss: 0.6352
Epoch 17 -- Loss: 0.6299
Epoch 18 -- Loss: 0.6244
Epoch 19 -- Loss: 0.6241
Epoch 20 -- Loss: 0.6176
Epoch 21 -- Loss: 0.6148
Epoch 22 -- Loss: 0.6081
Epoch 23 -- Loss: 0.6056
Epoch 24 -- Loss: 0.6031
Epoch 25 -- Loss: 0.6024
Epoch 26 -- Loss: 0.595
Epoch 27 -- Loss: 0.593
Epoch 28 -- Loss: 0.5897
Epoch 29 -- Loss: 0.5861
Epoch 30 -- Loss: 0.5817

Threshold = 0.769

Evaluation Metrics for realAdExchange/exchange-4_cpc_results.csv
TP = 195 | FP = 545 | FN = 137
Precision: 26.35%
Recall:    58.73%
F1 Score:  36.38%

Processing: realAdExchange/exchange-4_cpm_results.csv
Epoch 1 -- Loss: 0.6917
Epoch 2 -- Loss: 0.6888
Epoch 3 -- Loss: 0.6832
Epoch 4 -- Loss: 0.678
Epoch 5 -- Loss: 0.6726
Epoch 6 -- Loss: 0.6695
Epoch 7 -- Loss: 0.6658
Epoch 8 -- Loss: 0.657
Epoch 9 -- Loss: 0.6547
Epoch 10 -- Loss: 0.6482
Epoch 11 -- Loss: 0.6497
Epoch 12 -- Loss: 0.6406
Epoch 13 -- Loss: 0.6354
Epoch 14 -- Loss: 0.6332
Epoch 15 -- Loss: 0.6266
Epoch 16 -- Loss: 0.6272
Epoch 17 -- Loss: 0.6196
Epoch 18 -- Loss: 0.6157
Epoch 19 -- Loss: 0.6092
Epoch 20 -- Loss: 0.6061
Epoch 21 -- Loss: 0.6016
Epoch 22 -- Loss: 0.5946
Epoch 23 -- Loss: 0.5912
Epoch 24 -- Loss: 0.5911
Epoch 25 -- Loss: 0.5859
Epoch 26 -- Loss: 0.5809
Epoch 27 -- Loss: 0.5761
Epoch 28 -- Loss: 0.5701
Epoch 29 -- Loss: 0.5637
Epoch 30 -- Loss: 0.5624

Threshold = 0.3722

Evaluation Metrics for realAdExchange/exchange-4_cpm_results.csv
TP = 106 | FP = 453 | FN = 140
Precision: 18.96%
Recall:    43.09%
F1 Score:  26.34%

Processing: realKnownCause/ambient_temperature_system_failure.csv
Epoch 1 -- Loss: 0.701
Epoch 2 -- Loss: 0.6986
Epoch 3 -- Loss: 0.6954
Epoch 4 -- Loss: 0.6929
Epoch 5 -- Loss: 0.6897
Epoch 6 -- Loss: 0.6857
Epoch 7 -- Loss: 0.6852
Epoch 8 -- Loss: 0.6836
Epoch 9 -- Loss: 0.6813
Epoch 10 -- Loss: 0.6788
Epoch 11 -- Loss: 0.6754
Epoch 12 -- Loss: 0.6749
Epoch 13 -- Loss: 0.6742
Epoch 14 -- Loss: 0.6727
Epoch 15 -- Loss: 0.6701
Epoch 16 -- Loss: 0.6712
Epoch 17 -- Loss: 0.6694
Epoch 18 -- Loss: 0.668
Epoch 19 -- Loss: 0.6662
Epoch 20 -- Loss: 0.6657
Epoch 21 -- Loss: 0.6639
Epoch 22 -- Loss: 0.6625
Epoch 23 -- Loss: 0.6623
Epoch 24 -- Loss: 0.6617
Epoch 25 -- Loss: 0.6605
Epoch 26 -- Loss: 0.6604
Epoch 27 -- Loss: 0.6587
Epoch 28 -- Loss: 0.6589
Epoch 29 -- Loss: 0.6585
Epoch 30 -- Loss: 0.658

Threshold = 1.1255

Evaluation Metrics for realKnownCause/ambient_temperature_system_failure.csv
TP = 59 | FP = 430 | FN = 1475
Precision: 12.07%
Recall:    3.85%
F1 Score:  5.83%

Processing: realKnownCause/cpu_utilization_asg_misconfiguration.csv
Epoch 1 -- Loss: 0.6961
Epoch 2 -- Loss: 0.6914
Epoch 3 -- Loss: 0.6867
Epoch 4 -- Loss: 0.6817
Epoch 5 -- Loss: 0.6784
Epoch 6 -- Loss: 0.674
Epoch 7 -- Loss: 0.6697
Epoch 8 -- Loss: 0.6648
Epoch 9 -- Loss: 0.6606
Epoch 10 -- Loss: 0.6554
Epoch 11 -- Loss: 0.6519
Epoch 12 -- Loss: 0.6466
Epoch 13 -- Loss: 0.6435
Epoch 14 -- Loss: 0.6382
Epoch 15 -- Loss: 0.6352
Epoch 16 -- Loss: 0.6314
Epoch 17 -- Loss: 0.626
Epoch 18 -- Loss: 0.6233
Epoch 19 -- Loss: 0.6181
Epoch 20 -- Loss: 0.6144
Epoch 21 -- Loss: 0.6091
Epoch 22 -- Loss: 0.6057
Epoch 23 -- Loss: 0.6013
Epoch 24 -- Loss: 0.5976
Epoch 25 -- Loss: 0.593
Epoch 26 -- Loss: 0.5891
Epoch 27 -- Loss: 0.5856
Epoch 28 -- Loss: 0.5817
Epoch 29 -- Loss: 0.5764
Epoch 30 -- Loss: 0.5725

Threshold = 0.9738

Evaluation Metrics for realKnownCause/cpu_utilization_asg_misconfiguration.csv
TP = 1201 | FP = 529 | FN = 1796
Precision: 69.42%
Recall:    40.07%
F1 Score:  50.81%

Processing: realKnownCause/ec2_request_latency_system_failure.csv
Epoch 1 -- Loss: 0.688
Epoch 2 -- Loss: 0.6826
Epoch 3 -- Loss: 0.6774
Epoch 4 -- Loss: 0.6748
Epoch 5 -- Loss: 0.6704
Epoch 6 -- Loss: 0.6682
Epoch 7 -- Loss: 0.6646
Epoch 8 -- Loss: 0.6594
Epoch 9 -- Loss: 0.6551
Epoch 10 -- Loss: 0.6516
Epoch 11 -- Loss: 0.6492
Epoch 12 -- Loss: 0.644
Epoch 13 -- Loss: 0.6403
Epoch 14 -- Loss: 0.6382
Epoch 15 -- Loss: 0.6332
Epoch 16 -- Loss: 0.6273
Epoch 17 -- Loss: 0.6242
Epoch 18 -- Loss: 0.6186
Epoch 19 -- Loss: 0.6158
Epoch 20 -- Loss: 0.6104
Epoch 21 -- Loss: 0.6085
Epoch 22 -- Loss: 0.6035
Epoch 23 -- Loss: 0.5994
Epoch 24 -- Loss: 0.5955
Epoch 25 -- Loss: 0.5899
Epoch 26 -- Loss: 0.5877
Epoch 27 -- Loss: 0.5832
Epoch 28 -- Loss: 0.578
Epoch 29 -- Loss: 0.5752
Epoch 30 -- Loss: 0.5685

Threshold = 0.4519

Evaluation Metrics for realKnownCause/ec2_request_latency_system_failure.csv
TP = 106 | FP = 935 | FN = 239
Precision: 10.18%
Recall:    30.72%
F1 Score:  15.3%

Processing: realKnownCause/machine_temperature_system_failure.csv
Epoch 1 -- Loss: 0.6868
Epoch 2 -- Loss: 0.682
Epoch 3 -- Loss: 0.6772
Epoch 4 -- Loss: 0.6724
Epoch 5 -- Loss: 0.6685
Epoch 6 -- Loss: 0.6639
Epoch 7 -- Loss: 0.6595
Epoch 8 -- Loss: 0.6562
Epoch 9 -- Loss: 0.6513
Epoch 10 -- Loss: 0.6471
Epoch 11 -- Loss: 0.6433
Epoch 12 -- Loss: 0.6391
Epoch 13 -- Loss: 0.6358
Epoch 14 -- Loss: 0.6322
Epoch 15 -- Loss: 0.6281
Epoch 16 -- Loss: 0.6247
Epoch 17 -- Loss: 0.6207
Epoch 18 -- Loss: 0.6174
Epoch 19 -- Loss: 0.6138
Epoch 20 -- Loss: 0.6099
Epoch 21 -- Loss: 0.6068
Epoch 22 -- Loss: 0.6033
Epoch 23 -- Loss: 0.5998
Epoch 24 -- Loss: 0.5963
Epoch 25 -- Loss: 0.5923
Epoch 26 -- Loss: 0.589
Epoch 27 -- Loss: 0.5861
Epoch 28 -- Loss: 0.5818
Epoch 29 -- Loss: 0.5785
Epoch 30 -- Loss: 0.5753

Threshold = 1.7361

Evaluation Metrics for realKnownCause/machine_temperature_system_failure.csv
TP = 0 | FP = 431 | FN = 2268
Precision: 0.0%
Recall:    0.0%
F1 Score:  0.0%

Processing: realKnownCause/nyc_taxi.csv
Epoch 1 -- Loss: 0.6926
Epoch 2 -- Loss: 0.6896
Epoch 3 -- Loss: 0.6871
Epoch 4 -- Loss: 0.6845
Epoch 5 -- Loss: 0.681
Epoch 6 -- Loss: 0.6781
Epoch 7 -- Loss: 0.6767
Epoch 8 -- Loss: 0.6727
Epoch 9 -- Loss: 0.6703
Epoch 10 -- Loss: 0.6672
Epoch 11 -- Loss: 0.6644
Epoch 12 -- Loss: 0.6616
Epoch 13 -- Loss: 0.6593
Epoch 14 -- Loss: 0.6571
Epoch 15 -- Loss: 0.6547
Epoch 16 -- Loss: 0.6512
Epoch 17 -- Loss: 0.6486
Epoch 18 -- Loss: 0.6462
Epoch 19 -- Loss: 0.6446
Epoch 20 -- Loss: 0.6411
Epoch 21 -- Loss: 0.6377
Epoch 22 -- Loss: 0.6356
Epoch 23 -- Loss: 0.6321
Epoch 24 -- Loss: 0.6296
Epoch 25 -- Loss: 0.6289
Epoch 26 -- Loss: 0.6243
Epoch 27 -- Loss: 0.621
Epoch 28 -- Loss: 0.6189
Epoch 29 -- Loss: 0.6161
Epoch 30 -- Loss: 0.6126

Threshold = 1.0236

Evaluation Metrics for realKnownCause/nyc_taxi.csv
TP = 0 | FP = 0 | FN = 2242
Precision: 0.0%
Recall:    0.0%
F1 Score:  0.0%

Processing: realKnownCause/rogue_agent_key_hold.csv
Epoch 1 -- Loss: 0.693
Epoch 2 -- Loss: 0.6919
Epoch 3 -- Loss: 0.691
Epoch 4 -- Loss: 0.69
Epoch 5 -- Loss: 0.6875
Epoch 6 -- Loss: 0.686
Epoch 7 -- Loss: 0.6847
Epoch 8 -- Loss: 0.6829
Epoch 9 -- Loss: 0.6841
Epoch 10 -- Loss: 0.6838
Epoch 11 -- Loss: 0.6804
Epoch 12 -- Loss: 0.6769
Epoch 13 -- Loss: 0.6781
Epoch 14 -- Loss: 0.6756
Epoch 15 -- Loss: 0.6724
Epoch 16 -- Loss: 0.6722
Epoch 17 -- Loss: 0.67
Epoch 18 -- Loss: 0.6688
Epoch 19 -- Loss: 0.6669
Epoch 20 -- Loss: 0.6663
Epoch 21 -- Loss: 0.6651
Epoch 22 -- Loss: 0.6621
Epoch 23 -- Loss: 0.6622
Epoch 24 -- Loss: 0.659
Epoch 25 -- Loss: 0.6593
Epoch 26 -- Loss: 0.6568
Epoch 27 -- Loss: 0.655
Epoch 28 -- Loss: 0.6554
Epoch 29 -- Loss: 0.6518
Epoch 30 -- Loss: 0.6509

Threshold = 0.1278

Evaluation Metrics for realKnownCause/rogue_agent_key_hold.csv
TP = 154 | FP = 861 | FN = 36
Precision: 15.17%
Recall:    81.05%
F1 Score:  25.56%

Processing: realKnownCause/rogue_agent_key_updown.csv
Epoch 1 -- Loss: 0.699
Epoch 2 -- Loss: 0.6934
Epoch 3 -- Loss: 0.6901
Epoch 4 -- Loss: 0.6858
Epoch 5 -- Loss: 0.6816
Epoch 6 -- Loss: 0.6776
Epoch 7 -- Loss: 0.673
Epoch 8 -- Loss: 0.6689
Epoch 9 -- Loss: 0.6668
Epoch 10 -- Loss: 0.6619
Epoch 11 -- Loss: 0.6585
Epoch 12 -- Loss: 0.6535
Epoch 13 -- Loss: 0.6504
Epoch 14 -- Loss: 0.6466
Epoch 15 -- Loss: 0.6403
Epoch 16 -- Loss: 0.6371
Epoch 17 -- Loss: 0.6336
Epoch 18 -- Loss: 0.6277
Epoch 19 -- Loss: 0.6245
Epoch 20 -- Loss: 0.6199
Epoch 21 -- Loss: 0.6155
Epoch 22 -- Loss: 0.6117
Epoch 23 -- Loss: 0.6066
Epoch 24 -- Loss: 0.6015
Epoch 25 -- Loss: 0.598
Epoch 26 -- Loss: 0.5933
Epoch 27 -- Loss: 0.5855
Epoch 28 -- Loss: 0.5826
Epoch 29 -- Loss: 0.5777
Epoch 30 -- Loss: 0.5734

Threshold = 0.4176

Evaluation Metrics for realKnownCause/rogue_agent_key_updown.csv
TP = 11 | FP = 88 | FN = 519
Precision: 11.11%
Recall:    2.08%
F1 Score:  3.5%

Processing: realTraffic/TravelTime_387.csv
Epoch 1 -- Loss: 0.6978
Epoch 2 -- Loss: 0.6948
Epoch 3 -- Loss: 0.6872
Epoch 4 -- Loss: 0.677
Epoch 5 -- Loss: 0.6706
Epoch 6 -- Loss: 0.6611
Epoch 7 -- Loss: 0.6558
Epoch 8 -- Loss: 0.647
Epoch 9 -- Loss: 0.6414
Epoch 10 -- Loss: 0.6328
Epoch 11 -- Loss: 0.6282
Epoch 12 -- Loss: 0.6208
Epoch 13 -- Loss: 0.617
Epoch 14 -- Loss: 0.6092
Epoch 15 -- Loss: 0.6019
Epoch 16 -- Loss: 0.5964
Epoch 17 -- Loss: 0.5912
Epoch 18 -- Loss: 0.5853
Epoch 19 -- Loss: 0.5789
Epoch 20 -- Loss: 0.5718
Epoch 21 -- Loss: 0.566
Epoch 22 -- Loss: 0.5619
Epoch 23 -- Loss: 0.5559
Epoch 24 -- Loss: 0.5506
Epoch 25 -- Loss: 0.5435
Epoch 26 -- Loss: 0.5406
Epoch 27 -- Loss: 0.5334
Epoch 28 -- Loss: 0.5278
Epoch 29 -- Loss: 0.5238
Epoch 30 -- Loss: 0.5194

Threshold = 0.7385

Evaluation Metrics for realTraffic/TravelTime_387.csv
TP = 99 | FP = 682 | FN = 291
Precision: 12.68%
Recall:    25.38%
F1 Score:  16.91%

Processing: realTraffic/TravelTime_451.csv
Epoch 1 -- Loss: 0.6935
Epoch 2 -- Loss: 0.6828
Epoch 3 -- Loss: 0.6721
Epoch 4 -- Loss: 0.6709
Epoch 5 -- Loss: 0.6588
Epoch 6 -- Loss: 0.6549
Epoch 7 -- Loss: 0.6468
Epoch 8 -- Loss: 0.6407
Epoch 9 -- Loss: 0.6344
Epoch 10 -- Loss: 0.6284
Epoch 11 -- Loss: 0.622
Epoch 12 -- Loss: 0.613
Epoch 13 -- Loss: 0.6095
Epoch 14 -- Loss: 0.6025
Epoch 15 -- Loss: 0.5935
Epoch 16 -- Loss: 0.5832
Epoch 17 -- Loss: 0.5789
Epoch 18 -- Loss: 0.5704
Epoch 19 -- Loss: 0.5668
Epoch 20 -- Loss: 0.5583
Epoch 21 -- Loss: 0.5545
Epoch 22 -- Loss: 0.5451
Epoch 23 -- Loss: 0.5372
Epoch 24 -- Loss: 0.5265
Epoch 25 -- Loss: 0.524
Epoch 26 -- Loss: 0.5148
Epoch 27 -- Loss: 0.5092
Epoch 28 -- Loss: 0.5023
Epoch 29 -- Loss: 0.4946
Epoch 30 -- Loss: 0.4882

Threshold = 0.7863

Evaluation Metrics for realTraffic/TravelTime_451.csv
TP = 78 | FP = 307 | FN = 344
Precision: 20.26%
Recall:    18.48%
F1 Score:  19.33%

Processing: realTraffic/occupancy_6005.csv
Epoch 1 -- Loss: 0.6968
Epoch 2 -- Loss: 0.6931
Epoch 3 -- Loss: 0.6905
Epoch 4 -- Loss: 0.6865
Epoch 5 -- Loss: 0.6776
Epoch 6 -- Loss: 0.6774
Epoch 7 -- Loss: 0.6702
Epoch 8 -- Loss: 0.6617
Epoch 9 -- Loss: 0.6632
Epoch 10 -- Loss: 0.6567
Epoch 11 -- Loss: 0.652
Epoch 12 -- Loss: 0.6475
Epoch 13 -- Loss: 0.641
Epoch 14 -- Loss: 0.6395
Epoch 15 -- Loss: 0.633
Epoch 16 -- Loss: 0.6301
Epoch 17 -- Loss: 0.6288
Epoch 18 -- Loss: 0.6225
Epoch 19 -- Loss: 0.6184
Epoch 20 -- Loss: 0.611

Threshold = 0.2162

Evaluation Metrics for realTraffic/occupancy_6005.csv
TP = 113 | FP = 550 | FN = 126
Precision: 17.04%
Recall:    47.28%
F1 Score:  25.06%

Processing: realTraffic/occupancy_t4013.csv
Epoch 1 -- Loss: 0.6807
Epoch 2 -- Loss: 0.6722
Epoch 3 -- Loss: 0.6641
Epoch 4 -- Loss: 0.661
Epoch 5 -- Loss: 0.6529
Epoch 6 -- Loss: 0.6452
Epoch 7 -- Loss: 0.6377
Epoch 8 -- Loss: 0.6348
Epoch 9 -- Loss: 0.6277
Epoch 10 -- Loss: 0.6207
Epoch 11 -- Loss: 0.6135
Epoch 12 -- Loss: 0.6039
Epoch 13 -- Loss: 0.5987
Epoch 14 -- Loss: 0.5946
Epoch 15 -- Loss: 0.5901
Epoch 16 -- Loss: 0.5834
Epoch 17 -- Loss: 0.5766
Epoch 18 -- Loss: 0.5689
Epoch 19 -- Loss: 0.5598
Epoch 20 -- Loss: 0.5527
Epoch 21 -- Loss: 0.5476
Epoch 22 -- Loss: 0.5442
Epoch 23 -- Loss: 0.536
Epoch 24 -- Loss: 0.5282
Epoch 25 -- Loss: 0.5213
Epoch 26 -- Loss: 0.515
Epoch 27 -- Loss: 0.5098
Epoch 28 -- Loss: 0.5034
Epoch 29 -- Loss: 0.4923
Epoch 30 -- Loss: 0.4896

Threshold = 1.4698

Evaluation Metrics for realTraffic/occupancy_t4013.csv
TP = 81 | FP = 229 | FN = 169
Precision: 26.13%
Recall:    32.4%
F1 Score:  28.93%

Processing: realTraffic/speed_6005.csv
Epoch 1 -- Loss: 0.6933
Epoch 2 -- Loss: 0.6921
Epoch 3 -- Loss: 0.6905
Epoch 4 -- Loss: 0.6841
Epoch 5 -- Loss: 0.6864
Epoch 6 -- Loss: 0.6843
Epoch 7 -- Loss: 0.6783
Epoch 8 -- Loss: 0.6783
Epoch 9 -- Loss: 0.6749
Epoch 10 -- Loss: 0.6711
Epoch 11 -- Loss: 0.67
Epoch 12 -- Loss: 0.6706
Epoch 13 -- Loss: 0.6665
Epoch 14 -- Loss: 0.6616
Epoch 15 -- Loss: 0.6601
Epoch 16 -- Loss: 0.657
Epoch 17 -- Loss: 0.6563
Epoch 18 -- Loss: 0.6603
Epoch 19 -- Loss: 0.6528
Epoch 20 -- Loss: 0.6533
Epoch 21 -- Loss: 0.648
Epoch 22 -- Loss: 0.6474
Epoch 23 -- Loss: 0.6417
Epoch 24 -- Loss: 0.6383
Epoch 25 -- Loss: 0.641
Epoch 26 -- Loss: 0.6363
Epoch 27 -- Loss: 0.6331
Epoch 28 -- Loss: 0.6306
Epoch 29 -- Loss: 0.6243
Epoch 30 -- Loss: 0.6242
Epoch 31 -- Loss: 0.6232
Epoch 32 -- Loss: 0.6201
Epoch 33 -- Loss: 0.6192
Epoch 34 -- Loss: 0.6141
Epoch 35 -- Loss: 0.6112
Epoch 36 -- Loss: 0.609
Epoch 37 -- Loss: 0.608
Epoch 38 -- Loss: 0.6052
Epoch 39 -- Loss: 0.6027
Epoch 40 -- Loss: 0.6001

Threshold = 0.2759

Evaluation Metrics for realTraffic/speed_6005.csv
TP = 57 | FP = 244 | FN = 181
Precision: 18.94%
Recall:    23.95%
F1 Score:  21.15%

Processing: realTraffic/speed_7578.csv
Epoch 1 -- Loss: 0.6845
Epoch 2 -- Loss: 0.6787
Epoch 3 -- Loss: 0.6792
Epoch 4 -- Loss: 0.6698
Epoch 5 -- Loss: 0.6694
Epoch 6 -- Loss: 0.6669
Epoch 7 -- Loss: 0.6562
Epoch 8 -- Loss: 0.6545
Epoch 9 -- Loss: 0.6519
Epoch 10 -- Loss: 0.6485
Epoch 11 -- Loss: 0.649
Epoch 12 -- Loss: 0.6443
Epoch 13 -- Loss: 0.6399
Epoch 14 -- Loss: 0.6358
Epoch 15 -- Loss: 0.6371
Epoch 16 -- Loss: 0.6325
Epoch 17 -- Loss: 0.6338
Epoch 18 -- Loss: 0.6199
Epoch 19 -- Loss: 0.6192
Epoch 20 -- Loss: 0.6157
Epoch 21 -- Loss: 0.6109
Epoch 22 -- Loss: 0.6043
Epoch 23 -- Loss: 0.6033
Epoch 24 -- Loss: 0.6037
Epoch 25 -- Loss: 0.5933
Epoch 26 -- Loss: 0.5933
Epoch 27 -- Loss: 0.5955
Epoch 28 -- Loss: 0.5864
Epoch 29 -- Loss: 0.5795
Epoch 30 -- Loss: 0.5836

Threshold = 0.906

Evaluation Metrics for realTraffic/speed_7578.csv
TP = 70 | FP = 153 | FN = 46
Precision: 31.39%
Recall:    60.34%
F1 Score:  41.3%

Processing: realTraffic/speed_t4013.csv
Epoch 1 -- Loss: 0.6982
Epoch 2 -- Loss: 0.6927
Epoch 3 -- Loss: 0.6879
Epoch 4 -- Loss: 0.6795
Epoch 5 -- Loss: 0.675
Epoch 6 -- Loss: 0.6717
Epoch 7 -- Loss: 0.669
Epoch 8 -- Loss: 0.6633
Epoch 9 -- Loss: 0.6612
Epoch 10 -- Loss: 0.6549
Epoch 11 -- Loss: 0.653
Epoch 12 -- Loss: 0.6453
Epoch 13 -- Loss: 0.6426
Epoch 14 -- Loss: 0.638
Epoch 15 -- Loss: 0.6337
Epoch 16 -- Loss: 0.6265
Epoch 17 -- Loss: 0.6253
Epoch 18 -- Loss: 0.6194
Epoch 19 -- Loss: 0.6169
Epoch 20 -- Loss: 0.6113
Epoch 21 -- Loss: 0.6051
Epoch 22 -- Loss: 0.5999
Epoch 23 -- Loss: 0.5972
Epoch 24 -- Loss: 0.5918
Epoch 25 -- Loss: 0.5875
Epoch 26 -- Loss: 0.5836
Epoch 27 -- Loss: 0.5761
Epoch 28 -- Loss: 0.5729
Epoch 29 -- Loss: 0.5675
Epoch 30 -- Loss: 0.5643

Threshold = 0.7481

Evaluation Metrics for realTraffic/speed_t4013.csv
TP = 52 | FP = 605 | FN = 198
Precision: 7.91%
Recall:    20.8%
F1 Score:  11.47%

Processing: realTweets/Twitter_volume_AAPL.csv
Epoch 1 -- Loss: 0.7029
Epoch 2 -- Loss: 0.6982
Epoch 3 -- Loss: 0.6927
Epoch 4 -- Loss: 0.6869
Epoch 5 -- Loss: 0.6817
Epoch 6 -- Loss: 0.6767
Epoch 7 -- Loss: 0.672
Epoch 8 -- Loss: 0.6672
Epoch 9 -- Loss: 0.6624
Epoch 10 -- Loss: 0.6581
Epoch 11 -- Loss: 0.6541
Epoch 12 -- Loss: 0.6496
Epoch 13 -- Loss: 0.6446
Epoch 14 -- Loss: 0.6412
Epoch 15 -- Loss: 0.6378
Epoch 16 -- Loss: 0.6337
Epoch 17 -- Loss: 0.6292
Epoch 18 -- Loss: 0.6255
Epoch 19 -- Loss: 0.622
Epoch 20 -- Loss: 0.6186
Epoch 21 -- Loss: 0.615
Epoch 22 -- Loss: 0.6117
Epoch 23 -- Loss: 0.6083
Epoch 24 -- Loss: 0.6048
Epoch 25 -- Loss: 0.6016
Epoch 26 -- Loss: 0.5983
Epoch 27 -- Loss: 0.5957
Epoch 28 -- Loss: 0.5927
Epoch 29 -- Loss: 0.5894
Epoch 30 -- Loss: 0.5866

Threshold = 0.6038

Evaluation Metrics for realTweets/Twitter_volume_AAPL.csv
TP = 477 | FP = 1561 | FN = 1905
Precision: 23.41%
Recall:    20.03%
F1 Score:  21.58%

Processing: realTweets/Twitter_volume_AMZN.csv
Epoch 1 -- Loss: 0.6972
Epoch 2 -- Loss: 0.6905
Epoch 3 -- Loss: 0.6854
Epoch 4 -- Loss: 0.6787
Epoch 5 -- Loss: 0.6736
Epoch 6 -- Loss: 0.6679
Epoch 7 -- Loss: 0.6648
Epoch 8 -- Loss: 0.6578
Epoch 9 -- Loss: 0.6533
Epoch 10 -- Loss: 0.648
Epoch 11 -- Loss: 0.6432
Epoch 12 -- Loss: 0.6369
Epoch 13 -- Loss: 0.6311
Epoch 14 -- Loss: 0.6256
Epoch 15 -- Loss: 0.6198
Epoch 16 -- Loss: 0.6152
Epoch 17 -- Loss: 0.6089
Epoch 18 -- Loss: 0.6039
Epoch 19 -- Loss: 0.595
Epoch 20 -- Loss: 0.5906
Epoch 21 -- Loss: 0.5843
Epoch 22 -- Loss: 0.5784
Epoch 23 -- Loss: 0.5703
Epoch 24 -- Loss: 0.567
Epoch 25 -- Loss: 0.5577
Epoch 26 -- Loss: 0.5504
Epoch 27 -- Loss: 0.5439
Epoch 28 -- Loss: 0.5378
Epoch 29 -- Loss: 0.533
Epoch 30 -- Loss: 0.5259

Threshold = 1.4681

Evaluation Metrics for realTweets/Twitter_volume_AMZN.csv
TP = 307 | FP = 1189 | FN = 2545
Precision: 20.52%
Recall:    10.76%
F1 Score:  14.12%

Processing: realTweets/Twitter_volume_CRM.csv
Epoch 1 -- Loss: 0.6923
Epoch 2 -- Loss: 0.6855
Epoch 3 -- Loss: 0.6797
Epoch 4 -- Loss: 0.6759
Epoch 5 -- Loss: 0.6681
Epoch 6 -- Loss: 0.6644
Epoch 7 -- Loss: 0.6594
Epoch 8 -- Loss: 0.6533
Epoch 9 -- Loss: 0.6481
Epoch 10 -- Loss: 0.644
Epoch 11 -- Loss: 0.6379
Epoch 12 -- Loss: 0.6318
Epoch 13 -- Loss: 0.6261
Epoch 14 -- Loss: 0.6216
Epoch 15 -- Loss: 0.6153
Epoch 16 -- Loss: 0.6088
Epoch 17 -- Loss: 0.6039
Epoch 18 -- Loss: 0.5973
Epoch 19 -- Loss: 0.5921
Epoch 20 -- Loss: 0.5867
Epoch 21 -- Loss: 0.5791
Epoch 22 -- Loss: 0.5728
Epoch 23 -- Loss: 0.5675
Epoch 24 -- Loss: 0.5614
Epoch 25 -- Loss: 0.5561
Epoch 26 -- Loss: 0.5487
Epoch 27 -- Loss: 0.5441
Epoch 28 -- Loss: 0.536
Epoch 29 -- Loss: 0.5306
Epoch 30 -- Loss: 0.525

Threshold = 0.739

Evaluation Metrics for realTweets/Twitter_volume_CRM.csv
TP = 910 | FP = 2921 | FN = 1745
Precision: 23.75%
Recall:    34.27%
F1 Score:  28.06%

Processing: realTweets/Twitter_volume_CVS.csv
Epoch 1 -- Loss: 0.692
Epoch 2 -- Loss: 0.6889
Epoch 3 -- Loss: 0.6864
Epoch 4 -- Loss: 0.6823
Epoch 5 -- Loss: 0.6778
Epoch 6 -- Loss: 0.6741
Epoch 7 -- Loss: 0.6726
Epoch 8 -- Loss: 0.6675
Epoch 9 -- Loss: 0.6645
Epoch 10 -- Loss: 0.6611
Epoch 11 -- Loss: 0.6569
Epoch 12 -- Loss: 0.6529
Epoch 13 -- Loss: 0.6507
Epoch 14 -- Loss: 0.6465
Epoch 15 -- Loss: 0.6443
Epoch 16 -- Loss: 0.6402
Epoch 17 -- Loss: 0.637
Epoch 18 -- Loss: 0.6343
Epoch 19 -- Loss: 0.6318
Epoch 20 -- Loss: 0.6284
Epoch 21 -- Loss: 0.6246
Epoch 22 -- Loss: 0.6213
Epoch 23 -- Loss: 0.6182
Epoch 24 -- Loss: 0.6151
Epoch 25 -- Loss: 0.6124
Epoch 26 -- Loss: 0.609
Epoch 27 -- Loss: 0.6058
Epoch 28 -- Loss: 0.6021
Epoch 29 -- Loss: 0.5991
Epoch 30 -- Loss: 0.5952

Threshold = 1.5297

Evaluation Metrics for realTweets/Twitter_volume_CVS.csv
TP = 0 | FP = 0 | FN = 1923
Precision: 0.0%
Recall:    0.0%
F1 Score:  0.0%

Processing: realTweets/Twitter_volume_FB.csv
Epoch 1 -- Loss: 0.6919
Epoch 2 -- Loss: 0.6877
Epoch 3 -- Loss: 0.6853
Epoch 4 -- Loss: 0.6817
Epoch 5 -- Loss: 0.6788
Epoch 6 -- Loss: 0.6769
Epoch 7 -- Loss: 0.6737
Epoch 8 -- Loss: 0.6706
Epoch 9 -- Loss: 0.6688
Epoch 10 -- Loss: 0.6666
Epoch 11 -- Loss: 0.6642
Epoch 12 -- Loss: 0.6622
Epoch 13 -- Loss: 0.6602
Epoch 14 -- Loss: 0.6578
Epoch 15 -- Loss: 0.6554
Epoch 16 -- Loss: 0.6534
Epoch 17 -- Loss: 0.6517
Epoch 18 -- Loss: 0.6493
Epoch 19 -- Loss: 0.6471
Epoch 20 -- Loss: 0.6459
Epoch 21 -- Loss: 0.6439
Epoch 22 -- Loss: 0.642
Epoch 23 -- Loss: 0.6417
Epoch 24 -- Loss: 0.6396
Epoch 25 -- Loss: 0.6378
Epoch 26 -- Loss: 0.6366
Epoch 27 -- Loss: 0.6348
Epoch 28 -- Loss: 0.633
Epoch 29 -- Loss: 0.6323
Epoch 30 -- Loss: 0.6303

Threshold = 1.0882

Evaluation Metrics for realTweets/Twitter_volume_FB.csv
TP = 17 | FP = 68 | FN = 2356
Precision: 20.0%
Recall:    0.72%
F1 Score:  1.38%

Processing: realTweets/Twitter_volume_GOOG.csv
Epoch 1 -- Loss: 0.7006
Epoch 2 -- Loss: 0.6921
Epoch 3 -- Loss: 0.6862
Epoch 4 -- Loss: 0.6797
Epoch 5 -- Loss: 0.6734
Epoch 6 -- Loss: 0.6664
Epoch 7 -- Loss: 0.6611
Epoch 8 -- Loss: 0.6542
Epoch 9 -- Loss: 0.6484
Epoch 10 -- Loss: 0.6426
Epoch 11 -- Loss: 0.6375
Epoch 12 -- Loss: 0.6319
Epoch 13 -- Loss: 0.6254
Epoch 14 -- Loss: 0.6199
Epoch 15 -- Loss: 0.6142
Epoch 16 -- Loss: 0.6098
Epoch 17 -- Loss: 0.6035
Epoch 18 -- Loss: 0.5968
Epoch 19 -- Loss: 0.5912
Epoch 20 -- Loss: 0.5853
Epoch 21 -- Loss: 0.5784
Epoch 22 -- Loss: 0.5729
Epoch 23 -- Loss: 0.5669
Epoch 24 -- Loss: 0.5604
Epoch 25 -- Loss: 0.5554
Epoch 26 -- Loss: 0.5475
Epoch 27 -- Loss: 0.541
Epoch 28 -- Loss: 0.535
Epoch 29 -- Loss: 0.5288
Epoch 30 -- Loss: 0.5205

Threshold = 0.4905

Evaluation Metrics for realTweets/Twitter_volume_GOOG.csv
TP = 942 | FP = 4556 | FN = 916
Precision: 17.13%
Recall:    50.7%
F1 Score:  25.61%

Processing: realTweets/Twitter_volume_IBM.csv
Epoch 1 -- Loss: 0.6986
Epoch 2 -- Loss: 0.6947
Epoch 3 -- Loss: 0.6896
Epoch 4 -- Loss: 0.6837
Epoch 5 -- Loss: 0.6814
Epoch 6 -- Loss: 0.6758
Epoch 7 -- Loss: 0.67
Epoch 8 -- Loss: 0.6659
Epoch 9 -- Loss: 0.6608
Epoch 10 -- Loss: 0.6558
Epoch 11 -- Loss: 0.6508
Epoch 12 -- Loss: 0.6458
Epoch 13 -- Loss: 0.6401
Epoch 14 -- Loss: 0.6354
Epoch 15 -- Loss: 0.6301
Epoch 16 -- Loss: 0.6235
Epoch 17 -- Loss: 0.6179
Epoch 18 -- Loss: 0.6123
Epoch 19 -- Loss: 0.6074
Epoch 20 -- Loss: 0.6015
Epoch 21 -- Loss: 0.5947
Epoch 22 -- Loss: 0.5884
Epoch 23 -- Loss: 0.5818
Epoch 24 -- Loss: 0.5754
Epoch 25 -- Loss: 0.5694
Epoch 26 -- Loss: 0.5621
Epoch 27 -- Loss: 0.555
Epoch 28 -- Loss: 0.547
Epoch 29 -- Loss: 0.542
Epoch 30 -- Loss: 0.5341

Threshold = 0.6579

Evaluation Metrics for realTweets/Twitter_volume_IBM.csv
TP = 645 | FP = 2888 | FN = 1892
Precision: 18.26%
Recall:    25.42%
F1 Score:  21.25%

Processing: realTweets/Twitter_volume_KO.csv
Epoch 1 -- Loss: 0.6899
Epoch 2 -- Loss: 0.6872
Epoch 3 -- Loss: 0.6851
Epoch 4 -- Loss: 0.6828
Epoch 5 -- Loss: 0.6803
Epoch 6 -- Loss: 0.6781
Epoch 7 -- Loss: 0.6748
Epoch 8 -- Loss: 0.6734
Epoch 9 -- Loss: 0.6715
Epoch 10 -- Loss: 0.6698
Epoch 11 -- Loss: 0.666
Epoch 12 -- Loss: 0.6644
Epoch 13 -- Loss: 0.6617
Epoch 14 -- Loss: 0.6601
Epoch 15 -- Loss: 0.6569
Epoch 16 -- Loss: 0.6552
Epoch 17 -- Loss: 0.6527
Epoch 18 -- Loss: 0.6498
Epoch 19 -- Loss: 0.6475
Epoch 20 -- Loss: 0.6444
Epoch 21 -- Loss: 0.6433
Epoch 22 -- Loss: 0.6394
Epoch 23 -- Loss: 0.6371
Epoch 24 -- Loss: 0.6349
Epoch 25 -- Loss: 0.6316
Epoch 26 -- Loss: 0.6291
Epoch 27 -- Loss: 0.6267
Epoch 28 -- Loss: 0.6237
Epoch 29 -- Loss: 0.6215
Epoch 30 -- Loss: 0.618

Threshold = 0.3656

Evaluation Metrics for realTweets/Twitter_volume_KO.csv
TP = 740 | FP = 1833 | FN = 2434
Precision: 28.76%
Recall:    23.31%
F1 Score:  25.75%

Processing: realTweets/Twitter_volume_PFE.csv
Epoch 1 -- Loss: 0.707
Epoch 2 -- Loss: 0.7038
Epoch 3 -- Loss: 0.701
Epoch 4 -- Loss: 0.6983
Epoch 5 -- Loss: 0.6956
Epoch 6 -- Loss: 0.6919
Epoch 7 -- Loss: 0.6892
Epoch 8 -- Loss: 0.6856
Epoch 9 -- Loss: 0.6829
Epoch 10 -- Loss: 0.6804
Epoch 11 -- Loss: 0.6782
Epoch 12 -- Loss: 0.676
Epoch 13 -- Loss: 0.672
Epoch 14 -- Loss: 0.6706
Epoch 15 -- Loss: 0.6671
Epoch 16 -- Loss: 0.6656
Epoch 17 -- Loss: 0.6627
Epoch 18 -- Loss: 0.6611
Epoch 19 -- Loss: 0.6578
Epoch 20 -- Loss: 0.6567
Epoch 21 -- Loss: 0.6551
Epoch 22 -- Loss: 0.6524
Epoch 23 -- Loss: 0.65
Epoch 24 -- Loss: 0.6481
Epoch 25 -- Loss: 0.6458
Epoch 26 -- Loss: 0.6438
Epoch 27 -- Loss: 0.6416
Epoch 28 -- Loss: 0.6397
Epoch 29 -- Loss: 0.6377
Epoch 30 -- Loss: 0.6359

Threshold = 0.7529

Evaluation Metrics for realTweets/Twitter_volume_PFE.csv
TP = 77 | FP = 260 | FN = 2305
Precision: 22.85%
Recall:    3.23%
F1 Score:  5.66%

Processing: realTweets/Twitter_volume_UPS.csv
Epoch 1 -- Loss: 0.7057
Epoch 2 -- Loss: 0.701
Epoch 3 -- Loss: 0.6966
Epoch 4 -- Loss: 0.6924
Epoch 5 -- Loss: 0.6884
Epoch 6 -- Loss: 0.6837
Epoch 7 -- Loss: 0.6808
Epoch 8 -- Loss: 0.6759
Epoch 9 -- Loss: 0.6731
Epoch 10 -- Loss: 0.6689
Epoch 11 -- Loss: 0.6653
Epoch 12 -- Loss: 0.6616
Epoch 13 -- Loss: 0.658
Epoch 14 -- Loss: 0.6551
Epoch 15 -- Loss: 0.6521
Epoch 16 -- Loss: 0.6483
Epoch 17 -- Loss: 0.6454
Epoch 18 -- Loss: 0.6425
Epoch 19 -- Loss: 0.6395
Epoch 20 -- Loss: 0.6369
Epoch 21 -- Loss: 0.6339
Epoch 22 -- Loss: 0.6311
Epoch 23 -- Loss: 0.6293
Epoch 24 -- Loss: 0.626
Epoch 25 -- Loss: 0.623
Epoch 26 -- Loss: 0.621
Epoch 27 -- Loss: 0.6183
Epoch 28 -- Loss: 0.6158
Epoch 29 -- Loss: 0.6139
Epoch 30 -- Loss: 0.6117

Threshold = 1.3833

Evaluation Metrics for realTweets/Twitter_volume_UPS.csv
TP = 100 | FP = 518 | FN = 1485
Precision: 16.18%
Recall:    6.31%
F1 Score:  9.08%

All files processed successfully
Back to top