Skip to main content

veritastool

Project description

Veritas Toolkit

codecov PyPI version Python 3.9 GitHub license Build Status

The purpose of this toolkit is to facilitate the adoption of Veritas Methodology on Fairness Assessment and spur industry development. It will also benefit customers by improving the fairness of financial services delivered by AIDA systems.

Installation

The easiest way to install veritastool is to download it from PyPI. It's going to install the library itself and its prerequisites as well.

pip install veritastool

Then, you will be able to import the library and use its functionalities. Before we do that, we can run some test functions on our sample datasets to see if our codes are performing as expected.

from veritastool.utility import test_function_cs
test_function_cs()

from veritastool.utility import test_function_cm
test_function_cm()

Output:

Initialization

You can now import the custom library that you would to use for diagnosis. In this example we will use the Credit Scoring custom library.

from veritastool import ModelContainer
from veritastool.fairness import CreditScoring

Once the relevant use case object (CreditScoring) and model container (ModelContainer) has been imported, you can upload your contents into the container and initialize the object for diagnosis.

import pickle
import numpy as np

#Load Credit Scoring Test Data
file = "./veritastool/resources/data/credit_score_dict.pickle"
input_file = open(file, "rb")
cs = pickle.load(input_file)

#Reduce into two classes
cs["X_train"]['MARRIAGE'] = cs["X_train"]['MARRIAGE'].replace([0, 3],1)
cs["X_test"]['MARRIAGE'] = cs["X_test"]['MARRIAGE'].replace([0, 3],1)

#Model Container Parameters
y_true = np.array(cs["y_test"])
y_pred = np.array(cs["y_pred"])
y_train = np.array(cs["y_train"])
p_var = ['SEX', 'MARRIAGE']
p_grp = {'SEX': [1], 'MARRIAGE':[1]}
x_train = cs["X_train"]
x_test = cs["X_test"]
model_object = cs["model"]
model_name = "credit scoring"
model_type = "default"
y_prob = cs["y_prob"]

container = ModelContainer(y_true = y_true, y_train = y_train, p_var = p_var, p_grp = p_grp, x_train = x_train,  x_test = x_test, model_object = model_object, model_type  = model_type,model_name =  model_name, y_pred= y_pred, y_prob= y_prob)

cre_sco_obj= CreditScoring(model_params = [container], fair_threshold = 0.43, fair_concern = "eligible", fair_priority = "benefit", fair_impact = "significant", perf_metric_name = "balanced_acc", fair_metric_name = "equal_opportunity")                                                      

API functions

There are four main API functions that the user can execute to obtain the fairness diagnosis of their use cases.

Evaluate

The evaluate API function computes all performance and fairness metrics and renders it in a table format (default). It also highlights the primary performance and fairness metrics (automatic if not specified by user).

cre_sco_obj.evaluate()

Output:

You can also toggle the widget to view your results in a interactive visualization format.

cre_sco_obj.evaluate(visualize = True)

Output:

Tradeoff

Computes trade-off between performance and fairness.

cre_sco_obj.tradeoff()

Output:

Feature Importance

Computes feature importance of protected features using leave one out analysis.

cre_sco_obj.feature_importance()

Output:

Compile

Generates model artifact file in JSON format. This function also runs evaluate(), tradeoff() and feature_importance() if it hasn't already been ran.

cre_sco_obj.compile()

Output:

Model Artifact

A JSON file that stores all the results from evaluate(), tradeoff() and feature_importance().

Output:

License

Veritas Toolkit is licensed under the Apache License, Version 2.0 - see LICENSE for more details.

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

veritastool-0.8.9.1.tar.gz (2.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

veritastool-0.8.9.1-py3-none-any.whl (2.5 MB view details)

Uploaded Python 3

File details

Details for the file veritastool-0.8.9.1.tar.gz.

File metadata

  • Download URL: veritastool-0.8.9.1.tar.gz
  • Upload date:
  • Size: 2.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for veritastool-0.8.9.1.tar.gz
Algorithm Hash digest
SHA256 c30e1bd3860e1a23abd776546f0c52ce7e01af3791b398a35a5c680d68baa168
MD5 81ab79e09077e9033c8a42733bb7ea69
BLAKE2b-256 e50cbd5a5a992cce0764052b02664872fe5e61057f73af62effd0d77250cc5df

See more details on using hashes here.

File details

Details for the file veritastool-0.8.9.1-py3-none-any.whl.

File metadata

  • Download URL: veritastool-0.8.9.1-py3-none-any.whl
  • Upload date:
  • Size: 2.5 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for veritastool-0.8.9.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f2ae9b039d31c85a16ff186d7122255eda97abfa14b36fb947a49259b52396cb
MD5 274e991d206123f6fe1d5b2ed3dce2eb
BLAKE2b-256 27cc288de5c108c714562cabc141e1162e989c6eed1dd386d03b7be009b6d3cd

See more details on using hashes here.

Supported by

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