gopiium's picture
Upload folder using huggingface_hub
ba866d1 verified
import json
import os
import datetime
import pandas as pd
import matplotlib as mpl
import seaborn as sns
import matplotlib.pyplot as plt
from sklearn import metrics
COLOR = "black"
mpl.rcParams["text.color"] = COLOR
mpl.rcParams["axes.labelcolor"] = COLOR
mpl.rcParams["xtick.color"] = COLOR
mpl.rcParams["ytick.color"] = COLOR
mpl.rcParams["figure.dpi"] = 200
sns.set(style="darkgrid")
def convert_to_pandas(human_scores, machine_scores):
human_scores = human_scores["score"]
machine_scores = machine_scores["score"]
df = pd.DataFrame(
{"score": human_scores + machine_scores, "class": [0] * len(human_scores) + [1] * len(machine_scores)}
)
return df
def save_json(data, save_path):
data.end_time = datetime.datetime.now().strftime("%I:%M%p on %B %d, %Y")
with open(os.path.join(save_path, "experiments_details.json"), "w", encoding="utf-8") as f:
json.dump(data.__dict__, f, ensure_ascii=False, indent=4)
def save_experiment(args, score_df, fpr, tpr, f1_score, roc_auc, tpr_at_fpr_0_01):
fig, ax = plt.subplots(1, 1)
ax.set_xscale("log")
annotation = f"ROC AUC: {roc_auc:.4f}\nF1 Score: {f1_score:.2f}\nTPR at 0.01% FPR:{100 * tpr_at_fpr_0_01:.2f}%"
display = metrics.RocCurveDisplay(fpr=fpr, tpr=tpr, estimator_name=annotation)
display.plot(ax=ax, linestyle="--")
ax.set_title(f"{args.dataset_name} (n={len(score_df)})\nMachine Text from {args.machine_text_source}")
fig.savefig(f"{args.experiment_path}/performance.png", bbox_inches='tight')
score_df.to_csv(f"{args.experiment_path}/score_df.csv", index=False)
save_json(args, args.experiment_path)