<a name="readme-top" id="readme-top"></a>
<!-- PROJECT LOGO -->
<a href="https://github.com/opendataval/opendataval">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://github.com/opendataval/opendataval/blob/main/docs/_static/logo-dark-mode.png">
<source media="(prefers-color-scheme: light)" srcset="https://github.com/opendataval/opendataval/blob/main/docs/_static/logo-light-mode.png">
<img alt="Logo toggles light and dark mode" src="https://github.com/opendataval/opendataval/blob/main/docs/_static/logo-light-mode.png" width="300" align="right">
</picture>
</a>
# OpenDataVal: a Unified Benchmark for Data Valuation
<!-- > A unified library for transparent data valuation benchmarks -->
Assessing the quality of individual data points is critical for improving model performance and mitigating biases. However, there is no way to systematically benchmark different algorithims.
**OpenDataVal** is an open-source initiative that with a diverse array of datasets/models (image, NLP, and tabular), data valuation algorithims, and evaluation tasks using just a few lines of code.
**OpenDataVal** also provides a leaderboards for data evaluation tasks. We've curated and added
artificial noise to some datasets. Create your own `DataEvaluator` to top the [leaderboards](https://opendataval.github.io/leaderboards).
| Overview | |
|----------|-|
|**Python**|[![Python Version](https://img.shields.io/badge/python-3.9%20%7C%203.10%20%7C%203.11-blue?style=for-the-badge)](https://www.python.org/)|
|**Dependencies**|[![Pytorch][PyTorch-shield]][PyTorch-url] [![scikit-learn][scikit-learn-shield]][scikit-learn-url] [![numpy][numpy-shield]][numpy-url] [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg?style=for-the-badge&logo=appveyor)](https://github.com/psf/black) |
|**Documentation**| [![Github Pages](https://img.shields.io/badge/github%20pages-121013?style=for-the-badge&logo=github&logoColor=white)](https://opendataval.github.io) |
|**CI/CD**|[![Build][test-shield]][test-url] ![Coverage][coverage_badge] |
|**Issues**| [![Issues][issues-shield]][issues-url] |
|**License**|[![MIT License][license-shield]][license-url]|
<!-- |**Releases**|[![Releases][release-shield]][release-url]| -->
<!-- |**Contributors**|[![Contributors][contributors-shield]][contributors-url]| -->
<!-- |**Citation**| TODO | -->
## :sparkles: Features
| Feature | Status | Links | Notes |
|---------|--------|-------|-------|
| **[Datasets](https://github.com/opendataval/opendataval/tree/main/opendataval/dataloader/readme.md)** | Stable | [Docs](https://opendataval.github.io/opendataval.dataloader.datasets.html#opendataval-dataloader-datasets-package) | Embeddings available for image/NLP datasets |
| **[Models](https://github.com/opendataval/opendataval/tree/main/opendataval/model/readme.md)** | Stable | [Docs](https://opendataval.github.io/opendataval.model.html#module-opendataval.model) | Support available for sk-learn models |
| **[Data Evaluators](https://github.com/opendataval/opendataval/tree/main/opendataval/dataval/readme.md)** | Stable | [Docs](https://opendataval.github.io/opendataval.dataval.html#module-opendataval.dataval) | |
| **[Experiments](https://github.com/opendataval/opendataval/tree/main/opendataval/experiment/readme.md)** | Stable | [Docs](https://opendataval.github.io/opendataval.experiment.html#module-opendataval.experiment) | |
| **[Examples](https://github.com/opendataval/opendataval/tree/main/examples/readme.md)** | Stable | | |
| **[CLI](https://github.com/opendataval/opendataval/tree/main/opendataval/__main__.py)** | Experimental | `opendataval --help` | No support for null values |
<p align="right">(<a href="#readme-top">Back to top</a>)</p>
## :hourglass_flowing_sand: Installation options
1. Install with pip
```sh
pip install opendataval
```
2. Clone the repo and install
```sh
git clone https://github.com/opendataval/opendataval.git
make install
```
a. Install optional dependencies if you're [contributing](https://github.com/opendataval/opendataval/blob/main/CONTRIBUTING.md)
```sh
make install-dev
```
b. If you want to pull in kaggle datasets, I'd reccomend looking how to add a kaggle folder to the current directory. Tutorial [here](https://www.analyticsvidhya.com/blog/2021/04/how-to-download-kaggle-datasets-using-jupyter-notebook/)
<p align="right">(<a href="#readme-top">Back to top</a>)</p>
<!-- USAGE EXAMPLES -->
## :zap: Quick Start
To set up an experiment on DataEvaluators. Feel free to change the source code as needed for a project.
```python
from opendataval.experiment import ExperimentMediator
exper_med = ExperimentMediator.model_factory_setup(
dataset_name='iris',
force_download=False,
train_count=100,
valid_count=50,
test_count=50,
model_name='ClassifierMLP',
train_kwargs={'epochs': 5, 'batch_size': 20},
)
list_of_data_evaluators = [ChildEvaluator(), ...] # Define evaluators here
eval_med = exper_med.compute_data_values(list_of_data_evaluators)
# Runs a discover the noisy data experiment for each DataEvaluator and plots
data, fig = eval_med.plot(discover_corrupted_sample)
# Runs non-plottable experiment
data = eval_method.evaluate(noisy_detection)
```
## :computer: CLI
`opendataval` comes with a quick [CLI](https://github.com/opendataval/opendataval/tree/main/opendataval/__main__.py) tool, The tool is under development and the template for a csv input is found at [`cli.csv`](https://github.com/opendataval/opendataval/tree/main/cli.csv). Note that for kwarg arguments, the input must be valid json.
To use run the following command if installed with `make install`:
```sh
opendataval --file cli.csv -n [job_id] -o [path/to/file/]
```
To run without installing the script:
```
python opendataval --file cli.csv -n [job_id] -o [path/to/file/]
```
<p align="right">(<a href="#readme-top">Back to top</a>)</p>
## :control_knobs: API
Here are the 4 interacting parts of opendataval
1. `DataFetcher`, Loads data and holds meta data regarding splits
2. `Model`, trainable prediction model.
3. `DataEvaluator`, Measures the data values of input data point for a specified model.
4. `ExperimentMediator`, facilitates experiments regarding data values across several `DataEvaluator`s
<p align="right">(<a href="#readme-top">Back to top</a>)</p>
### [`DataFetcher`](https://github.com/opendataval/opendataval/tree/main/opendataval/dataloader/readme.md)
The DataFetcher takes the name of a [`Register`](https://github.com/opendataval/opendataval/tree/main/opendataval/dataloader/readme.md#register-datasets) dataset and loads, transforms, splits, and adds noise to the data set.
```python
from opendataval.dataloader import DataFetcher
DataFetcher.datasets_available() # ['dataset_name1', 'dataset_name2']
fetcher = DataFetcher(dataset_name='dataset_name1')
fetcher = fetcher.split_dataset_by_count(70, 20, 10)
fetcher = fetcher.noisify(mix_labels, noise_rate=.1)
x_train, y_train, x_valid, y_valid, x_test, y_test = fetcher.datapoints
```
<p align="right">(<a href="#readme-top">Back to top</a>)</p>
### [`Model`](https://github.com/opendataval/opendataval/tree/main/opendataval/model/readme.md)
`Model` is the predictive model for Data Evaluators.
```python
from opendataval.model import LogisticRegression
model = LogisticRegression(input_dim, output_dim)
model.fit(x, y)
model.predict(x)
>>> torch.Tensor(...)
```
<p align="right">(<a href="#readme-top">Back to top</a>)</p>
### [`DataEvaluator`](https://github.com/opendataval/opendataval/tree/main/opendataval/dataval/readme.md)
We have a catalog of `DataEvaluator` to run experiments. To do so, input the `Model`, `DataFetcher`, and an evaluation metric (such as accuracy).
```python
from opendataval.dataval.ame import AME
dataval = (
AME(num_models=8000)
.train(fetcher=fetcher, pred_model=model, metric=metric)
)
data_values = dataval.data_values # Cached values
data_values = dataval.evaluate_data_values() # Recomputed values
>>> np.ndarray([.888, .132, ...])
```
<p align="right">(<a href="#readme-top">Back to top</a>)</p>
### [`ExperimentMediator`](https://github.com/opendataval/opendataval/tree/main/opendataval/experiment/readme.md)
`ExperimentMediator` is helps make a cohesive and controlled experiment. NOTE Warnings are raised if errors occur in a specific `DataEvaluator`.
```python
expermed = ExperimentrMediator(fetcher, model, train_kwargs, metric_name).compute_data_values(data_evaluators)
```
Run experiments by passing in an experiment function: `(DataEvaluator, DataFetcher, ...) - > dict[str, Any]`. There are 5 found `exper_methods.py` with three being plotable.
```python
df = expermed.evaluate(noisy_detection)
df, figure = expermed.plot(discover_corrupted_sample)
```
For more examples, please refer to the [Documentation](https://opendataval.github.io)
<p align="right">(<a href="#readme-top">Back to top</a>)</p>
## :medal_sports: opendataval Leaderboards
For datasets that start with the prefix challenge, we provide [leaderboards](https://opendataval.github.io/leaderboards). Compute the data values with an `ExperimentMediator` and use the `save_dataval` function to save a csv. Upload it to [here](https://opendataval.github.io/leaderboards)! Uploading will allow us to systematically compare your `DataEvaluator` against others in the field.
The [available challenges](https://github.com/opendataval/opendataval/tree/main/opendataval/dataloader/datasets/challenge.py) are currently:
1. `challenge-iris`
```python
exper_med = ExperimentMediator.model_factory_setup(
dataset_name='challenge-...', model_name=model_name, train_kwargs={...}, metric_name=metric_name
)
exper_med.compute_data_values([custom_data_evaluator]).evaluate(save_dataval, save_output=True)
```
<p align="right">(<a href="#readme-top">Back to top</a>)</p>
<!-- CONTRIBUTING -->
## :wave: Contributing
If you have a quick suggestion, reccomendation, bug-fixes please open an [issue][issues-url].
If you want to contribute to the project, either through data sets, experiments, presets, or fix stuff, please see our [Contribution page](https://github.com/opendataval/opendataval/blob/main/CONTRIBUTING.md).
1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request
<p align="right">(<a href="#readme-top">Back to top</a>)</p>
## :bulb: Vision
* **clean, descriptive specification syntax** -- based on modern object-oriented design principles for data science.
* **fair model assessment and benchmarking** -- Easily build and evaluate your Data Evaluators
* **easily extensible** -- Easily add your own data sets, data evaluators, models, tests etc!
<p align="right">(<a href="#readme-top">Back to top</a>)</p>
<!-- LICENSE -->
## :classical_building: License
Distributed under the MIT License. See [`LICENSE.txt`][license-url] for more information.
<p align="right">(<a href="#readme-top">Back to top</a>)</p>
<!-- MARKDOWN LINKS & IMAGES -->
<!-- https://www.markdownguide.org/basic-syntax/#reference-style-links -->
[github-link]: https://github.com/opendataval/opendataval
[contributors-shield]: https://img.shields.io/github/contributors/opendataval/opendataval.svg?style=for-the-badge
[contributors-url]: https://github.com/opendataval/opendataval/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/opendataval/opendataval.svg?style=for-the-badge
[forks-url]: https://github.com/opendataval/opendataval/network/members
[stars-shield]: https://img.shields.io/github/stars/opendataval/opendataval.svg?style=for-the-badge
[stars-url]: https://github.com/opendataval/opendataval/stargazers
[issues-shield]: https://img.shields.io/github/issues/opendataval/opendataval.svg?style=for-the-badge
[issues-url]: https://github.com/opendataval/opendataval/issues
[license-shield]: https://img.shields.io/github/license/opendataval/opendataval.svg?style=for-the-badge
[license-url]: https://github.com/opendataval/opendataval/blob/master/LICENSE.txt
[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555
[test-url]: https://github.com/opendataval/opendataval/actions/workflows/test.yml
[test-shield]: https://img.shields.io/github/actions/workflow/status/opendataval/opendataval/test.yml?style=for-the-badge
[PyTorch-shield]: https://img.shields.io/badge/PyTorch-%23EE4C2C.svg?style=for-the-badge&logo=PyTorch&logoColor=white
[PyTorch-url]: https://pytorch.org/
[scikit-learn-shield]: https://img.shields.io/badge/scikit--learn-%23F7931E.svg?style=for-the-badge&logo=scikit-learn&logoColor=white
[scikit-learn-url]: https://scikit-learn.org/stable/
[numpy-url]: https://numpy.org/
[numpy-shield]: https://img.shields.io/badge/numpy-%23013243.svg?style=for-the-badge&logo=numpy&logoColor=white\
[release-shield]: https://img.shields.io/github/v/release/opendataval/opendataval?style=for-the-badge
[release-url]: https://github.com/opendataval/opendataval/releases
<!-- Coverage Comment:Begin -->
[coverage_badge]: https://img.shields.io/badge/Coverage-81%25-green.svg?style=for-the-badge
<!-- Coverage Comment:End -->
Raw data
{
"_id": null,
"home_page": "",
"name": "opendataval",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.9.0",
"maintainer_email": "",
"keywords": "Data Centric,Data Valuation,Machine Learning",
"author": "",
"author_email": "Anonymous Author 1 <opendataval+1@gmail.com>, Anonymous Author 2 <opendataval+2@gmail.com>, Anonymous Author 3 <opendataval+3@gmail.com>, Anonymous Author 4 <opendataval+4@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/99/e7/f460f5013843634cf6d04e4d4f2932ae66b24fd136a53940f16eb5eaf63c/opendataval-1.2.1.tar.gz",
"platform": null,
"description": "<a name=\"readme-top\" id=\"readme-top\"></a>\n\n<!-- PROJECT LOGO -->\n<a href=\"https://github.com/opendataval/opendataval\">\n <picture>\n <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://github.com/opendataval/opendataval/blob/main/docs/_static/logo-dark-mode.png\">\n <source media=\"(prefers-color-scheme: light)\" srcset=\"https://github.com/opendataval/opendataval/blob/main/docs/_static/logo-light-mode.png\">\n <img alt=\"Logo toggles light and dark mode\" src=\"https://github.com/opendataval/opendataval/blob/main/docs/_static/logo-light-mode.png\" width=\"300\" align=\"right\">\n </picture>\n</a>\n\n# OpenDataVal: a Unified Benchmark for Data Valuation\n\n<!-- > A unified library for transparent data valuation benchmarks -->\n\nAssessing the quality of individual data points is critical for improving model performance and mitigating biases. However, there is no way to systematically benchmark different algorithims.\n\n**OpenDataVal** is an open-source initiative that with a diverse array of datasets/models (image, NLP, and tabular), data valuation algorithims, and evaluation tasks using just a few lines of code.\n\n**OpenDataVal** also provides a leaderboards for data evaluation tasks. We've curated and added\nartificial noise to some datasets. Create your own `DataEvaluator` to top the [leaderboards](https://opendataval.github.io/leaderboards).\n\n| Overview | |\n|----------|-|\n|**Python**|[![Python Version](https://img.shields.io/badge/python-3.9%20%7C%203.10%20%7C%203.11-blue?style=for-the-badge)](https://www.python.org/)|\n|**Dependencies**|[![Pytorch][PyTorch-shield]][PyTorch-url] [![scikit-learn][scikit-learn-shield]][scikit-learn-url] [![numpy][numpy-shield]][numpy-url] [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg?style=for-the-badge&logo=appveyor)](https://github.com/psf/black) |\n|**Documentation**| [![Github Pages](https://img.shields.io/badge/github%20pages-121013?style=for-the-badge&logo=github&logoColor=white)](https://opendataval.github.io) |\n|**CI/CD**|[![Build][test-shield]][test-url] ![Coverage][coverage_badge] |\n|**Issues**| [![Issues][issues-shield]][issues-url] |\n|**License**|[![MIT License][license-shield]][license-url]|\n<!-- |**Releases**|[![Releases][release-shield]][release-url]| -->\n<!-- |**Contributors**|[![Contributors][contributors-shield]][contributors-url]| -->\n<!-- |**Citation**| TODO | -->\n## :sparkles: Features\n\n| Feature | Status | Links | Notes |\n|---------|--------|-------|-------|\n| **[Datasets](https://github.com/opendataval/opendataval/tree/main/opendataval/dataloader/readme.md)** | Stable | [Docs](https://opendataval.github.io/opendataval.dataloader.datasets.html#opendataval-dataloader-datasets-package) | Embeddings available for image/NLP datasets |\n| **[Models](https://github.com/opendataval/opendataval/tree/main/opendataval/model/readme.md)** | Stable | [Docs](https://opendataval.github.io/opendataval.model.html#module-opendataval.model) | Support available for sk-learn models |\n| **[Data Evaluators](https://github.com/opendataval/opendataval/tree/main/opendataval/dataval/readme.md)** | Stable | [Docs](https://opendataval.github.io/opendataval.dataval.html#module-opendataval.dataval) | |\n| **[Experiments](https://github.com/opendataval/opendataval/tree/main/opendataval/experiment/readme.md)** | Stable | [Docs](https://opendataval.github.io/opendataval.experiment.html#module-opendataval.experiment) | |\n| **[Examples](https://github.com/opendataval/opendataval/tree/main/examples/readme.md)** | Stable | | |\n| **[CLI](https://github.com/opendataval/opendataval/tree/main/opendataval/__main__.py)** | Experimental | `opendataval --help` | No support for null values |\n\n<p align=\"right\">(<a href=\"#readme-top\">Back to top</a>)</p>\n\n## :hourglass_flowing_sand: Installation options\n1. Install with pip\n ```sh\n pip install opendataval\n ```\n2. Clone the repo and install\n ```sh\n git clone https://github.com/opendataval/opendataval.git\n make install\n ```\n a. Install optional dependencies if you're [contributing](https://github.com/opendataval/opendataval/blob/main/CONTRIBUTING.md)\n ```sh\n make install-dev\n ```\n b. If you want to pull in kaggle datasets, I'd reccomend looking how to add a kaggle folder to the current directory. Tutorial [here](https://www.analyticsvidhya.com/blog/2021/04/how-to-download-kaggle-datasets-using-jupyter-notebook/)\n\n<p align=\"right\">(<a href=\"#readme-top\">Back to top</a>)</p>\n\n<!-- USAGE EXAMPLES -->\n## :zap: Quick Start\nTo set up an experiment on DataEvaluators. Feel free to change the source code as needed for a project.\n\n```python\nfrom opendataval.experiment import ExperimentMediator\n\nexper_med = ExperimentMediator.model_factory_setup(\n dataset_name='iris',\n force_download=False,\n train_count=100,\n valid_count=50,\n test_count=50,\n model_name='ClassifierMLP',\n train_kwargs={'epochs': 5, 'batch_size': 20},\n)\nlist_of_data_evaluators = [ChildEvaluator(), ...] # Define evaluators here\neval_med = exper_med.compute_data_values(list_of_data_evaluators)\n\n# Runs a discover the noisy data experiment for each DataEvaluator and plots\ndata, fig = eval_med.plot(discover_corrupted_sample)\n\n# Runs non-plottable experiment\ndata = eval_method.evaluate(noisy_detection)\n```\n\n## :computer: CLI\n`opendataval` comes with a quick [CLI](https://github.com/opendataval/opendataval/tree/main/opendataval/__main__.py) tool, The tool is under development and the template for a csv input is found at [`cli.csv`](https://github.com/opendataval/opendataval/tree/main/cli.csv). Note that for kwarg arguments, the input must be valid json.\n\nTo use run the following command if installed with `make install`:\n```sh\nopendataval --file cli.csv -n [job_id] -o [path/to/file/]\n```\nTo run without installing the script:\n```\npython opendataval --file cli.csv -n [job_id] -o [path/to/file/]\n```\n\n<p align=\"right\">(<a href=\"#readme-top\">Back to top</a>)</p>\n\n## :control_knobs: API\nHere are the 4 interacting parts of opendataval\n1. `DataFetcher`, Loads data and holds meta data regarding splits\n2. `Model`, trainable prediction model.\n3. `DataEvaluator`, Measures the data values of input data point for a specified model.\n4. `ExperimentMediator`, facilitates experiments regarding data values across several `DataEvaluator`s\n\n<p align=\"right\">(<a href=\"#readme-top\">Back to top</a>)</p>\n\n### [`DataFetcher`](https://github.com/opendataval/opendataval/tree/main/opendataval/dataloader/readme.md)\nThe DataFetcher takes the name of a [`Register`](https://github.com/opendataval/opendataval/tree/main/opendataval/dataloader/readme.md#register-datasets) dataset and loads, transforms, splits, and adds noise to the data set.\n```python\nfrom opendataval.dataloader import DataFetcher\n\nDataFetcher.datasets_available() # ['dataset_name1', 'dataset_name2']\nfetcher = DataFetcher(dataset_name='dataset_name1')\n\nfetcher = fetcher.split_dataset_by_count(70, 20, 10)\nfetcher = fetcher.noisify(mix_labels, noise_rate=.1)\n\nx_train, y_train, x_valid, y_valid, x_test, y_test = fetcher.datapoints\n```\n\n<p align=\"right\">(<a href=\"#readme-top\">Back to top</a>)</p>\n\n### [`Model`](https://github.com/opendataval/opendataval/tree/main/opendataval/model/readme.md)\n`Model` is the predictive model for Data Evaluators.\n\n```python\nfrom opendataval.model import LogisticRegression\n\nmodel = LogisticRegression(input_dim, output_dim)\n\nmodel.fit(x, y)\nmodel.predict(x)\n>>> torch.Tensor(...)\n```\n\n<p align=\"right\">(<a href=\"#readme-top\">Back to top</a>)</p>\n\n### [`DataEvaluator`](https://github.com/opendataval/opendataval/tree/main/opendataval/dataval/readme.md)\nWe have a catalog of `DataEvaluator` to run experiments. To do so, input the `Model`, `DataFetcher`, and an evaluation metric (such as accuracy).\n\n```python\nfrom opendataval.dataval.ame import AME\n\ndataval = (\n AME(num_models=8000)\n .train(fetcher=fetcher, pred_model=model, metric=metric)\n)\n\ndata_values = dataval.data_values # Cached values\ndata_values = dataval.evaluate_data_values() # Recomputed values\n>>> np.ndarray([.888, .132, ...])\n```\n<p align=\"right\">(<a href=\"#readme-top\">Back to top</a>)</p>\n\n### [`ExperimentMediator`](https://github.com/opendataval/opendataval/tree/main/opendataval/experiment/readme.md)\n`ExperimentMediator` is helps make a cohesive and controlled experiment. NOTE Warnings are raised if errors occur in a specific `DataEvaluator`.\n```python\nexpermed = ExperimentrMediator(fetcher, model, train_kwargs, metric_name).compute_data_values(data_evaluators)\n```\n\nRun experiments by passing in an experiment function: `(DataEvaluator, DataFetcher, ...) - > dict[str, Any]`. There are 5 found `exper_methods.py` with three being plotable.\n```python\ndf = expermed.evaluate(noisy_detection)\ndf, figure = expermed.plot(discover_corrupted_sample)\n```\n\nFor more examples, please refer to the [Documentation](https://opendataval.github.io)\n\n<p align=\"right\">(<a href=\"#readme-top\">Back to top</a>)</p>\n\n## :medal_sports: opendataval Leaderboards\nFor datasets that start with the prefix challenge, we provide [leaderboards](https://opendataval.github.io/leaderboards). Compute the data values with an `ExperimentMediator` and use the `save_dataval` function to save a csv. Upload it to [here](https://opendataval.github.io/leaderboards)! Uploading will allow us to systematically compare your `DataEvaluator` against others in the field.\n\nThe [available challenges](https://github.com/opendataval/opendataval/tree/main/opendataval/dataloader/datasets/challenge.py) are currently:\n1. `challenge-iris`\n\n```python\nexper_med = ExperimentMediator.model_factory_setup(\n dataset_name='challenge-...', model_name=model_name, train_kwargs={...}, metric_name=metric_name\n)\nexper_med.compute_data_values([custom_data_evaluator]).evaluate(save_dataval, save_output=True)\n```\n\n<p align=\"right\">(<a href=\"#readme-top\">Back to top</a>)</p>\n\n\n<!-- CONTRIBUTING -->\n## :wave: Contributing\n\nIf you have a quick suggestion, reccomendation, bug-fixes please open an [issue][issues-url].\nIf you want to contribute to the project, either through data sets, experiments, presets, or fix stuff, please see our [Contribution page](https://github.com/opendataval/opendataval/blob/main/CONTRIBUTING.md).\n\n1. Fork the Project\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the Branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n<p align=\"right\">(<a href=\"#readme-top\">Back to top</a>)</p>\n\n## :bulb: Vision\n* **clean, descriptive specification syntax** -- based on modern object-oriented design principles for data science.\n* **fair model assessment and benchmarking** -- Easily build and evaluate your Data Evaluators\n* **easily extensible** -- Easily add your own data sets, data evaluators, models, tests etc!\n\n<p align=\"right\">(<a href=\"#readme-top\">Back to top</a>)</p>\n\n<!-- LICENSE -->\n## :classical_building: License\n\nDistributed under the MIT License. See [`LICENSE.txt`][license-url] for more information.\n\n<p align=\"right\">(<a href=\"#readme-top\">Back to top</a>)</p>\n\n<!-- MARKDOWN LINKS & IMAGES -->\n<!-- https://www.markdownguide.org/basic-syntax/#reference-style-links -->\n[github-link]: https://github.com/opendataval/opendataval\n[contributors-shield]: https://img.shields.io/github/contributors/opendataval/opendataval.svg?style=for-the-badge\n[contributors-url]: https://github.com/opendataval/opendataval/graphs/contributors\n[forks-shield]: https://img.shields.io/github/forks/opendataval/opendataval.svg?style=for-the-badge\n[forks-url]: https://github.com/opendataval/opendataval/network/members\n[stars-shield]: https://img.shields.io/github/stars/opendataval/opendataval.svg?style=for-the-badge\n[stars-url]: https://github.com/opendataval/opendataval/stargazers\n[issues-shield]: https://img.shields.io/github/issues/opendataval/opendataval.svg?style=for-the-badge\n[issues-url]: https://github.com/opendataval/opendataval/issues\n[license-shield]: https://img.shields.io/github/license/opendataval/opendataval.svg?style=for-the-badge\n[license-url]: https://github.com/opendataval/opendataval/blob/master/LICENSE.txt\n[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555\n[test-url]: https://github.com/opendataval/opendataval/actions/workflows/test.yml\n[test-shield]: https://img.shields.io/github/actions/workflow/status/opendataval/opendataval/test.yml?style=for-the-badge\n[PyTorch-shield]: https://img.shields.io/badge/PyTorch-%23EE4C2C.svg?style=for-the-badge&logo=PyTorch&logoColor=white\n[PyTorch-url]: https://pytorch.org/\n[scikit-learn-shield]: https://img.shields.io/badge/scikit--learn-%23F7931E.svg?style=for-the-badge&logo=scikit-learn&logoColor=white\n[scikit-learn-url]: https://scikit-learn.org/stable/\n[numpy-url]: https://numpy.org/\n[numpy-shield]: https://img.shields.io/badge/numpy-%23013243.svg?style=for-the-badge&logo=numpy&logoColor=white\\\n[release-shield]: https://img.shields.io/github/v/release/opendataval/opendataval?style=for-the-badge\n[release-url]: https://github.com/opendataval/opendataval/releases\n<!-- Coverage Comment:Begin -->\n[coverage_badge]: https://img.shields.io/badge/Coverage-81%25-green.svg?style=for-the-badge\n<!-- Coverage Comment:End -->\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Transparent Data Valuation",
"version": "1.2.1",
"project_urls": {
"Documentation": "https://opendataval.github.io",
"Source code": "https://github.com/opendataval/opendataval"
},
"split_keywords": [
"data centric",
"data valuation",
"machine learning"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "10927908dfb1513ce706eda427d5b2d7dcc34ca3b02a7207cf3a549db9e44cee",
"md5": "50387217cfc318cff479e8328904a638",
"sha256": "a853e4c11a28f96805d3422fe5849676f51a39069369c3c8a1459425d7067173"
},
"downloads": -1,
"filename": "opendataval-1.2.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "50387217cfc318cff479e8328904a638",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9.0",
"size": 108457,
"upload_time": "2023-08-30T21:30:43",
"upload_time_iso_8601": "2023-08-30T21:30:43.036732Z",
"url": "https://files.pythonhosted.org/packages/10/92/7908dfb1513ce706eda427d5b2d7dcc34ca3b02a7207cf3a549db9e44cee/opendataval-1.2.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "99e7f460f5013843634cf6d04e4d4f2932ae66b24fd136a53940f16eb5eaf63c",
"md5": "1b0984a71b89f4b3e1e37812dd595137",
"sha256": "ab278d27d9c887a8d19f857f01c97a31966a635964a381c692265b75d005cfd6"
},
"downloads": -1,
"filename": "opendataval-1.2.1.tar.gz",
"has_sig": false,
"md5_digest": "1b0984a71b89f4b3e1e37812dd595137",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9.0",
"size": 75466,
"upload_time": "2023-08-30T21:30:44",
"upload_time_iso_8601": "2023-08-30T21:30:44.679645Z",
"url": "https://files.pythonhosted.org/packages/99/e7/f460f5013843634cf6d04e4d4f2932ae66b24fd136a53940f16eb5eaf63c/opendataval-1.2.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-08-30 21:30:44",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "opendataval",
"github_project": "opendataval",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "opendataval"
}