SafeSVC
An example Python Notebook is available Here
Privacy protected Support Vector Classifier.
- class sacroml.safemodel.classifiers.safesvc.SafeSVC(C: float = 1.0, gamma: str | float = 'scale', dhat: int = 1000, eps: float = 10, **kwargs: dict)[source]
Privacy protected Support Vector Classifier.
Methods
additional_checks
(curr_separate, saved_separate)SVC specific checks.
examine_seperate_items
(curr_vals, saved_vals)Check model-specific items exist in both current and saved copies.
fit
(train_features, train_labels)Fit model and store model dict.
Copy self.__dict__ and split into dicts for current and saved versions.
get_params
([deep])Get a dictionary of parameter values restricted to those expected.
k_hat_svm
(x[, y])Define the version which is sent to sklearn.svm.
phi_hat
(input_vector)Project a single feature.
phi_hat_multi
(input_features)Compute feature space for a matrix of inputs.
Check whether model has been interfered with since fit() was last run.
predict
(test_features)Return the predictions.
predict_proba
(test_features)Return the predictive probabilities.
preliminary_check
([verbose, apply_constraints])Check whether current model parameters violate the safe rules.
request_release
(path, ext[, target])Save model and create a report for the TRE output checkers.
run_attack
(target, attack_name[, output_dir])Run a specified attack on the trained model and save report to file.
save
([name])Write model to file in appropriate format.
set_params
(**kwargs)Set params.
- __init__(C: float = 1.0, gamma: str | float = 'scale', dhat: int = 1000, eps: float = 10, **kwargs: dict) None [source]
Initialise a differentially private SVC.
- additional_checks(curr_separate: dict, saved_separate: dict) tuple[str, str] [source]
SVC specific checks.
- examine_seperate_items(curr_vals: dict, saved_vals: dict) tuple[str, bool]
Check model-specific items exist in both current and saved copies.
- get_current_and_saved_models() tuple[dict, dict]
Copy self.__dict__ and split into dicts for current and saved versions.
- get_params(deep: bool = True) dict
Get a dictionary of parameter values restricted to those expected.
- k_hat_svm(x: ndarray, y: ndarray | None = None) ndarray
Define the version which is sent to sklearn.svm.
- phi_hat(input_vector: ndarray) ndarray
Project a single feature.
- phi_hat_multi(input_features: ndarray) ndarray
Compute feature space for a matrix of inputs.
- posthoc_check() tuple[str, bool]
Check whether model has been interfered with since fit() was last run.
- predict(test_features: ndarray) ndarray
Return the predictions.
- predict_proba(test_features: ndarray) ndarray
Return the predictive probabilities.
- preliminary_check(verbose: bool = True, apply_constraints: bool = False) tuple[str, bool]
Check whether current model parameters violate the safe rules.
Optionally fixes violations.
- Parameters:
- verbosebool
A boolean value to determine increased output level.
- apply_constraintsbool
A boolean to determine whether identified constraints are to be upheld and applied.
- Returns:
- msgstring
A message string.
- disclosivebool
A boolean value indicating whether the model is potentially disclosive.
- request_release(path: str, ext: str, target: Target | None = None) None
Save model and create a report for the TRE output checkers.
- Parameters:
- pathstring
Path to save the outputs.
- extstr
File extension defining the model saved format, e.g., “pkl” or “sav”.
- targetattacks.target.Target
Contains model and dataset information.
Notes
If target is not null, then worst case MIA and attribute inference attacks are called via run_attack.
- run_attack(target: Target, attack_name: str, output_dir: str = 'outputs_safemodel') dict
Run a specified attack on the trained model and save report to file.
- Parameters:
- targetTarget
The target in the form of a Target object.
- attack_namestr
Name of the attack to run.
- output_dirstr
Name of the directory to store JSON and PDF reports.
- Returns:
- dict
Metadata results.
- save(name: str = 'undefined') None
Write model to file in appropriate format.
Note this is overloaded in SafeKerasClassifer to deal with tensorflow specifics.
- Parameters:
- namestring
The name of the file to save.
Notes
Optimizer is deliberately excluded to prevent possible restart to training and thus possible back door into attacks.
- set_params(**kwargs: dict) None
Set params.
- examine_seperately_items: list[str]
- filename: str
- ignore_items: list[str]
- model_load_file: str
- model_save_file: str
- model_type: str
- researcher: str
- timestamp: str