File size: 2,134 Bytes
b2ffc9b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import argparse
import os

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

from utils.paths import LOGS_PATH, DATA_VIS_PATH, DATA_PATH


def get_args():
    parser = argparse.ArgumentParser()
    parser.add_argument(
        "extension_name",
        type=str,
        help="Experiment extension name"
    )
    return parser.parse_args()


if __name__ == "__main__":
    args = get_args()
    extension_name = args.extension_name

#    thresholds = np.array([0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95])

    thresholds = np.array([0.89])
    f1_mean, f1_std = [], []
    precision_mean, precision_std = [], []
    recall_mean, recall_std = [], []

    csv_pattern = os.path.join(LOGS_PATH, f"dl_evaluation_{extension_name}", f"dl_evaluation_{extension_name}_{{}}.csv")
    for threshold in thresholds:
        performance_csv_filename = csv_pattern.format(threshold)
        perf_df = pd.read_csv(performance_csv_filename)

        mean_row = perf_df.iloc[-2]
        std_row = perf_df.iloc[-1]

        # Precision, Recall, F1Score
        f1_mean.append(mean_row['F1Score'])
        f1_std.append(std_row['F1Score'])
        precision_mean.append(mean_row['Precision'])
        precision_std.append(std_row['Precision'])
        recall_mean.append(mean_row['Recall'])
        recall_std.append(std_row['Recall'])

    f1_mean, f1_std = np.array(f1_mean), np.array(f1_std)
    precision_mean, precision_std = np.array(precision_mean), np.array(precision_std)
    recall_mean, recall_std = np.array(recall_mean), np.array(recall_std)

    print(f1_mean, precision_mean, recall_mean)

#    df_to_save = pd.DataFrame({'threshold': thresholds,
#                               'f1score_mean': f1_mean, 'f1score_std': f1_std,
#                               'precision_mean': precision_mean, 'precision_std': precision_std,
#                               'recall_mean': recall_mean, 'recall_std': recall_std})
#    csv_filename = os.path.join(DATA_PATH, f"performance_threshold_{extension_name}.csv")
#    df_to_save.to_csv(csv_filename, index=False)