Skip to content

msnizami/ExpGame

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This Project was Developed as part of the Doctoral Dissertation in the University of Urbino, Italy.

ExpGame (Explanation Game)

This repository provides source code for the Alien Nutri-Solver Framework (A web-based game framework) utilised to conduct the user studies as follows:

Detailed motivation and rationale are explained in the corresponding papers. In short, we provide this framework as a utility to run user studies to perform human level evaluations of counterfactual explanations for machine learning models.

Rough overview of implementation logic

Implementation of the experimental framework follows a clear separation into python-based BackEnd, and a javascript based FronEnd.

I want to replicate the experiments as described in the paper!

Very well! Let's go:

Requirements and prerequisites

There is a list of steps that first need to be done on the BackEnd side before we can go to the Alien Zoo.

  1. Whatever you do, use Python3.
  2. cd BackEnd
  3. Install all requirements as listed in REQUIREMENTS.txt.
  4. Install [dice_ml] (Note: required Python 3.6 or higher!): pip install dice_ml
  5. Setup an MySQL database (databse name, user name and password of your choice). Then, make sure the credentials and database in dbmgr.py (lines 6-10) fit your set up.
  6. Run python crypt.py (generates key pair; relevant for encrypting userId information).
  7. Decide which experiment from our study you want to recreate. The default is Experiment 1, but you can change that via the variable expNo in line 17 in file BackEnd/models.py.

Start up the server

Finally, we can start the server: python server.py The server is listening on port 8888, so pull up a browser and go to the Alien Fitness Hub under localhost:8080/.

Wrapping up, export data, clear database

When you're done, stop the running server with Ctrl+C.

Run BackEnd/db_export.py to export data from the database. This command generates 6 files from the content of the database. For details on these files and coding of respective data, see here.

Finally, when you are done with the code, run python BackEnd/reset_database.py user_name user_pw to reset the database again.

FAQ

I want a different port!

Fair enough: The port can be changed in line 15 in file BackEnd/server.py.

License

This work is licensed under a Creative Commons Attribution 4.0 International License.

CC BY 4.0

About

Explainable AI Game

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published