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.
This section contains basic information and instructions to get started with Trustee.
Trustee supports Python >=3.7
.
Use the following command to install Trustee:
$ pip install trustee
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))
For simple usage examples of Trustee and TrustReport, please check the examples/
directory.
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. |
Library | Supported |
---|---|
scikit-learn | ✅ |
Keras | ✅ |
Tensorflow | ✅ |
PyTorch | ✅ |
AutoGluon | ✅ |
@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}
}