tapas.report.report.ROCReport

class tapas.report.report.ROCReport(attack_summaries, suffix='', disaggregate_by=None, curve_label='attack', eff_epsilon=None, zooms=[1])

Bases: tapas.report.report.Report

Report the Receiver Operating Characteristic curves for several attacks.

TODO: explain the disaggregation

__init__(attack_summaries, suffix='', disaggregate_by=None, curve_label='attack', eff_epsilon=None, zooms=[1])
Parameters
  • attack_summaries (list[BinaryLabelInferenceAttackSummary]) – The output of binary label-inference attacks. These can have been applied to different threat models (including datasets).

  • suffix (str (default "")) – Text to display in the title, and filename.

  • disaggregate_by (str or None (default)) – TODO generator, attack, dataset, target_id

  • curve_label (str, default 'attack') – Summary attribute to use as legend label for individual ROC curves. By default, each ROC curve corresponds to one attack.

  • eff_epsilon (float or None) – If not None, TP/FP and TN/FN bounds are displayed on the plot for the specified value of effective epsilon. If None, no curves are plotted.

  • zooms (list of floats, default [1]) – List of zooms of ROC curves to produce. For each zoom < 1, the ROC curves restricted to [0, zoom] x [0, zoom] (low corner) and [1-zoom, zoom] x [1-zoom, zoom] (high corner). This allows to visualise the TPR at low FPR (and TNR at low FNR) for privacy analysis.

Methods

__init__(attack_summaries[, suffix, ...])

param attack_summaries

The output of binary label-inference attacks. These can have

publish(filepath)

Plot the ROC curves and save them to disk.

publish(filepath)

Plot the ROC curves and save them to disk.