Interactive Visualization
import fairlib
%matplotlib widget
import altair as alt
from vega_datasets import data
Load experimental results
Moji_results = fairlib.analysis.retrive_results("Moji", log_dir="../analysis/results")
Moji_plot_df = fairlib.analysis.final_results_df(
# model_order=["Adv","INLP", "DAdv"],
results_dict = Moji_results,
pareto = True,
pareto_selection = "test",
selection_criterion = None,
return_dev = True,
)
Crete Plot
import seaborn as sns
import matplotlib.pyplot as plt
from pathlib import Path
def make_plot(plot_df, figure_name=None):
plot_df["Fairness"] = plot_df["test_fairness mean"]
plot_df["Accuracy"] = plot_df["test_performance mean"]
figure = plt.figure(dpi = 100)
with sns.axes_style("white"):
sns.lineplot(
data=plot_df,
x="Accuracy",
y="Fairness",
hue="Models",
markers=True,
style="Models",
)
plt.legend(loc='center left', bbox_to_anchor=(1, 0.5))
plt.tight_layout()
if figure_name is not None:
figure.savefig(Path(r"plots") / figure_name, dpi=960, bbox_inches="tight")
make_plot(Moji_plot_df)
fairlib.analysis.tables_and_figures.interactive_plot(Moji_plot_df, selection="DTO")
fairlib.analysis.tables_and_figures.interactive_plot(Moji_plot_df, selection="constrained")