Skip to main content

This package implements the Trustee framework to extract decision tree explanation from black-box ML models.

Project description

Trustee

Downloads

This package implements the trustee framework to extract decision tree explanation from black-box ML models. For more information, please visit the documentation website.

Standard AI/ML development pipeline extended by Trustee. Trustee

Getting Started

This section contains basic information and instructions to get started with Trustee.

Python Version

Trustee supports Python >=3.7.

Install Trustee

Use the following command to install Trustee:

$ pip install trustee

Sample Code

from sklearn import datasets
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report

from trustee import ClassificationTrustee

X, y = datasets.load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.30)

clf = RandomForestClassifier(n_estimators=100)
clf.fit(X_train, y_train)
y_pred = clf.predict(X_test)

trustee = ClassificationTrustee(expert=clf)
trustee.fit(X_train, y_train, num_iter=50, num_stability_iter=10, samples_size=0.3, verbose=True)
dt, pruned_dt, agreement, reward = trustee.explain()
dt_y_pred = dt.predict(X_test)

print("Model explanation global fidelity report:")
print(classification_report(y_pred, dt_y_pred))
print("Model explanation score report:")
print(classification_report(y_test, dt_y_pred))

Usage Examples

For simple usage examples of Trustee and TrustReport, please check the examples/ directory.

Other Use Cases

For other examples and use cases of how Trustee can used to scrutinize ML models, listed in the table below, please check our Use Cases repository.

Use Case Description
heartbleed_case/ Trustee application to a Random Forest Classifier for an Intrustion Detection System, trained with CIC-IDS-2017 dataset pre-computed features.
kitsune_case/ Trustee application to Kitsune model for anomaly detection in network traffic, trained with features extracted from Kitsune's Mirai attack trace.
iot_case/ Trustee application to Random Forest Classifier to distguish IoT devices, trained with features extracted from the pcaps from the UNSW IoT Dataset.
moon_star_case/ Trustee application to Neural Network Moon and Stars Shortcut learning toy example.
nprint_ids_case/ Trustee application to the nPrintML AutoGluon Tabular Predictor for an Intrustion Detection System, also trained using pcaps from the CIC-IDS-2017 dataset.
nprint_os_case/ Trustee application to the nPrintML AutoGluon Tabular Predictor for OS Fingerprinting, also trained using with pcaps from the CIC-IDS-2017 dataset.
pensieve_case/ Trustee application to the Pensieve RL model for adaptive bit-rate prediction, and comparison to related work Metis.
vpn_case/ Trustee application the 1D-CNN trained to detect VPN traffic trained with the ISCX VPN-nonVPN dataset.

Supported AI/ML Libraries

Library Supported
scikit-learn :white_check_mark:
Keras :white_check_mark:
Tensorflow :white_check_mark:
PyTorch :white_check_mark:
AutoGluon :white_check_mark:

Citing us

@inproceedings{Jacobs2022,
	title        = {AI/ML and Network Security: The Emperor has no Clothes},
	author       = {A. S. Jacobs and R. Beltiukov and W. Willinger and R. A. Ferreira and A. Gupta and L. Z. Granville},
	year         = 2022,
	booktitle    = {Proceedings of the 2022 ACM SIGSAC Conference on Computer and Communications Security},
	location     = {Los Angeles, CA, USA},
	publisher    = {Association for Computing Machinery},
	address      = {New York, NY, USA},
	series       = {CCS '22}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

trustee-1.1.6.tar.gz (48.1 kB view details)

Uploaded Source

Built Distribution

trustee-1.1.6-py3-none-any.whl (49.0 kB view details)

Uploaded Python 3

File details

Details for the file trustee-1.1.6.tar.gz.

File metadata

  • Download URL: trustee-1.1.6.tar.gz
  • Upload date:
  • Size: 48.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.0 CPython/3.8.12 Darwin/23.3.0

File hashes

Hashes for trustee-1.1.6.tar.gz
Algorithm Hash digest
SHA256 c932c6ebbe83db799c2b940f2060d97cc8feed08301a7427df5d9151b82ac014
MD5 aae9749f71945eb6fabbca97e4447819
BLAKE2b-256 cf1c1706d8c2538aaf28ba700300cc7600c42cc2cbc4b05d3b4f56e06176e288

See more details on using hashes here.

File details

Details for the file trustee-1.1.6-py3-none-any.whl.

File metadata

  • Download URL: trustee-1.1.6-py3-none-any.whl
  • Upload date:
  • Size: 49.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.0 CPython/3.8.12 Darwin/23.3.0

File hashes

Hashes for trustee-1.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 9b41e83703a7a3bd990f29819dec6e2bc625bfa251f56fbd491b6367888687cd
MD5 ade4636cd0fc7f785999cf3d58338f5f
BLAKE2b-256 73fd0ad436ce3830965b3b01b7e90a3fee14431105759a4ce6028bf54df76c6f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page