Skip to main content

Contextualizing model's decisions with natural language explanations.

Project description

ConteXAI - Contextualizing model's decisions with natural language explanations

ConteXAI is a Python package developed as part of the Data Science Project Competition 2024.

The library links local explainability methods with natural language explanations, allowing users to gain detailed insights into model predictions. By incorporating additional domain knowledge, users can obtain even better insights into the model's predictions.

Install

ConteXAI can be installed using pip:

pip install dscontexai

Generate XAI reports

Using this library, you can fully automatically develop your XAI reports. Currently, it supports SHAP values, which is a local feature importance measure, to which we added textual explanations and domain-related context. The library can be used for binary classification problems, for all models that output probabilities.

The report consists of four main segments:

(1) Description of local feature importances,

(2) Explanation of the instance's prediction,

(3) Visualization of local feature importances,

(4) Explanation of the visualization in natural language and context related to the domain and the prediction.

Report structure

Preparing configuration file

To use this tool with your model and dataset, you need to provide a configuration JSON file for a dataset, structured like the one below.

{
  # domain-based context
  "optimal_values": [
  ...
    [0, 6.5],               # HbA1c level optimal range is from 0 to 6.5
    [100, 140]              # Glucose level optimal range is from 100 to 140 
  ],
  "descriptions": {
    "below_optimal": [
      # Context for feature values falling below the optimal range
    ],
    "optimal": [
      # Context for feature values falling within the optimal range
    ],
    "above_optimal": [
      # Context for feature values falling above the optimal range
    ]
  },
  # Data transformations for feature mapping
  "transformation": {
    "0": ["Man", "Woman"],  # Transformation for Gender
    "1": [],                # No transformation for Age (numeric)
    "2": ["No", "Yes"],     # Transformation for Hypertension
    ...
  },
  "feature_names": [
    "Gender",
    "Age",
    "Hypertension",
    "Heart_disease",
    "Smoking_history",
    "BMI",
    "HbA1c_level",
    "Blood_glucose_level"
  ],
  # variables needed for structuring the description
  "target1": "diabetes",    # Target variable the model is predicting
  "target2": "Person",      # The object representing a sample in a data
  "supporting": ["does", "have"]  # Supporting verbs used in descriptions
}

Running the generation

Once you have model, dataset, and config file ready, to generate the report, you can use the following code snippet:

from dscontexai.generate_report import general

general.generate_report(model_path= "path/to/model.pkl", dataset_path="path/to/data.csv", config="path/to/config.json", idx=sample_idx)

After successful generation, you will find a PDF report in the directory prototype/ under the name output_{sample_idx}.pdf.

Example notebooks

Working example, as well as the example of the generated report and the configuration file, can be found here.

Examples

Examples of the generated reports are shown below. Problem domain was diabetes prediction.

Example 1 Example 2

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

dscontexai-1.0.9.tar.gz (15.4 kB view details)

Uploaded Source

Built Distribution

dscontexai-1.0.9-py3-none-any.whl (17.4 kB view details)

Uploaded Python 3

File details

Details for the file dscontexai-1.0.9.tar.gz.

File metadata

  • Download URL: dscontexai-1.0.9.tar.gz
  • Upload date:
  • Size: 15.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.8.10

File hashes

Hashes for dscontexai-1.0.9.tar.gz
Algorithm Hash digest
SHA256 447dc060566b2f6ef5c7a420fac92fe6c804aad91a8638384f185bfc1dc62c4d
MD5 c41356d55d5f69d4e74a4aca06ac47be
BLAKE2b-256 a9010d7f8b3e0ea6cfe899889aa30212475bc7e204df2a17224ceaff75fa6182

See more details on using hashes here.

File details

Details for the file dscontexai-1.0.9-py3-none-any.whl.

File metadata

  • Download URL: dscontexai-1.0.9-py3-none-any.whl
  • Upload date:
  • Size: 17.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.8.10

File hashes

Hashes for dscontexai-1.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 00acfcf822a9f3b05921f2ecf9ba3a82c2dbfb6e81decfe1383b02fdd32f6ee2
MD5 97bac14657874642d24e29f8368f4e09
BLAKE2b-256 ea208d4fd2cbdc023dd4296c418b4409d12ee5dbfc25a4bf1d6e13534c1b85d8

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