From 7c0bcdd17dc163643cc2672300e77e64b99f62e5 Mon Sep 17 00:00:00 2001 From: Richard Preen Date: Wed, 24 Apr 2024 16:37:51 +0100 Subject: [PATCH] merge dev into main (#267) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [pre-commit.ci] pre-commit autoupdate updates: - [github.com/hadialqattan/pycln: v2.3.0 → v2.4.0](https://github.com/hadialqattan/pycln/compare/v2.3.0...v2.4.0) - [github.com/psf/black: 23.10.1 → 23.11.0](https://github.com/psf/black/compare/23.10.1...23.11.0) * [pre-commit.ci] pre-commit autoupdate updates: - [github.com/PyCQA/isort: 5.12.0 → 5.13.2](https://github.com/PyCQA/isort/compare/5.12.0...5.13.2) - [github.com/psf/black: 23.11.0 → 23.12.1](https://github.com/psf/black/compare/23.11.0...23.12.1) * [pre-commit.ci] pre-commit autoupdate updates: - [github.com/asottile/pyupgrade: v3.15.0 → v3.15.1](https://github.com/asottile/pyupgrade/compare/v3.15.0...v3.15.1) - [github.com/psf/black: 23.12.1 → 24.2.0](https://github.com/psf/black/compare/23.12.1...24.2.0) * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Removing references to final score * Fixing linting * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Improving code coverage (hopefully) * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Making pretty_print a non-private method for code coverage * Fixing merge conflicts * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Undoing accidental change * Update lint.yml to use actions/checkoutv4 Signed-off-by: Jim-smith * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update sphinx-docs.yml to use actions/checkoutv4 Signed-off-by: Jim-smith * Update test.yml to use actions/checkoutv4 Signed-off-by: Jim-smith * Update tests.ymlto use actions/checkoutv4 Signed-off-by: Jim-smith * Update likelihood_attack.py Signed-off-by: Jim-smith * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * update dependencies (#262) * update syntax for numpy>1.2 * update syntax for newer scikit-learn * update syntax for newer xgboost * update syntax for newer scikit-learn * update install dependencies * remove support for python3.8 * make DP test as approx equal * test python 3.12 * revert python 3.12 changes * update tests CI * add github action autoupdater * safemodel package installation optional * fix pylint warning * refactor tests * make common test module relative * fix pylint warnings * [pre-commit.ci] pre-commit autoupdate (#261) updates: - [github.com/pre-commit/pre-commit-hooks: v4.5.0 → v4.6.0](https://github.com/pre-commit/pre-commit-hooks/compare/v4.5.0...v4.6.0) - [github.com/asottile/pyupgrade: v3.15.1 → v3.15.2](https://github.com/asottile/pyupgrade/compare/v3.15.1...v3.15.2) - [github.com/psf/black: 24.2.0 → 24.4.0](https://github.com/psf/black/compare/24.2.0...24.4.0) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Richard Preen * fix codecov reporting (#265) * fix codecov reporting * fix codecov reporting * fix codecov reporting * add new datasets (#257) * Clean up uncessary code, added back RDMP * Revert "Clean up uncessary code, added back RDMP" This reverts commit 0d179dc4da479984bc3f514430ff37587b47d935. * Removed texas, added back rdmp * Removing texas dataset from tests * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Fixing merge conflicts * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Updating tests to cover new tests * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Removing RDMP test until the dataset can be loaded in * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Signed-off-by: yolaj-nhs <127405111+yolaj-nhs@users.noreply.github.com> Co-authored-by: yolaj-nhs Co-authored-by: yolaj-nhs <127405111+yolaj-nhs@users.noreply.github.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Richard Preen --------- Signed-off-by: Jim-smith Signed-off-by: yolaj-nhs <127405111+yolaj-nhs@users.noreply.github.com> Co-authored-by: Jim-smith Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: yolaj-nhs Co-authored-by: albacrespi Co-authored-by: yolaj-nhs <127405111+yolaj-nhs@users.noreply.github.com> --- .github/dependabot.yml | 11 + .github/workflows/lint.yml | 5 +- .github/workflows/sphinx-docs.yml | 6 +- .github/workflows/test.yml | 19 +- .github/workflows/tests.yml | 12 +- .pre-commit-config.yaml | 10 +- README.md | 46 +-- aisdc/attacks/attack_report_formatter.py | 29 +- aisdc/attacks/likelihood_attack.py | 3 +- aisdc/attacks/multiple_attacks.py | 1 + aisdc/attacks/report.py | 1 + aisdc/attacks/structural_attack.py | 2 + aisdc/attacks/worst_case_attack.py | 30 +- aisdc/preprocessing/loaders.py | 371 +++++++++--------- aisdc/safemodel/__init__.py | 1 + aisdc/safemodel/classifiers/__init__.py | 1 + aisdc/safemodel/classifiers/dp_svc.py | 1 + .../classifiers/safedecisiontreeclassifier.py | 2 +- aisdc/safemodel/classifiers/safekeras.py | 1 + .../classifiers/saferandomforestclassifier.py | 8 +- aisdc/safemodel/classifiers/safetf.py | 1 - development_files/structural_attack.ipynb | 6 +- docs/requirements.txt | 21 - docs/source/conf.py | 4 +- examples/lira_attack_example.py | 1 + .../safemodel_attack_integration_bothcalls.py | 1 + examples/worst_case_attack_example.py | 1 + requirements.txt | 15 - setup.py | 61 +-- tests/attacks/__init__.py | 0 .../test_attack_report_formatter.py | 10 + tests/attacks/test_attacks_target.py | 97 +++++ .../test_attribute_inference_attack.py | 20 +- tests/{ => attacks}/test_data_interface.py | 0 tests/{ => attacks}/test_failfast.py | 0 tests/{ => attacks}/test_lira_attack.py | 1 + tests/{ => attacks}/test_metrics.py | 0 tests/{ => attacks}/test_multiple_attacks.py | 3 +- tests/{ => attacks}/test_structural_attack.py | 23 +- tests/{ => attacks}/test_worst_case_attack.py | 8 +- tests/common.py | 110 ++++++ tests/preprocessing/__init__.py | 0 tests/{ => preprocessing}/test_loaders.py | 51 ++- tests/safemodel/__init__.py | 0 tests/{ => safemodel}/test_attacks.py | 0 .../test_attacks_via_safemodel.py | 108 +---- .../test_safedecisiontreeclassifier.py | 0 tests/{ => safemodel}/test_safekeras2.py | 5 +- tests/{ => safemodel}/test_safemodel.py | 4 + .../test_saferandomforestclassifier.py | 14 +- tests/{ => safemodel}/test_safesvc.py | 0 tests/{ => safemodel}/test_safetf.py | 0 tests/test_attacks_target.py | 166 -------- .../summary_example_output.txt | 3 - .../summary_example_output_description.png | Bin 207767 -> 181586 bytes user_stories/user_story_2/user_story_2_tre.py | 1 + .../user_story_7_researcher_template.py | 1 - 57 files changed, 641 insertions(+), 655 deletions(-) create mode 100644 .github/dependabot.yml delete mode 100644 docs/requirements.txt delete mode 100644 requirements.txt create mode 100644 tests/attacks/__init__.py rename tests/{ => attacks}/test_attack_report_formatter.py (98%) create mode 100644 tests/attacks/test_attacks_target.py rename tests/{ => attacks}/test_attribute_inference_attack.py (89%) rename tests/{ => attacks}/test_data_interface.py (100%) rename tests/{ => attacks}/test_failfast.py (100%) rename tests/{ => attacks}/test_lira_attack.py (99%) rename tests/{ => attacks}/test_metrics.py (100%) rename tests/{ => attacks}/test_multiple_attacks.py (99%) rename tests/{ => attacks}/test_structural_attack.py (96%) rename tests/{ => attacks}/test_worst_case_attack.py (97%) create mode 100644 tests/common.py create mode 100644 tests/preprocessing/__init__.py rename tests/{ => preprocessing}/test_loaders.py (81%) create mode 100644 tests/safemodel/__init__.py rename tests/{ => safemodel}/test_attacks.py (100%) rename tests/{ => safemodel}/test_attacks_via_safemodel.py (54%) rename tests/{ => safemodel}/test_safedecisiontreeclassifier.py (100%) rename tests/{ => safemodel}/test_safekeras2.py (99%) rename tests/{ => safemodel}/test_safemodel.py (99%) rename tests/{ => safemodel}/test_saferandomforestclassifier.py (97%) rename tests/{ => safemodel}/test_safesvc.py (100%) rename tests/{ => safemodel}/test_safetf.py (100%) delete mode 100644 tests/test_attacks_target.py diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..e9a9938b --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,11 @@ +--- +# Dependabot configuration. + +version: 2 + +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "monthly" +... diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index fbf31333..f976241a 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -14,13 +14,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install dependencies run: | python -m pip install --upgrade pip - pip install pylint pytest pytest-cov - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + pip install .[test] pylint - name: pylint run: | diff --git a/.github/workflows/sphinx-docs.yml b/.github/workflows/sphinx-docs.yml index d260da55..29b1fded 100644 --- a/.github/workflows/sphinx-docs.yml +++ b/.github/workflows/sphinx-docs.yml @@ -17,12 +17,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Run sphinx run: | - pip install -r ./docs/requirements.txt - sphinx-build -D todo_include_todos=0 ./docs/source ./docs/_build/html/ + pip install .[doc] + sphinx-build ./docs/source ./docs/_build/html/ - name: Commit changes run: | diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f2ad675e..b0ae201c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -14,18 +14,21 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install run: | - python -m pip install --upgrade pip - pip install pytest pytest-cov - pip install . + pip install --upgrade pip + pip install .[test] - - name: pytest and report coverage + - name: Generate coverage report run: | pytest --cov=./ --cov-report=xml - curl -Os https://uploader.codecov.io/latest/linux/codecov - chmod +x codecov - ./codecov + + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v4 + with: + fail_ci_if_error: true + token: ${{ secrets.CODECOV_TOKEN }} + verbose: true ... diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index f5b0969b..db96210b 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -11,20 +11,20 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, macos-latest, windows-latest] - python-version: ["3.8", "3.9", "3.10"] + python-version: ["3.9", "3.10", "3.11"] steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - - name: Install and pytest - run: pip install . pytest + - name: Install + run: pip install .[test] - - name: Run pytest + - name: Run Tests run: pytest . ... diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 35198007..3c211cfe 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -8,7 +8,7 @@ repos: # Standard hooks - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.5.0 + rev: v4.6.0 hooks: - id: check-added-large-files - id: check-merge-conflict @@ -33,27 +33,27 @@ repos: # Autoremoves unused imports - repo: https://github.com/hadialqattan/pycln - rev: "v2.3.0" + rev: "v2.4.0" hooks: - id: pycln stages: [manual] # Sort includes - repo: https://github.com/asottile/pyupgrade - rev: v3.15.0 + rev: v3.15.2 hooks: - id: pyupgrade # Upgrade old Python syntax - repo: https://github.com/PyCQA/isort - rev: 5.12.0 + rev: 5.13.2 hooks: - id: isort args: ["--profile", "black"] # Black format Python and notebooks - repo: https://github.com/psf/black - rev: 23.10.1 + rev: 24.4.0 hooks: - id: black-jupyter diff --git a/README.md b/README.md index 371b85f9..6a31cb4c 100644 --- a/README.md +++ b/README.md @@ -33,60 +33,52 @@ A collection of user guides can be found in the 'user_stories' folder of this re Documentation is hosted here: https://ai-sdc.github.io/AI-SDC/ -## Quick Start +## Installation / End-user -### Development - -Clone the repository and install the dependencies (safest in a virtual env): +[![PyPI package](https://img.shields.io/pypi/v/aisdc.svg)](https://pypi.org/project/aisdc) -``` -$ git clone https://github.com/AI-SDC/AI-SDC.git -$ cd AI-SDC -$ pip install -r requirements.txt -``` +Install `aisdc` (safest in a virtual env) and manually copy the [`examples`](examples/) and [`example_notebooks`](example_notebooks/). -Then run the tests: +To install only the base package, which includes the attacks used for assessing privacy: ``` -$ pip install pytest -$ pytest . +$ pip install aisdc ``` -Or run an example: +To install the base package and the safemodel package, which includes defensive wrappers for popular ML frameworks including [scikit-learn](https://scikit-learn.org) and [Keras](https://keras.io): ``` -$ python -m examples.lira_attack_example +$ pip install aisdc[safemodel] ``` -### Installation / End-user +## Running -[![PyPI package](https://img.shields.io/pypi/v/aisdc.svg)](https://pypi.org/project/aisdc) +To run an example, simply execute the desired script or start up `jupyter notebook` and run one of the notebooks. -Install `aisdc` (safest in a virtual env) and manually copy the `examples` and `example_notebooks`. +For example, to run the `lira_attack_example.py`: ``` -$ pip install aisdc +$ python -m lira_attack_example ``` -Then to run an example: +## Development + +Clone the repository and install the local package including all dependencies (safest in a virtual env): ``` -$ python attribute_inference_example.py +$ git clone https://github.com/AI-SDC/AI-SDC.git +$ cd AI-SDC +$ pip install .[test] ``` -Or start up `jupyter notebook` and run an example. - -Alternatively, you can clone the repo and install: +Then run the tests: ``` -$ git clone https://github.com/AI-SDC/AI-SDC.git -$ cd AI-SDC -$ pip install . +$ pytest . ``` --- - This work was funded by UK Research and Innovation under Grant Numbers MC_PC_21033 and MC_PC_23006 as part of Phase 1 of the DARE UK (Data and Analytics Research Environments UK) programme (https://dareuk.org.uk/), delivered in partnership with Health Data Research UK (HDR UK) and Administrative Data Research UK (ADR UK). The specific projects were Semi-Automatic checking of Research Outputs (SACRO -MC_PC_23006) and Guidelines and Resources for AI Model Access from TrusTEd Research environments (GRAIMATTER - MC_PC_21033).­ This project has also been supported by MRC and EPSRC [grant number MR/S010351/1]: PICTURES. diff --git a/aisdc/attacks/attack_report_formatter.py b/aisdc/attacks/attack_report_formatter.py index 783e41f3..2a44d688 100644 --- a/aisdc/attacks/attack_report_formatter.py +++ b/aisdc/attacks/attack_report_formatter.py @@ -261,8 +261,9 @@ def process_dict(self): output = {} - msg = "Final score (scale of 0-5, where 0 is least disclosive and 5 is recommend rejection)" - output[msg] = summarised_score + # msg = "Final score (scale of 0-5, where 0 is least disclosive and 5 is recommend + # rejection)" + # output[msg] = summarised_score return output @@ -455,17 +456,6 @@ def __init__(self): self.support_rejection = [] self.support_release = [] - def _pretty_print(self, report: dict, title) -> str: - """Function that formats JSON code to make it more readable for TREs.""" - - returned_string = str(title) + "\n" - - for key in report.keys(): - returned_string = returned_string + key + "\n" - returned_string = returned_string + pprint.pformat(report[key]) + "\n\n" - - return returned_string - def _process_target_json(self): """Function that creates a summary of a target model JSON file.""" @@ -513,6 +503,17 @@ def _process_target_json(self): self.text_out.append(output_string) + def pretty_print(self, report: dict, title) -> str: + """Function that formats JSON code to make it more readable for TREs.""" + + returned_string = str(title) + "\n" + + for key in report.keys(): + returned_string = returned_string + key + "\n" + returned_string = returned_string + pprint.pformat(report[key]) + "\n\n" + + return returned_string + def process_attack_target_json( self, attack_filename: str, target_filename: str = None ): @@ -541,7 +542,7 @@ def process_attack_target_json( self.support_rejection += returned[1] self.support_release += returned[2] - output_string = self._pretty_print(output, "ATTACK JSON RESULTS") + output_string = self.pretty_print(output, "ATTACK JSON RESULTS") self.text_out.append(output_string) diff --git a/aisdc/attacks/likelihood_attack.py b/aisdc/attacks/likelihood_attack.py index ea1eb82e..548a0a9f 100644 --- a/aisdc/attacks/likelihood_attack.py +++ b/aisdc/attacks/likelihood_attack.py @@ -1,4 +1,5 @@ """Likelihood testing scenario from https://arxiv.org/pdf/2112.03570.pdf.""" + # pylint: disable = invalid-name # pylint: disable = too-many-branches @@ -63,7 +64,7 @@ def _logit(p: float) -> float: If p is close to 0 or 1, evaluating the log will result in numerical instabilities. This code thresholds p at EPS and 1 - EPS where EPS defaults at 1e-16. """ - if p > 1 - EPS: + if p > 1 - EPS: # pylint:disable=consider-using-min-builtin p = 1 - EPS p = max(p, EPS) li = np.log(p / (1 - p)) diff --git a/aisdc/attacks/multiple_attacks.py b/aisdc/attacks/multiple_attacks.py index 34b8f337..2b5e75c2 100644 --- a/aisdc/attacks/multiple_attacks.py +++ b/aisdc/attacks/multiple_attacks.py @@ -3,6 +3,7 @@ and attribute inference attack using a single configuration file with multiple attack configuration. """ + from __future__ import annotations import argparse diff --git a/aisdc/attacks/report.py b/aisdc/attacks/report.py index c82adcd3..876517c9 100644 --- a/aisdc/attacks/report.py +++ b/aisdc/attacks/report.py @@ -1,4 +1,5 @@ """Code for automatic report generation.""" + import abc import json import os diff --git a/aisdc/attacks/structural_attack.py b/aisdc/attacks/structural_attack.py index 29e2896c..3561bfd2 100644 --- a/aisdc/attacks/structural_attack.py +++ b/aisdc/attacks/structural_attack.py @@ -119,6 +119,8 @@ def get_unnecessary_risk(model: BaseEstimator) -> bool: elif isinstance(model, XGBClassifier): n_estimators = model.n_estimators + if n_estimators is None: + n_estimators = 1000 if ( ( max_depth > 3.5 diff --git a/aisdc/attacks/worst_case_attack.py b/aisdc/attacks/worst_case_attack.py index f42a4078..5ec78c80 100644 --- a/aisdc/attacks/worst_case_attack.py +++ b/aisdc/attacks/worst_case_attack.py @@ -437,9 +437,9 @@ def _get_global_metrics(self, attack_metrics: list) -> dict: 0.5, m["n_pos_test_examples"], m["n_neg_test_examples"] ) - global_metrics[ - "null_auc_3sd_range" - ] = f"{0.5 - 3*auc_std:.4f} -> {0.5 + 3*auc_std:.4f}" + global_metrics["null_auc_3sd_range"] = ( + f"{0.5 - 3*auc_std:.4f} -> {0.5 + 3*auc_std:.4f}" + ) global_metrics["n_sig_auc_p_vals"] = self._get_n_significant( auc_p_vals, self.p_thresh ) @@ -603,9 +603,9 @@ def _get_attack_metrics_instances(self) -> dict: attack_metrics_instances["instance_" + str(rep)] = self.attack_metrics[rep] attack_metrics_experiment["attack_instance_logger"] = attack_metrics_instances - attack_metrics_experiment[ - "attack_metric_failfast_summary" - ] = self.attack_metric_failfast_summary.get_attack_summary() + attack_metrics_experiment["attack_metric_failfast_summary"] = ( + self.attack_metric_failfast_summary.get_attack_summary() + ) return attack_metrics_experiment @@ -617,14 +617,14 @@ def _get_dummy_attack_metrics_experiments_instances(self) -> dict: temp_dummy_attack_metrics = self.dummy_attack_metrics[exp_rep] dummy_attack_metric_instances = {} for rep, _ in enumerate(temp_dummy_attack_metrics): - dummy_attack_metric_instances[ - "instance_" + str(rep) - ] = temp_dummy_attack_metrics[rep] + dummy_attack_metric_instances["instance_" + str(rep)] = ( + temp_dummy_attack_metrics[rep] + ) temp = {} temp["attack_instance_logger"] = dummy_attack_metric_instances - temp[ - "attack_metric_failfast_summary" - ] = self.dummy_attack_metric_failfast_summary[exp_rep].get_attack_summary() + temp["attack_metric_failfast_summary"] = ( + self.dummy_attack_metric_failfast_summary[exp_rep].get_attack_summary() + ) dummy_attack_metrics_experiments[ "dummy_attack_metrics_experiment_" + str(exp_rep) ] = temp @@ -643,9 +643,9 @@ def make_report(self) -> dict: output["metadata"] = self.metadata output["attack_experiment_logger"] = self._get_attack_metrics_instances() - output[ - "dummy_attack_experiments_logger" - ] = self._get_dummy_attack_metrics_experiments_instances() + output["dummy_attack_experiments_logger"] = ( + self._get_dummy_attack_metrics_experiments_instances() + ) report_dest = os.path.join(self.output_dir, self.report_name) json_attack_formatter = GenerateJSONModule(report_dest + ".json") diff --git a/aisdc/preprocessing/loaders.py b/aisdc/preprocessing/loaders.py index bb2150f1..7cee7db6 100644 --- a/aisdc/preprocessing/loaders.py +++ b/aisdc/preprocessing/loaders.py @@ -72,7 +72,6 @@ def get_data_sklearn( # pylint: disable = too-many-branches medical-mnist-ab-v-br-500 (requires data download) medical-mnist-all-100 (requires data download) indian liver (requires data download) - texas hospitals 10 (requires data download) synth-ae (requires data download) synth-ae-small (requires data download) nursery (downloads automatically) @@ -143,10 +142,18 @@ def get_data_sklearn( # pylint: disable = too-many-branches return _synth_ae(data_folder) if dataset_name == "synth-ae-small": return _synth_ae(data_folder, 200) + if dataset_name == "synth-ae-large": + return _synth_ae(data_folder, 500000) + if dataset_name == "synth-ae-extra-large": + return _synth_ae(data_folder, 2000000) + if dataset_name == "synth-ae-XXL": + return _synth_ae(data_folder, 50000000) if dataset_name == "nursery": return _nursery() if dataset_name == "iris": return _iris() + if dataset_name == "RDMP": + return _RDMP(data_folder) raise UnknownDataset(dataset_name) @@ -375,6 +382,7 @@ def _in_hospital_mortality(data_folder: str) -> Tuple[pd.DataFrame, pd.DataFrame # download, and where to store files = ["data01.csv", "doi_10.5061_dryad.0p2ngf1zd__v5.zip"] file_path = [os.path.join(data_folder, f) for f in files] + print(file_path) if not any( # pylint: disable=use-a-generator [os.path.exists(fp) for fp in file_path] @@ -458,188 +466,195 @@ def _mimic_iaccd(data_folder: str) -> Tuple[pd.DataFrame, pd.DataFrame]: return (X, y) -def _texas_hospitals( +def _RDMP( # pylint: disable=too-many-locals, too-many-statements data_folder: str, -) -> Tuple[pd.DataFrame, pd.DataFrame]: # pragma: no cover - # pylint: disable=too-many-statements, too-many-locals - """ - Texas Hospitals Dataset - https://www.dshs.texas.gov/texas-health-care-information-collection/health-data-researcher-information/texas-inpatient-public-use # pylint: disable=line-too-long. - - Download the tab-delimited files for each quarter from - 2006, 2007, 2008 and 2009. - Note: This data is free to download. - """ - file_list = [ - "PUDF 1Q2006 tab-delimited.zip", - "PUDF 1Q2007 tab-delimited.zip", - "PUDF 1Q2009 tab-delimited.zip", - "PUDF 2Q2006 tab-delimited.zip", - "PUDF 2Q2007 tab-delimited.zip", - "PUDF 2Q2009 tab-delimited.zip", - "PUDF 3Q2006 tab-delimited.zip", - "PUDF 3Q2007 tab-delimited.zip", - "PUDF 4Q2006 tab-delimited.zip", - "PUDF 4Q2007 tab-delimited.zip", - "PUDF 4Q2009 tab-delimited.zip", - "PUDF1Q08_update_tab.zip", - "PUDF2Q08_update_tab.zip", - "PUDF3Q08_update_tab.zip", - ] - files_path = [os.path.join(data_folder, f) for f in file_list] - - found = [os.path.exists(file_path) for file_path in files_path] - not_found = [file_path for file_path in files_path if not os.path.exists(file_path)] +) -> Tuple[pd.DataFrame, pd.DataFrame]: + def find_age(row): + date_ = pd.to_datetime("01/06/2020") + if row.date_of_death != row.date_of_death: + age = np.floor((date_ - row.date_of_birth).days / 365.25) + else: + age = np.floor((row.date_of_death - row.date_of_birth).days / 365.25) + return age - processed_data_file = "texas_data10_rm_binary.csv" - if not all(found): - help_message = f""" - Some or all data files do not exist. Please accept their terms & conditions,then download the - tab delimited files from each quarter during 2006-2009 from: - https://www.dshs.texas.gov/THCIC/Hospitals/Download.shtm -and place it in the correct folder. + def hospital_days(row): + if row.DischargeDate == row.DischargeDate: + t = row.DischargeDate - row.AdmissionDate + days = t.days + round(((t.seconds / 60) / 60) / 24) + else: + days = 0 + return days + + processed_data_file = "rdmp_binary.csv" + os.path.join(data_folder, "RDMP") + if os.path.exists(os.path.join(data_folder, "RDMP", processed_data_file)): + logger.info("Loading processed RDMP file.") + # load data processed csv file + df = pd.read_csv(os.path.join(data_folder, "RDMP", processed_data_file)) + else: + logger.info("Processing RDMP synthetic data") + file_list = [ + "CarotidArteryScan.csv", + "Demography.csv", + "HospitalAdmissions.csv", + ] + files_path = [os.path.join(data_folder, "RDMP", f) for f in file_list] + found = [os.path.exists(file_path) for file_path in files_path] + not_found = [ + file_path for file_path in files_path if not os.path.exists(file_path) + ] - Missing files are: - {not_found} - """ - raise DataNotAvailable(help_message) + if not all(found): + help_message = f""" + Some or all data files do not exist. Please download the files from RDMP, + and place it in the correct folder. - if not os.path.exists( - os.path.join(data_folder, "TexasHospitals", processed_data_file) - ): - logger.info("Processing Texas Hospitals data (2006-2009)") + Missing files are: + {not_found} + """ + raise DataNotAvailable(help_message) # Load data - columns_names = [ - "THCIC_ID", # Provider ID. Unique identifier assigned to the provider by DSHS. - # Hospitals with fewer than 50 discharges have been aggregated into the - # Provider ID '999999' - "DISCHARGE_QTR", # yyyyQm - "TYPE_OF_ADMISSION", - "SOURCE_OF_ADMISSION", - "PAT_ZIP", # Patient’s five-digit ZIP code - "PUBLIC_HEALTH_REGION", # Public Health Region of patient’s address - "PAT_STATUS", # Code indicating patient status as of the ending date of service for - # the period of care reported - "SEX_CODE", - "RACE", - "ETHNICITY", - "LENGTH_OF_STAY", - "PAT_AGE", # Code indicating age of patient in days or years on date of discharge. - "PRINC_DIAG_CODE", # diagnosis code for the principal diagnosis - "E_CODE_1", # external cause of injury - "PRINC_SURG_PROC_CODE", # Code for the principal surgical or other procedure performed - # during the period covered by the bill - "RISK_MORTALITY", # Assignment of a risk of mortality score from the All Patient - # Refined (APR) Diagnosis Related Group (DRG) - "ILLNESS_SEVERITY", # Assignment of a severity of illness score from the All Patient - # Refined (APR) Diagnosis RelatedGroup (DRG - "RECORD_ID", + headers0 = [ + "R_CC_STEN_A", + "R_CC_STEN_B", + "R_CC_STEN_C", + "R_CC_STEN_D", + "R_CC_STEN_S", # pylint: disable=unreachable + "L_IC_STEN_A", + "L_IC_STEN_B", + "L_IC_STEN_C", + "L_IC_STEN_D", + "L_IC_STEN_S", + "R_IC_STEN_A", + "R_IC_STEN_B", + "R_IC_STEN_C", + "R_IC_STEN_D", + "R_IC_STEN_S", + "PatientID", + "L_CC_STEN_S", + "L_CC_STEN_D", + "L_CC_STEN_B", + "L_BD_RATIO", + "L_AC_RATIO", + "R_BD_RATIO", + "R_AC_RATIO", + "L_CC_STENOSIS", + "L_CC_PEAK_SYS", + "L_CC_END_DIA", + "L_IC_STENOSIS", + "L_IC_PEAK_SYS", + "L_IC_END_DIA", + "L_EC_STENOSIS", + "L_PLAQUE", + "L_SYMPTOMS", + "L_BRUIT", + "L_CC_STEN_A", + "ON_STEN_STUDY", + "R_VERT_ARTERY", + "R_BRUIT", + "R_SYMPTOMS", + "R_PLAQUE", + "L_CC_STEN_C", + "R_EC_STENOSIS", + "R_IC_PEAK_SYS", + "R_IC_STENOSIS", + "R_CC_END_DIA", + "R_CC_PEAK_SYS", + "R_CC_STENOSIS", + "L_VERT_ARTERY", + "R_IC_END_DIA", + ] + headers1 = [ + "chi", + "sex", + "current_address_L2", + "date_of_death", + "date_of_birth", + ] + headers2 = [ + "chi", + "AdmissionDate", + "DischargeDate", + "MainCondition", + "OtherCondition1", + "OtherCondition2", + "OtherCondition3", + "MainOperation", + "MainOperationB", + "OtherOperation1", + "OtherOperation1B", + "OtherOperation2", + "OtherOperation2B", + "OtherOperation3", + "OtherOperation3B", ] - # obtain the 100 most frequent procedures - tmp = [] - for f in files_path: - df = [ - pd.read_csv( - ZipFile(f).open(i), sep="\t", usecols=["PRINC_SURG_PROC_CODE"] - ) - for i in ZipFile(f).namelist() - if "base" in i - ] - if len(df) < 1: - print(f"WARNING: {f} could not be loaded.") - else: - df[0].dropna(inplace=True) - tmp.extend(list(df[0].PRINC_SURG_PROC_CODE)) - princ_surg_proc_keep = [k for k, v in Counter(tmp).most_common(10)] - # remove unnecessary variables - del tmp - - # Load the data - tx_data = pd.DataFrame() - for f in files_path: - df = [ - pd.read_csv(ZipFile(f).open(i), sep="\t", usecols=columns_names) - for i in ZipFile(f).namelist() - if "base" in i - ][0] - # keep only those rows with one of the 10 most common principal surgical procedure - df = df[df["PRINC_SURG_PROC_CODE"].isin(princ_surg_proc_keep)] - # clean up data - df.dropna(inplace=True) - df.replace("`", pd.NA, inplace=True) - df.replace("*", pd.NA, inplace=True) - # replace sex to numeric - df.SEX_CODE.replace("M", 0, inplace=True) - df.SEX_CODE.replace("F", 1, inplace=True) - df.SEX_CODE.replace("U", 2, inplace=True) - # set to numerical variable - for d_code in set(list(df.DISCHARGE_QTR)): - df.DISCHARGE_QTR.replace( - d_code, "".join(d_code.split("Q")), inplace=True - ) - df.dropna(inplace=True) - # merge data - tx_data = pd.concat([tx_data, df]) - # remove unnecessary variables - del df - - # Risk mortality, make it binary - # 1 Minor - # 2 Moderate - # 3 Major - # 4 Extreme - tx_data.RISK_MORTALITY.astype(int) - tx_data.RISK_MORTALITY.replace(1, 0, inplace=True) - tx_data.RISK_MORTALITY.replace(2, 0, inplace=True) - tx_data.RISK_MORTALITY.replace(3, 1, inplace=True) - tx_data.RISK_MORTALITY.replace(4, 1, inplace=True) - - # renumber non-numerical codes for cols - cols = ["PRINC_DIAG_CODE", "SOURCE_OF_ADMISSION", "E_CODE_1"] - for col in cols: - tmp = list( - { - x - for x in tx_data[col] - if not str(x).isdigit() and not isinstance(x, float) - } # pylint: disable=consider-using-set-comprehension - ) - n = max( - list( - { - int(x) - for x in tx_data[col] - if str(x).isdigit() or isinstance(x, float) - } # pylint: disable=consider-using-set-comprehension - ) - ) - for i, x in enumerate(tmp): - tx_data[col].replace(x, n + i, inplace=True) - del tmp, n - # set index - tx_data.set_index("RECORD_ID", inplace=True) - # final check and drop of NAs - tx_data.dropna(inplace=True) - # convert all data to numerical - tx_data = tx_data.astype(int) - # save csv file - tx_data.to_csv(os.path.join(data_folder, "TexasHospitals", processed_data_file)) - else: - logger.info("Loading processed Texas Hospitals data (2006-2009) csv file.") - # load texas data processed csv file - tx_data = pd.read_csv( - os.path.join(data_folder, "TexasHospitals", processed_data_file) - ) - - # extract target - var = "RISK_MORTALITY" - labels = tx_data[var] - # Drop the column that contains the labels - tx_data.drop([var], axis=1, inplace=True) - - label_encoder = LabelEncoder() - encoded_labels = label_encoder.fit_transform(labels.values) - labels = pd.DataFrame({var: encoded_labels}) - return (tx_data, labels) + # Process first file + df = pd.read_csv(files_path[0], usecols=headers0, encoding="ISO 8859-1") + # Change name to be the same in all files + df.rename(columns={"PatientID": "chi"}, inplace=True) + df = df.groupby(["chi"]).max() + + # Process second file + df_ = pd.read_csv(files_path[1], usecols=headers1) + df_["date_of_birth"] = pd.to_datetime(df_["date_of_birth"]) + df_["date_of_death"] = pd.to_datetime(df_["date_of_death"]) + df_ = df_.groupby(["chi"]).max() + + # Merge first and second file + df = df.merge(df_, how="inner", on="chi", suffixes=(False, False)) + del df_ + + # Process third file + df__ = pd.read_csv(files_path[2], usecols=headers2, encoding="ISO 8859-1") + df__["AdmissionDate"] = pd.to_datetime(df__["AdmissionDate"]) + df__["DischargeDate"] = pd.to_datetime(df__["DischargeDate"]) + df__["days_in_hospital"] = df__.apply(hospital_days, axis=1) + number_stays = df__.groupby(["chi"]).count()["AdmissionDate"] + dih = df__.groupby(["chi"])["days_in_hospital"].sum() + nc = ( + df__.groupby(["chi"])[[x for x in df__.columns if "Condition" in x]] + .count() + .mean(axis=1) + ) # pylint: disable=line-too-long + no = ( + df__.groupby(["chi"])[[x for x in df__.columns if "Operation" in x]] + .count() + .sum(axis=1) + ) # pylint: disable=line-too-long + df__.drop( + columns=[ + x + for x in df__.columns + if "Date" in x or "Operation" in x or "Condition" in x + ], + inplace=True, + ) # pylint: disable=line-too-long + df__ = pd.DataFrame() + df__["days_in_hospital"] = dih + df__["average_number_conditions"] = nc + df__["total_number_operations"] = no + df__["number_admissions"] = number_stays + + # merge the third file + df = df.merge(df__, how="inner", on="chi", suffixes=(False, False)) + + # Final processing after merging + df["death"] = [1 if x else 0 for x in pd.notna(df.date_of_death)] + df["age"] = df.apply(find_age, axis=1).astype("int64") + df.drop(columns=["date_of_birth", "date_of_death"], inplace=True) + + # save the dataframe + df.to_csv(os.path.join(data_folder, "RDMP", processed_data_file)) + + labels = df["death"] + df.drop(columns=["death"], inplace=True) + + # OneHotEncoder + for col in df.columns: + if df[col].dtypes in ("bool", "object"): + encoder = LabelEncoder() + df[col] = encoder.fit_transform(df[col].values) + + return (df, labels) diff --git a/aisdc/safemodel/__init__.py b/aisdc/safemodel/__init__.py index 0761c7ee..72dd2622 100644 --- a/aisdc/safemodel/__init__.py +++ b/aisdc/safemodel/__init__.py @@ -1,2 +1,3 @@ """Empty file.""" + from .reporting import get_reporting_string diff --git a/aisdc/safemodel/classifiers/__init__.py b/aisdc/safemodel/classifiers/__init__.py index 729c5519..c6b45ee1 100644 --- a/aisdc/safemodel/classifiers/__init__.py +++ b/aisdc/safemodel/classifiers/__init__.py @@ -1,4 +1,5 @@ """Makes class for various models supported.""" + from .dp_svc import DPSVC from .safedecisiontreeclassifier import SafeDecisionTreeClassifier from .safekeras import SafeKerasModel diff --git a/aisdc/safemodel/classifiers/dp_svc.py b/aisdc/safemodel/classifiers/dp_svc.py index fb5b5707..fbc518ac 100644 --- a/aisdc/safemodel/classifiers/dp_svc.py +++ b/aisdc/safemodel/classifiers/dp_svc.py @@ -3,6 +3,7 @@ James Liley 21/03/22. """ + import logging from typing import Any diff --git a/aisdc/safemodel/classifiers/safedecisiontreeclassifier.py b/aisdc/safemodel/classifiers/safedecisiontreeclassifier.py index c22ac4c6..38a688b7 100644 --- a/aisdc/safemodel/classifiers/safedecisiontreeclassifier.py +++ b/aisdc/safemodel/classifiers/safedecisiontreeclassifier.py @@ -129,7 +129,7 @@ def get_tree_k_anonymity(thetree: DecisionTreeClassifier, X: Any) -> int: class SafeDecisionTreeClassifier( SafeModel, DecisionTreeClassifier -): # pylint: disable=too-many-instance-attributes +): # pylint: disable=too-many-instance-attributes, too-many-ancestors """Privacy protected Decision Tree classifier.""" def __init__(self, **kwargs: Any) -> None: diff --git a/aisdc/safemodel/classifiers/safekeras.py b/aisdc/safemodel/classifiers/safekeras.py index 33770987..b4ffe180 100644 --- a/aisdc/safemodel/classifiers/safekeras.py +++ b/aisdc/safemodel/classifiers/safekeras.py @@ -2,6 +2,7 @@ Jim Smith, Andrew McCarty and Richard Preen UWE 2022. """ + # general imports diff --git a/aisdc/safemodel/classifiers/saferandomforestclassifier.py b/aisdc/safemodel/classifiers/saferandomforestclassifier.py index 9bc3a765..cf0d6f25 100644 --- a/aisdc/safemodel/classifiers/saferandomforestclassifier.py +++ b/aisdc/safemodel/classifiers/saferandomforestclassifier.py @@ -54,10 +54,10 @@ def __init__( self.ignore_items = [ "model_save_file", "ignore_items", - "base_estimator_", # this is an object + "estimator_", # this is an object "timestamp", ] - self.examine_seperately_items = ["estimators_", "base_estimator"] + self.examine_seperately_items = ["estimators_", "estimator"] self.k_anonymity = 0 def additional_checks( # pylint: disable=too-many-nested-blocks,too-many-branches @@ -72,12 +72,12 @@ def additional_checks( # pylint: disable=too-many-nested-blocks,too-many-branch # now the relevant random-forest specific things for item in self.examine_seperately_items: # template for class of things that make up forest - if item == "base_estimator": + if item == "estimator": if type(curr_separate[item]) != type(saved_separate[item]): # msg += get_reporting_string(name="basic_params_differ",length=1) msg += get_reporting_string( name="param_changed_from_to", - key="base_estimator", + key="estimator", val=saved_separate[item], cur_val=curr_separate[item], ) diff --git a/aisdc/safemodel/classifiers/safetf.py b/aisdc/safemodel/classifiers/safetf.py index 866d744a..5ee5066c 100644 --- a/aisdc/safemodel/classifiers/safetf.py +++ b/aisdc/safemodel/classifiers/safetf.py @@ -3,7 +3,6 @@ When ready, linting of the imports will be enabled. """ - # pylint: disable=unused-import from typing import Any diff --git a/development_files/structural_attack.ipynb b/development_files/structural_attack.ipynb index abc0516d..f64020d0 100644 --- a/development_files/structural_attack.ipynb +++ b/development_files/structural_attack.ipynb @@ -757,9 +757,9 @@ "df[\"children\"] = pd.to_numeric(df[\"children\"])\n", "\n", "df[\"children\"] = df.apply(\n", - " lambda row: row[\"children\"]\n", - " if row[\"children\"] in (1, 2, 3)\n", - " else np.random.randint(4, 10),\n", + " lambda row: (\n", + " row[\"children\"] if row[\"children\"] in (1, 2, 3) else np.random.randint(4, 10)\n", + " ),\n", " axis=1,\n", ")\n", "\n", diff --git a/docs/requirements.txt b/docs/requirements.txt deleted file mode 100644 index 91b2b023..00000000 --- a/docs/requirements.txt +++ /dev/null @@ -1,21 +0,0 @@ -dictdiffer==0.9.0 -fpdf==1.7.2 -joblib==1.1.1 -matplotlib==3.7.1 -multiprocess==0.70.12.2 -numpy==1.22.0 -numpydoc==1.5.0 -pandas==1.5.3 -scikit_learn==1.1.3 -scipy==1.9.0 -sphinx-autopackagesummary==1.3 -sphinx-issues==3.0.1 -sphinx-prompt==1.6.0 -sphinx-rtd-theme==1.2.0 -sphinx==6.0.0 -tensorflow==2.12.0 -tensorflow_privacy==0.8.10 -pypdf~=3.12.2 -xgboost~=1.7.6 -statsmodels==0.13.5 -acro==0.4.3 diff --git a/docs/source/conf.py b/docs/source/conf.py index 102f6c2a..e5eeee4d 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -11,9 +11,9 @@ # -- Project information ----------------------------------------------------- project = "GRAIMATTER" -copyright = "2023, GRAIMATTER and SACRO Project Team" +copyright = "2024, GRAIMATTER and SACRO Project Team" author = "GRAIMATTER and SACRO Project Team" -release = "1.1.2" +release = "1.1.3" # -- General configuration --------------------------------------------------- diff --git a/examples/lira_attack_example.py b/examples/lira_attack_example.py index 7e70c15b..3da263d7 100644 --- a/examples/lira_attack_example.py +++ b/examples/lira_attack_example.py @@ -28,6 +28,7 @@ Invoke this code from the root AI-SDC folder with python -m examples.lira_attack_example """ + # pylint: disable = duplicate-code import json diff --git a/examples/safemodel_attack_integration_bothcalls.py b/examples/safemodel_attack_integration_bothcalls.py index b4b9a41b..0ec4a808 100644 --- a/examples/safemodel_attack_integration_bothcalls.py +++ b/examples/safemodel_attack_integration_bothcalls.py @@ -2,6 +2,7 @@ Invoke this code from the root AI-SDC folder with python -m examples.safemodel_attack_integration_bothcalls. """ + import logging import numpy as np diff --git a/examples/worst_case_attack_example.py b/examples/worst_case_attack_example.py index 3da7bdba..aca768dc 100644 --- a/examples/worst_case_attack_example.py +++ b/examples/worst_case_attack_example.py @@ -19,6 +19,7 @@ Invoke this code from the root AI-SDC folder with python -m examples.worst_case_attack_example """ + import json import os import sys diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 103902b1..00000000 --- a/requirements.txt +++ /dev/null @@ -1,15 +0,0 @@ -dictdiffer~=0.9.0 -fpdf~=1.7.2 -joblib~=1.3 -multiprocess~=0.70.15 -numpy~=1.23.1 -pandas~=1.5.3 -scikit_learn~=1.1.3 -scipy~=1.10 -tensorflow~=2.12.0 -tensorflow_privacy==0.8.10 -uuid~=1.30 -pypdf~=3.16 -xgboost~=1.7.6 -statsmodels==0.13.5 -acro==0.4.3 diff --git a/setup.py b/setup.py index e1975090..cd1da5bb 100644 --- a/setup.py +++ b/setup.py @@ -7,9 +7,38 @@ this_directory = Path(__file__).parent long_description = (this_directory / "README.md").read_text() +ATTACKS_REQS = [ + "acro==0.4.5", + "fpdf", + "pypdf", + "multiprocess", + "scikit-learn", + "xgboost", +] + +SAFEMODEL_REQS = [ + "tensorflow>=2.14,<2.15", + "tensorflow-privacy==0.9.0", + "dictdiffer", +] + +DOC_REQS = [ + "numpydoc", + "sphinx-autopackagesummary", + "sphinx-issues", + "sphinx-prompt", + "sphinx-rtd-theme", + "sphinx", +] + +TEST_REQS = [ + "pytest", + "pytest-cov", +] + setup( name="aisdc", - version="1.1.2", + version="1.1.3", license="MIT", maintainer="Jim Smith", maintainer_email="james.smith@uwe.ac.uk", @@ -19,36 +48,22 @@ url="https://github.com/AI-SDC/AI-SDC", packages=find_packages(exclude=["tests"]), package_data={"aisdc.safemodel": ["rules.json"]}, - python_requires=">=3.8,<3.11", - install_requires=[ - "dictdiffer~=0.9.0", - "fpdf~=1.7.2", - "joblib~=1.3", - "multiprocess~=0.70.15", - "numpy~=1.23.1", - "pandas~=1.5.3", - "scikit_learn~=1.1.3", - "scipy~=1.10", - "tensorflow-probability==0.15.0; python_version < '3.9'", - "tensorflow~=2.10.0; python_version < '3.9'", - "tensorflow~=2.12.0; python_version >= '3.9'", - "tensorflow_privacy==0.7.3; python_version < '3.9'", - "tensorflow_privacy==0.8.10; python_version >= '3.9'", - "uuid~=1.30", - "pypdf~=3.16", - "xgboost~=1.7.6", - "statsmodels==0.13.5", - "acro==0.4.3", - ], + python_requires=">=3.9,<3.12", + install_requires=ATTACKS_REQS, + extras_require={ + "safemodel": SAFEMODEL_REQS, + "doc": SAFEMODEL_REQS + DOC_REQS, + "test": SAFEMODEL_REQS + TEST_REQS, + }, classifiers=[ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Natural Language :: English", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: Scientific/Engineering :: Information Analysis", diff --git a/tests/attacks/__init__.py b/tests/attacks/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/test_attack_report_formatter.py b/tests/attacks/test_attack_report_formatter.py similarity index 98% rename from tests/test_attack_report_formatter.py rename to tests/attacks/test_attack_report_formatter.py index 710b6a75..864814e2 100644 --- a/tests/test_attack_report_formatter.py +++ b/tests/attacks/test_attack_report_formatter.py @@ -140,6 +140,16 @@ def test_json_formatter(self): clean_up(test_filename) + def test_pretty_print(self): + """Test which tests the pretty_print function with nested dictionaries.""" + example_report = { + "example_a": "example_value", + "example_b": {"A": 1.0, "B": 1.0}, + } + + g = GenerateTextReport() + g.pretty_print(example_report, "Example Title") + def test_process_attack_target_json(self): """Test which tests the process_attack_target_json function.""" target_report = get_target_report() diff --git a/tests/attacks/test_attacks_target.py b/tests/attacks/test_attacks_target.py new file mode 100644 index 00000000..8a51d79b --- /dev/null +++ b/tests/attacks/test_attacks_target.py @@ -0,0 +1,97 @@ +"""Code to test the file attacks/target.py.""" + +from __future__ import annotations + +import builtins +import io +import os + +import numpy as np +import pytest +from sklearn.ensemble import RandomForestClassifier + +from aisdc.attacks.target import Target + +from ..common import clean, get_target + +# pylint: disable=redefined-outer-name + +RES_DIR = "save_test" + + +def patch_open(open_func, files): + """Helper function for cleaning up created files.""" + + def open_patched( # pylint: disable=too-many-arguments + path, + mode="r", + buffering=-1, + encoding=None, + errors=None, + newline=None, + closefd=True, + opener=None, + ): + if "w" in mode and not os.path.isfile(path): + files.append(path) + return open_func( + path, + mode=mode, + buffering=buffering, + encoding=encoding, + errors=errors, + newline=newline, + closefd=closefd, + opener=opener, + ) + + return open_patched + + +@pytest.fixture +def cleanup_files(monkeypatch): + """Automatically remove created files.""" + files = [] + monkeypatch.setattr(builtins, "open", patch_open(builtins.open, files)) + monkeypatch.setattr(io, "open", patch_open(io.open, files)) + yield + for file in files: + try: + os.remove(file) + except FileNotFoundError: # pragma: no cover + pass + + +def test_target(cleanup_files): # pylint:disable=too-many-locals,unused-argument + """ + Returns a randomly sampled 10+10% of + the nursery data set as a Target object + if needed fetches it from openml and saves. it. + """ + target = get_target(model=RandomForestClassifier(n_estimators=5, max_depth=5)) + + # [Researcher] Saves the target model and data + target.save(RES_DIR) + + # [TRE] Loads the target model and data + tre_target = Target() + tre_target.load(RES_DIR) + + assert tre_target.model.get_params() == target.model.get_params() + assert tre_target.name == target.name + assert tre_target.features == target.features + assert tre_target.n_samples == target.n_samples + assert tre_target.n_samples_orig == target.n_samples_orig + assert tre_target.n_features == target.n_features + assert np.array_equal(tre_target.x_train, target.x_train) + assert np.array_equal(tre_target.y_train, target.y_train) + assert np.array_equal(tre_target.x_test, target.x_test) + assert np.array_equal(tre_target.y_test, target.y_test) + assert np.array_equal(tre_target.x_orig, target.x_orig) + assert np.array_equal(tre_target.y_orig, target.y_orig) + assert np.array_equal(tre_target.x_train_orig, target.x_train_orig) + assert np.array_equal(tre_target.y_train_orig, target.y_train_orig) + assert np.array_equal(tre_target.x_test_orig, target.x_test_orig) + assert np.array_equal(tre_target.y_test_orig, target.y_test_orig) + + clean(RES_DIR) diff --git a/tests/test_attribute_inference_attack.py b/tests/attacks/test_attribute_inference_attack.py similarity index 89% rename from tests/test_attribute_inference_attack.py rename to tests/attacks/test_attribute_inference_attack.py index f07b997d..9e2deea3 100644 --- a/tests/test_attribute_inference_attack.py +++ b/tests/attacks/test_attribute_inference_attack.py @@ -12,17 +12,10 @@ import json import os -import shutil import sys import unittest -# ignore unused imports because it depends on whether data file is present -from sklearn.datasets import fetch_openml # pylint:disable=unused-import from sklearn.ensemble import RandomForestClassifier -from sklearn.preprocessing import ( # pylint:disable=unused-import - LabelEncoder, - OneHotEncoder, -) from aisdc.attacks import attribute_attack # pylint: disable = import-error from aisdc.attacks.attribute_attack import ( @@ -30,7 +23,8 @@ _infer_categorical, _unique_max, ) -from tests.test_attacks_via_safemodel import get_target + +from ..common import clean, get_target # pylint: disable = duplicate-code @@ -38,13 +32,6 @@ class TestAttributeInferenceAttack(unittest.TestCase): """Class which tests the AttributeInferenceAttack module.""" - def _cleanup_file(self, name: str): - """Removes unwanted files or directory.""" - if os.path.exists(name) and os.path.isfile(name): # h5 - os.remove(name) - elif os.path.exists(name) and os.path.isdir(name): # tf - shutil.rmtree(name) - def _common_setup(self): """Basic commands to get ready to test some code.""" model = RandomForestClassifier(bootstrap=False) @@ -114,6 +101,7 @@ def test_continuous_via_modified_bounds_risk(self): # Check the value of the returned parameters self.assertEqual(0.0, returned["train"]) self.assertEqual(0.0, returned["test"]) + clean("output_attribute") # test below covers a lot of the plotting etc. def test_AIA_on_nursery(self): @@ -172,4 +160,4 @@ def test_cleanup(self): "output_attribute", ) for fname in files_made: - self._cleanup_file(fname) + clean(fname) diff --git a/tests/test_data_interface.py b/tests/attacks/test_data_interface.py similarity index 100% rename from tests/test_data_interface.py rename to tests/attacks/test_data_interface.py diff --git a/tests/test_failfast.py b/tests/attacks/test_failfast.py similarity index 100% rename from tests/test_failfast.py rename to tests/attacks/test_failfast.py diff --git a/tests/test_lira_attack.py b/tests/attacks/test_lira_attack.py similarity index 99% rename from tests/test_lira_attack.py rename to tests/attacks/test_lira_attack.py index 32a61d8b..7b4f4599 100644 --- a/tests/test_lira_attack.py +++ b/tests/attacks/test_lira_attack.py @@ -1,6 +1,7 @@ """Test_lira_attack.py Copyright (C) Jim Smith2022 . """ + # pylint: disable = duplicate-code from __future__ import annotations diff --git a/tests/test_metrics.py b/tests/attacks/test_metrics.py similarity index 100% rename from tests/test_metrics.py rename to tests/attacks/test_metrics.py diff --git a/tests/test_multiple_attacks.py b/tests/attacks/test_multiple_attacks.py similarity index 99% rename from tests/test_multiple_attacks.py rename to tests/attacks/test_multiple_attacks.py index 970acfe4..bead2bcd 100644 --- a/tests/test_multiple_attacks.py +++ b/tests/attacks/test_multiple_attacks.py @@ -30,7 +30,8 @@ ConfigFile, MultipleAttacks, ) -from tests.test_attacks_via_safemodel import get_target + +from ..common import get_target # pylint: disable = duplicate-code diff --git a/tests/test_structural_attack.py b/tests/attacks/test_structural_attack.py similarity index 96% rename from tests/test_structural_attack.py rename to tests/attacks/test_structural_attack.py index c76728c7..436925cf 100644 --- a/tests/test_structural_attack.py +++ b/tests/attacks/test_structural_attack.py @@ -5,12 +5,9 @@ from __future__ import annotations import json -import os -import shutil import sys from unittest.mock import patch -# import numpy as np import pytest from sklearn.datasets import load_breast_cancer from sklearn.ensemble import AdaBoostClassifier, RandomForestClassifier @@ -22,14 +19,7 @@ import aisdc.attacks.structural_attack as sa from aisdc.attacks.target import Target - -def clean_up(name): - """Removes unwanted files or directory.""" - if os.path.exists(name): - if os.path.isfile(name): - os.remove(name) - elif os.path.isdir(name): - shutil.rmtree(name) +from ..common import clean def get_target(modeltype: str, **kwparams: dict) -> Target: @@ -218,7 +208,7 @@ def test_adaboost(): # 'non' disclosive' # - base estimator =None => DecisionTreeClassifier with max_depth 1 # also set THRESHOLD to 4 - param_dict = {"n_estimators": 2, "base_estimator": None} + param_dict = {"n_estimators": 2, "estimator": None} target = get_target("adaboost", **param_dict) myattack = sa.StructuralAttack() myattack.THRESHOLD = 2 @@ -233,7 +223,7 @@ def test_adaboost(): # highly disclosive kwargs = {"max_depth": None, "min_samples_leaf": 2} param_dict2 = { - "base_estimator": DecisionTreeClassifier(**kwargs), + "estimator": DecisionTreeClassifier(**kwargs), "n_estimators": 1000, } target = get_target("adaboost", **param_dict2) @@ -367,6 +357,7 @@ def test_main_example(): with patch.object(sys, "argv", testargs): sa.main() - clean_up("dt.sav") - clean_up("test_output_sa") - clean_up("config_structural_test.json") + clean("dt.sav") + clean("test_output_sa") + clean("config_structural_test.json") + clean("outputs_structural") diff --git a/tests/test_worst_case_attack.py b/tests/attacks/test_worst_case_attack.py similarity index 97% rename from tests/test_worst_case_attack.py rename to tests/attacks/test_worst_case_attack.py index 935455a1..1ba1b7f5 100644 --- a/tests/test_worst_case_attack.py +++ b/tests/attacks/test_worst_case_attack.py @@ -269,7 +269,7 @@ def test_attack_data_prep(): mi_x, mi_y = attack_obj._prepare_attack_data( # pylint: disable=protected-access train_preds, test_preds ) - np.testing.assert_array_equal(mi_y, np.array([1, 1, 0, 0], np.int)) + np.testing.assert_array_equal(mi_y, np.array([1, 1, 0, 0], int)) # Test the x data produced. Each row should be sorted in descending order np.testing.assert_array_equal(mi_x, np.array([[1, 0], [1, 0], [2, 0], [2, 0]])) # With sort_probs = False, the rows of x should not be sorted @@ -277,7 +277,7 @@ def test_attack_data_prep(): mi_x, mi_y = attack_obj._prepare_attack_data( # pylint: disable=protected-access train_preds, test_preds ) - np.testing.assert_array_equal(mi_y, np.array([1, 1, 0, 0], np.int)) + np.testing.assert_array_equal(mi_y, np.array([1, 1, 0, 0], int)) np.testing.assert_array_equal(mi_x, np.array([[1, 0], [0, 1], [2, 0], [0, 2]])) @@ -295,7 +295,7 @@ def test_attack_data_prep_with_correct_feature(): mi_x, mi_y = attack_obj._prepare_attack_data( # pylint: disable=protected-access train_preds, test_preds, train_correct=train_correct, test_correct=test_correct ) - np.testing.assert_array_equal(mi_y, np.array([1, 1, 0, 0], np.int)) + np.testing.assert_array_equal(mi_y, np.array([1, 1, 0, 0], int)) # Test the x data produced. Each row should be sorted in descending order np.testing.assert_array_equal( mi_x, np.array([[1, 0, 1], [1, 0, 0], [2, 0, 0], [2, 0, 1]]) @@ -308,7 +308,7 @@ def test_attack_data_prep_with_correct_feature(): mi_x, mi_y = attack_obj._prepare_attack_data( # pylint: disable=protected-access train_preds, test_preds, train_correct=train_correct, test_correct=test_correct ) - np.testing.assert_array_equal(mi_y, np.array([1, 1, 0, 0], np.int)) + np.testing.assert_array_equal(mi_y, np.array([1, 1, 0, 0], int)) np.testing.assert_array_equal( mi_x, np.array([[1, 0, 1], [0, 1, 0], [2, 0, 0], [0, 2, 1]]) ) diff --git a/tests/common.py b/tests/common.py new file mode 100644 index 00000000..3f3ec392 --- /dev/null +++ b/tests/common.py @@ -0,0 +1,110 @@ +"""Common utility functions for testing.""" + +from __future__ import annotations + +import os +import shutil + +import numpy as np +import sklearn +from sklearn.datasets import fetch_openml +from sklearn.model_selection import train_test_split +from sklearn.preprocessing import LabelEncoder, OneHotEncoder + +from aisdc.attacks.target import Target + + +def clean(name): + """Removes unwanted files or directory.""" + if os.path.exists(name): + if os.path.isfile(name): + os.remove(name) + elif os.path.isdir(name): + shutil.rmtree(name) + + +def get_target( # pylint: disable=too-many-locals + model: sklearn.base.BaseEstimator, +) -> Target: + """ + Wrap the model and data in a Target object. + Uses A randomly sampled 10+10% of the nursery data set. + """ + + nursery_data = fetch_openml(data_id=26, as_frame=True) + x = np.asarray(nursery_data.data, dtype=str) + y = np.asarray(nursery_data.target, dtype=str) + # change labels from recommend to priority for the two odd cases + num = len(y) + for i in range(num): + if y[i] == "recommend": + y[i] = "priority" + + indices: list[list[int]] = [ + [0, 1, 2], # parents + [3, 4, 5, 6, 7], # has_nurs + [8, 9, 10, 11], # form + [12, 13, 14, 15], # children + [16, 17, 18], # housing + [19, 20], # finance + [21, 22, 23], # social + [24, 25, 26], # health + [27], # dummy + ] + + # [Researcher] Split into training and test sets + # target model train / test split - these are strings + ( + x_train_orig, + x_test_orig, + y_train_orig, + y_test_orig, + ) = train_test_split( + x, + y, + test_size=0.05, + stratify=y, + shuffle=True, + ) + + # now resample the training data reduce number of examples + _, x_train_orig, _, y_train_orig = train_test_split( + x_train_orig, + y_train_orig, + test_size=0.05, + stratify=y_train_orig, + shuffle=True, + ) + + # [Researcher] Preprocess dataset + # one-hot encoding of features and integer encoding of labels + label_enc = LabelEncoder() + feature_enc = OneHotEncoder() + x_train = feature_enc.fit_transform(x_train_orig).toarray() + y_train = label_enc.fit_transform(y_train_orig) + x_test = feature_enc.transform(x_test_orig).toarray() + y_test = label_enc.transform(y_test_orig) + + # add dummy continuous valued attribute from N(0.5,0.05) + dummy_tr = 0.5 + 0.05 * np.random.randn(x_train.shape[0]) + dummy_te = 0.5 + 0.05 * np.random.randn(x_test.shape[0]) + dummy_all = np.hstack((dummy_tr, dummy_te)).reshape(-1, 1) + dummy_tr = dummy_tr.reshape(-1, 1) + dummy_te = dummy_te.reshape(-1, 1) + + x_train = np.hstack((x_train, dummy_tr)) + x_train_orig = np.hstack((x_train_orig, dummy_tr)) + x_test = np.hstack((x_test, dummy_te)) + x_test_orig = np.hstack((x_test_orig, dummy_te)) + xmore = np.concatenate((x_train_orig, x_test_orig)) + n_features = np.shape(x_train_orig)[1] + + # wrap + target = Target(model=model) + target.name = "nursery" + target.add_processed_data(x_train, y_train, x_test, y_test) + for i in range(n_features - 1): + target.add_feature(nursery_data.feature_names[i], indices[i], "onehot") + target.add_feature("dummy", indices[n_features - 1], "float") + target.add_raw_data(xmore, y, x_train_orig, y_train_orig, x_test_orig, y_test_orig) + return target diff --git a/tests/preprocessing/__init__.py b/tests/preprocessing/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/test_loaders.py b/tests/preprocessing/test_loaders.py similarity index 81% rename from tests/test_loaders.py rename to tests/preprocessing/test_loaders.py index 25253fb8..e38b6bb9 100644 --- a/tests/test_loaders.py +++ b/tests/preprocessing/test_loaders.py @@ -17,7 +17,7 @@ from aisdc.preprocessing.loaders import DataNotAvailable, UnknownDataset PROJECT_ROOT_FOLDER = os.path.dirname(os.path.dirname(__file__)) -DATA_FOLDER = os.path.join(PROJECT_ROOT_FOLDER, "tests", "datasets") +DATA_FOLDER = os.path.join(PROJECT_ROOT_FOLDER, "datasets") datasets = ( "mimic2-iaccd", @@ -28,6 +28,10 @@ "indian liver", "synth-ae", "synth-ae-small", + "synth-ae-large", + "synth-ae-extra-large", + "synth-ae-XXL-large", + "RDMP", "nursery", "iris", ) @@ -91,6 +95,22 @@ def test_data_absent(): with pytest.raises(DataNotAvailable): _, _ = loaders.get_data_sklearn("synth-ae-small") + # synthae-large + with pytest.raises(DataNotAvailable): + _, _ = loaders.get_data_sklearn("synth-ae-large") + + # synthae-large + with pytest.raises(DataNotAvailable): + _, _ = loaders.get_data_sklearn("synth-ae-extra-large") + + # synthae-large + with pytest.raises(DataNotAvailable): + _, _ = loaders.get_data_sklearn("synth-ae-XXL") + + # RDMP + with pytest.raises(DataNotAvailable): + _, _ = loaders.get_data_sklearn("RDMP") + # unknown with pytest.raises(UnknownDataset): _, _ = loaders.get_data_sklearn("no such dataset") @@ -169,13 +189,6 @@ def test_indian_liver(): assert y_df.shape == (11, 1) -def test_texas(): - """The texas dataset has quite restrictive licenses arounbd copying. - Therefore it is omitted from the CI testing. - This code was fully tested during the GRAIMatter project. - """ - - def test_synth_ae(): """Tests different versions of the synthetic A&E dataset.""" x_df, y_df = loaders.get_data_sklearn("synth-ae", DATA_FOLDER) @@ -185,3 +198,25 @@ def test_synth_ae(): x_df, y_df = loaders.get_data_sklearn("synth-ae-small", DATA_FOLDER) assert x_df.shape == (8, 16), f"x_df shape is {x_df.shape}" assert y_df.shape == (8, 1) + + x_df, y_df = loaders.get_data_sklearn("synth-ae-large", DATA_FOLDER) + assert x_df.shape == (8, 16), f"x_df shape is {x_df.shape}" + assert y_df.shape == (8, 1) + + x_df, y_df = loaders.get_data_sklearn("synth-ae-extra-large", DATA_FOLDER) + assert x_df.shape == (8, 16), f"x_df shape is {x_df.shape}" + assert y_df.shape == (8, 1) + + x_df, y_df = loaders.get_data_sklearn("synth-ae-XXL", DATA_FOLDER) + assert x_df.shape == (8, 16), f"x_df shape is {x_df.shape}" + assert y_df.shape == (8, 1) + + +# def test_rdmp(): +# """The RDMP dataloader.""" +# x_df, y_df = loaders.get_data_sklearn("RDMP", DATA_FOLDER) + +# assert 'death' not in x_df.columns +# assert 'age' in x_df.columns + +# assert y_df.shape[1] == 1 diff --git a/tests/safemodel/__init__.py b/tests/safemodel/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/test_attacks.py b/tests/safemodel/test_attacks.py similarity index 100% rename from tests/test_attacks.py rename to tests/safemodel/test_attacks.py diff --git a/tests/test_attacks_via_safemodel.py b/tests/safemodel/test_attacks_via_safemodel.py similarity index 54% rename from tests/test_attacks_via_safemodel.py rename to tests/safemodel/test_attacks_via_safemodel.py index 482b33ed..b71d5e0a 100644 --- a/tests/test_attacks_via_safemodel.py +++ b/tests/safemodel/test_attacks_via_safemodel.py @@ -6,114 +6,20 @@ from __future__ import annotations -import os import shutil import numpy as np -import sklearn -from sklearn.datasets import fetch_openml -from sklearn.model_selection import train_test_split -from sklearn.preprocessing import LabelEncoder, OneHotEncoder from aisdc.attacks import attribute_attack, likelihood_attack, worst_case_attack -from aisdc.attacks.target import Target from aisdc.safemodel.classifiers import SafeDecisionTreeClassifier +from ..common import clean, get_target + # pylint: disable=too-many-locals,bare-except,duplicate-code,unnecessary-dunder-call RES_DIR = "RES" -def clean(): - """Removes unwanted results.""" - if os.path.exists(RES_DIR): - shutil.rmtree(RES_DIR) - - -def get_target(model: sklearn.base.BaseEstimator) -> Target: - """Wrap the model and data in a Target object. - Uses A randomly sampled 10+10% of the nursery data set. - """ - - nursery_data = fetch_openml(data_id=26, as_frame=True) - x = np.asarray(nursery_data.data, dtype=str) - y = np.asarray(nursery_data.target, dtype=str) - # change labels from recommend to priority for the two odd cases - num = len(y) - for i in range(num): - if y[i] == "recommend": - y[i] = "priority" - - indices: list[list[int]] = [ - [0, 1, 2], # parents - [3, 4, 5, 6, 7], # has_nurs - [8, 9, 10, 11], # form - [12, 13, 14, 15], # children - [16, 17, 18], # housing - [19, 20], # finance - [21, 22, 23], # social - [24, 25, 26], # health - [27], # dummy - ] - - # [Researcher] Split into training and test sets - # target model train / test split - these are strings - ( - x_train_orig, - x_test_orig, - y_train_orig, - y_test_orig, - ) = train_test_split( - x, - y, - test_size=0.05, - stratify=y, - shuffle=True, - ) - - # now resample the training data reduce number of examples - _, x_train_orig, _, y_train_orig = train_test_split( - x_train_orig, - y_train_orig, - test_size=0.05, - stratify=y_train_orig, - shuffle=True, - ) - - # [Researcher] Preprocess dataset - # one-hot encoding of features and integer encoding of labels - label_enc = LabelEncoder() - feature_enc = OneHotEncoder() - x_train = feature_enc.fit_transform(x_train_orig).toarray() - y_train = label_enc.fit_transform(y_train_orig) - x_test = feature_enc.transform(x_test_orig).toarray() - y_test = label_enc.transform(y_test_orig) - - # add dummy continuous valued attribute from N(0.5,0.05) - dummy_tr = 0.5 + 0.05 * np.random.randn(x_train.shape[0]) - dummy_te = 0.5 + 0.05 * np.random.randn(x_test.shape[0]) - dummy_all = np.hstack((dummy_tr, dummy_te)).reshape(-1, 1) - dummy_tr = dummy_tr.reshape(-1, 1) - dummy_te = dummy_te.reshape(-1, 1) - - x_train = np.hstack((x_train, dummy_tr)) - x_train_orig = np.hstack((x_train_orig, dummy_tr)) - x_test = np.hstack((x_test, dummy_te)) - x_test_orig = np.hstack((x_test_orig, dummy_te)) - xmore = np.concatenate((x_train_orig, x_test_orig)) - n_features = np.shape(x_train_orig)[1] - - # wrap - target = Target(model=model) - target.name = "nursery" - target.add_processed_data(x_train, y_train, x_test, y_test) - for i in range(n_features - 1): - target.add_feature(nursery_data.feature_names[i], indices[i], "onehot") - target.add_feature("dummy", indices[n_features - 1], "float") - target.add_raw_data(xmore, y, x_train_orig, y_train_orig, x_test_orig, y_test_orig) - return target - - def test_attacks_via_request_release(): """Make vulnerable,hacked model then call request_release.""" # build a broken model and hack it so lots of reasons to fail and be vulnerable @@ -123,7 +29,7 @@ def test_attacks_via_request_release(): model.fit(target.x_train, target.y_train) model.min_samples_leaf = 10 model.request_release(path=RES_DIR, ext="pkl", target=target) - clean() + clean(RES_DIR) def test_run_attack_lira(): @@ -138,7 +44,7 @@ def test_run_attack_lira(): print(np.unique(target.y_test, return_counts=True)) print(np.unique(model.predict(target.x_test), return_counts=True)) metadata = model.run_attack(target, "lira", RES_DIR, "lira_res") - clean() + clean(RES_DIR) assert len(metadata) > 0 # something has been added @@ -150,7 +56,7 @@ def test_run_attack_worstcase(): _, disclosive = model.preliminary_check() assert not disclosive metadata = model.run_attack(target, "worst_case", RES_DIR, "wc_res") - clean() + clean(RES_DIR) assert len(metadata) > 0 # something has been added @@ -162,7 +68,7 @@ def test_run_attack_attribute(): _, disclosive = model.preliminary_check() assert not disclosive metadata = model.run_attack(target, "attribute", RES_DIR, "attr_res") - clean() + clean(RES_DIR) assert len(metadata) > 0 # something has been added @@ -203,5 +109,5 @@ def test_run_attack_unknown(): target = get_target(model) model.fit(target.x_train, target.y_train) metadata = model.run_attack(target, "unknown", RES_DIR, "unk") - clean() + clean(RES_DIR) assert metadata["outcome"] == "unrecognised attack type requested" diff --git a/tests/test_safedecisiontreeclassifier.py b/tests/safemodel/test_safedecisiontreeclassifier.py similarity index 100% rename from tests/test_safedecisiontreeclassifier.py rename to tests/safemodel/test_safedecisiontreeclassifier.py diff --git a/tests/test_safekeras2.py b/tests/safemodel/test_safekeras2.py similarity index 99% rename from tests/test_safekeras2.py rename to tests/safemodel/test_safekeras2.py index af6b841f..5fac1e27 100644 --- a/tests/test_safekeras2.py +++ b/tests/safemodel/test_safekeras2.py @@ -7,6 +7,7 @@ import warnings import numpy as np +import pytest import tensorflow as tf from sklearn import datasets from sklearn.model_selection import train_test_split @@ -424,8 +425,8 @@ def test_keras_model_compiled_as_DP(): right_epsilon = 20.363059561511612 model.check_epsilon(X.shape[0], 20, 10) - assert ( - model.current_epsilon == right_epsilon + assert model.current_epsilon == pytest.approx( + right_epsilon, 0.01 ), "failed check for epsilon after compilation" # check this works diff --git a/tests/test_safemodel.py b/tests/safemodel/test_safemodel.py similarity index 99% rename from tests/test_safemodel.py rename to tests/safemodel/test_safemodel.py index 726619b3..e2761c8e 100644 --- a/tests/test_safemodel.py +++ b/tests/safemodel/test_safemodel.py @@ -14,6 +14,8 @@ from aisdc.safemodel.reporting import get_reporting_string from aisdc.safemodel.safemodel import SafeModel +from ..common import clean + notok_start = get_reporting_string(name="warn_possible_disclosure_risk") ok_start = get_reporting_string(name="within_recommended_ranges") @@ -554,3 +556,5 @@ def test_request_release_without_attacks(): "reason": reason, "timestamp": model.timestamp, } in json_data["safemodel"] + + clean(RES_DIR) diff --git a/tests/test_saferandomforestclassifier.py b/tests/safemodel/test_saferandomforestclassifier.py similarity index 97% rename from tests/test_saferandomforestclassifier.py rename to tests/safemodel/test_saferandomforestclassifier.py index 7b7db70e..acc8b6ec 100644 --- a/tests/test_saferandomforestclassifier.py +++ b/tests/safemodel/test_saferandomforestclassifier.py @@ -163,7 +163,7 @@ def test_randomforest_hacked_postfit(): ) part3 = "" # get_reporting_string( # name="param_changed_from_to", - # key="base_estimator", + # key="estimator", # val="DecisionTreeClassifier()", # cur_val="DecisionTreeClassifier()", # ) @@ -196,9 +196,9 @@ def test_randomforest_modeltype_changed(): x, y = get_data() model = SafeRandomForestClassifier(random_state=1, n_estimators=5) correct_msg = "" - # check code that tests base_estimator_ + # check code that tests estimator_ model.fit(x, y) - model.base_estimator = "DummyClassifier()" + model.estimator = "DummyClassifier()" # hide some data for i in range(5): # changed lengths get picked up in different test @@ -209,11 +209,11 @@ def test_randomforest_modeltype_changed(): correct_msg = get_reporting_string(name="forest_estimators_differ", idx=5) correct_msg += get_reporting_string( name="param_changed_from_to", - key="base_estimator", + key="estimator", val="DecisionTreeClassifier()", cur_val="DummyClassifier()", ) - # correct_msg += ("structure base_estimator has 1 differences: [('change', '', " + # correct_msg += ("structure estimator has 1 differences: [('change', '', " # "(DecisionTreeClassifier(), DecisionTreeClassifier()))]" # ) print(f"Correct: {correct_msg} Actual: {msg}") @@ -280,7 +280,7 @@ def test_randomforest_hacked_postfit_trees_swapped(): part3 = get_reporting_string(name="forest_estimators_differ", idx=5) part4 = "" # get_reporting_string( # name="param_changed_from_to", - # key="base_estimator", + # key="estimator", # val="DecisionTreeClassifier()", # cur_val="DecisionTreeClassifier()", # ) @@ -311,7 +311,7 @@ def test_randomforest_hacked_postfit_moretrees(): part3 = get_reporting_string(name="different_num_estimators", num1=10, num2=5) part4 = "" # get_reporting_string( # name="param_changed_from_to", - # key="base_estimator", + # key="estimator", # val="DecisionTreeClassifier()", # cur_val="DecisionTreeClassifier()", # ) diff --git a/tests/test_safesvc.py b/tests/safemodel/test_safesvc.py similarity index 100% rename from tests/test_safesvc.py rename to tests/safemodel/test_safesvc.py diff --git a/tests/test_safetf.py b/tests/safemodel/test_safetf.py similarity index 100% rename from tests/test_safetf.py rename to tests/safemodel/test_safetf.py diff --git a/tests/test_attacks_target.py b/tests/test_attacks_target.py deleted file mode 100644 index fdde3ba9..00000000 --- a/tests/test_attacks_target.py +++ /dev/null @@ -1,166 +0,0 @@ -"""Code to test the file attacks/target.py.""" - -from __future__ import annotations - -import builtins -import io -import os - -import numpy as np -import pytest -from sklearn.datasets import fetch_openml -from sklearn.ensemble import RandomForestClassifier -from sklearn.model_selection import train_test_split -from sklearn.preprocessing import LabelEncoder, OneHotEncoder - -from aisdc.attacks.target import Target - -# pylint: disable=redefined-outer-name - - -def patch_open(open_func, files): - """Helper function for cleaning up created files.""" - - def open_patched( # pylint: disable=too-many-arguments - path, - mode="r", - buffering=-1, - encoding=None, - errors=None, - newline=None, - closefd=True, - opener=None, - ): - if "w" in mode and not os.path.isfile(path): - files.append(path) - return open_func( - path, - mode=mode, - buffering=buffering, - encoding=encoding, - errors=errors, - newline=newline, - closefd=closefd, - opener=opener, - ) - - return open_patched - - -@pytest.fixture -def cleanup_files(monkeypatch): - """Automatically remove created files.""" - files = [] - monkeypatch.setattr(builtins, "open", patch_open(builtins.open, files)) - monkeypatch.setattr(io, "open", patch_open(io.open, files)) - yield - for file in files: - try: - os.remove(file) - except FileNotFoundError: # pragma: no cover - pass - - -def test_target(cleanup_files): # pylint:disable=too-many-locals,unused-argument - """ - Returns a randomly sampled 10+10% of - the nursery data set as a Target object - if needed fetches it from openml and saves. it. - """ - - nursery_data = fetch_openml(data_id=26, as_frame=True) - x = np.asarray(nursery_data.data, dtype=str) - y = np.asarray(nursery_data.target, dtype=str) - # change labels from recommend to priority for the two odd cases - num = len(y) - for i in range(num): - if y[i] == "recommend": - y[i] = "priority" - - indices: list[list[int]] = [ - [0, 1, 2], # parents - [3, 4, 5, 6, 7], # has_nurs - [8, 9, 10, 11], # form - [12, 13, 14, 15], # children - [16, 17, 18], # housing - [19, 20], # finance - [21, 22, 23], # social - [24, 25, 26], # health - [27], # dummy - ] - - # [Researcher] Split into training and test sets - # target model train / test split - these are strings - ( - x_train_orig, - x_test_orig, - y_train_orig, - y_test_orig, - ) = train_test_split( - x, - y, - test_size=0.05, - stratify=y, - shuffle=True, - ) - - # now resample the training data reduce number of examples - _, x_train_orig, _, y_train_orig = train_test_split( - x_train_orig, - y_train_orig, - test_size=0.05, - stratify=y_train_orig, - shuffle=True, - ) - - # [Researcher] Preprocess dataset - # one-hot encoding of features and integer encoding of labels - label_enc = LabelEncoder() - feature_enc = OneHotEncoder() - x_train = feature_enc.fit_transform(x_train_orig).toarray() - y_train = label_enc.fit_transform(y_train_orig) - x_test = feature_enc.transform(x_test_orig).toarray() - y_test = label_enc.transform(y_test_orig) - - # add dummy continuous valued attribute - dummy_tr = np.random.rand(x_train.shape[0], 1) - dummy_te = np.random.rand(x_test.shape[0], 1) - x_train = np.hstack((x_train, dummy_tr)) - x_train_orig = np.hstack((x_train_orig, dummy_tr)) - x_test = np.hstack((x_test, dummy_te)) - x_test_orig = np.hstack((x_test_orig, dummy_te)) - - n_features = np.shape(x_train_orig)[1] - - # [Researcher] Wrap the data in a Target object - target = Target(model=RandomForestClassifier(n_estimators=5, max_depth=5)) - target.name = "nursery" - target.add_processed_data(x_train, y_train, x_test, y_test) - target.add_raw_data(x, y, x_train_orig, y_train_orig, x_test_orig, y_test_orig) - for i in range(n_features - 1): - target.add_feature(nursery_data.feature_names[i], indices[i], "onehot") - target.add_feature("dummy", indices[n_features - 1], "float") - - # [Researcher] Saves the target model and data - target.save("save_test") - - # [TRE] Loads the target model and data - tre_target = Target() - tre_target.load("save_test") - - assert tre_target.model.get_params() == target.model.get_params() - assert tre_target.name == target.name - assert tre_target.features == target.features - assert tre_target.n_samples == target.n_samples - assert tre_target.n_samples_orig == target.n_samples_orig - assert tre_target.n_features == target.n_features - assert np.array_equal(tre_target.x_train, target.x_train) - assert np.array_equal(tre_target.y_train, target.y_train) - assert np.array_equal(tre_target.x_test, target.x_test) - assert np.array_equal(tre_target.y_test, target.y_test) - assert np.array_equal(tre_target.x_orig, target.x_orig) - assert np.array_equal(tre_target.y_orig, target.y_orig) - assert np.array_equal(tre_target.x_train_orig, target.x_train_orig) - assert np.array_equal(tre_target.y_train_orig, target.y_train_orig) - assert np.array_equal(tre_target.x_test_orig, target.x_test_orig) - assert np.array_equal(tre_target.y_test_orig, target.y_test_orig) diff --git a/user_stories/user_stories_example_output/summary_example_output.txt b/user_stories/user_stories_example_output/summary_example_output.txt index a22f8a95..6be0516b 100644 --- a/user_stories/user_stories_example_output/summary_example_output.txt +++ b/user_stories/user_stories_example_output/summary_example_output.txt @@ -7,9 +7,6 @@ min_samples_leaf: 10 n_estimators: 100 ATTACK JSON RESULTS -Final score (scale of 0-5, where 0 is least disclosive and 5 is recommend rejection) -4 - Immediate rejection recommended for the following reason: None diff --git a/user_stories/user_stories_example_output/summary_example_output_description.png b/user_stories/user_stories_example_output/summary_example_output_description.png index 602aaa92237725fb099f42ed87db2d54c9ffd182..d5ba15e1c584c73b40c41000cdaaa07e34aaed94 100644 GIT binary patch delta 146339 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 delta 172780 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

i9OV(dWp)C? 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 *^7gMHV-hwaDt2{f2 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≫2 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 z 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 diff --git a/user_stories/user_story_2/user_story_2_tre.py b/user_stories/user_story_2/user_story_2_tre.py index 3e10cc9a..75400f9d 100644 --- a/user_stories/user_story_2/user_story_2_tre.py +++ b/user_stories/user_story_2/user_story_2_tre.py @@ -8,6 +8,7 @@ NOTE: you should not need to change this file at all, set all parameters via the .yaml file """ + import argparse import importlib import os diff --git a/user_stories/user_story_7/user_story_7_researcher_template.py b/user_stories/user_story_7/user_story_7_researcher_template.py index f16d28e1..52876467 100644 --- a/user_stories/user_story_7/user_story_7_researcher_template.py +++ b/user_stories/user_story_7/user_story_7_researcher_template.py @@ -20,7 +20,6 @@ - Researcher does not save the training/testing data, and therefore the TRE cannot verify the model """ - import logging import os