2023-03-20 14:14:09 +02:00
|
|
|
from dataclasses import dataclass
|
|
|
|
|
from typing import Optional
|
|
|
|
|
|
|
|
|
|
import numpy as np
|
|
|
|
|
|
|
|
|
|
DEFAULT_DATASET_NAME = "dataset"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@dataclass
|
|
|
|
|
class DatasetAttackResult:
|
2023-05-08 12:50:55 +03:00
|
|
|
"""
|
|
|
|
|
Basic class for storing privacy risk assessment results.
|
|
|
|
|
"""
|
2023-03-20 14:14:09 +02:00
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@dataclass
|
|
|
|
|
class DatasetAttackScore:
|
2023-05-08 12:50:55 +03:00
|
|
|
"""
|
|
|
|
|
Basic class for storing privacy risk assessment scores.
|
|
|
|
|
|
|
|
|
|
:param dataset_name: The name of the dataset that was assessed.
|
|
|
|
|
:param risk_score: The privacy risk score.
|
|
|
|
|
:param result: An optional list of more detailed results.
|
|
|
|
|
"""
|
2023-03-20 14:14:09 +02:00
|
|
|
dataset_name: str
|
|
|
|
|
risk_score: float
|
|
|
|
|
result: Optional[DatasetAttackResult]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@dataclass
|
|
|
|
|
class DatasetAttackResultMembership(DatasetAttackResult):
|
2023-05-08 12:50:55 +03:00
|
|
|
"""
|
|
|
|
|
Class for storing membership attack results.
|
|
|
|
|
|
|
|
|
|
:param member_probabilities: The attack probabilities for member samples.
|
|
|
|
|
:param non_member_probabilities: The attack probabilities for non-member samples.
|
|
|
|
|
"""
|
2023-03-20 14:14:09 +02:00
|
|
|
member_probabilities: np.ndarray
|
|
|
|
|
non_member_probabilities: np.ndarray
|