
<div align="center">

<img src="./docs/artwork/header.png" width="350px">

**An Open-Source Framework for Shapley-based value intened intended for data valuation.**

------

<p align="center">
  <a href="#Overview">Overview</a> •
  <a href="#installation">Installation</a> •
  <a href="#use-opendv">How To Use</a>
</p>

</div>

## What's New?

TBD $\text{\color{red}{!in progress}}$

## Overview

**Shapley-based values** are prevalent data valuation approaches, which are attractive for its fair properties (axioms).

The approaches are planned to support including Shapley-based values and some other famous values for data valuation.

Shapley-based values:

- [x] Shapley value
- [x] Beta Shapley value
- [ ] KNN Shapley value
- [ ] Asymmetric Shapley value
- [ ] Robust Shapley value
- [ ] Cosine gradient Shapley value
- [ ] CS-Shapley value
- [ ] Banzhaf value
- [ ] Volumn-based Shapley value

Others:

- [x] LOO
- [ ] DVRL
- [ ] Data-OOB

## What Can You Do via OpenDV?

- Use the implementations of current Shapley-based values.* We have implemented various of Shapley-based values and corresponding SOTA computation techniques. You can easily call and understand these methods.
- Design your own data valuation work. With the extensibility of OpenDV, you can quickly practice your data valuation ideas.

## Installation

**Note: Please use Python 3.10+ for OpenDV**

### Using Pip

Our repo is tested on Python **3.10+**, install OpenDV using pip as follows:




```shell
pip install opendv
```

To play with the latest features, you can also install OpenDV from the source.

### Using Git

Clone the repository from github:

```shell
git clone https://github.com/ZJU-DIVER/OpenDV.git
cd opendv
pip install -r requirements.txt
python setup.py install
```

Modify the code

```shell
python setup.py develop
```

## Use OpenDV

TBD

### Base Concepts

TBD
