dataeval 0.75.0__py3-none-any.whl → 0.76.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. dataeval/__init__.py +3 -3
  2. dataeval/detectors/drift/base.py +2 -2
  3. dataeval/detectors/drift/ks.py +2 -1
  4. dataeval/detectors/drift/mmd.py +3 -2
  5. dataeval/detectors/drift/uncertainty.py +2 -2
  6. dataeval/detectors/drift/updates.py +1 -1
  7. dataeval/detectors/linters/clusterer.py +3 -2
  8. dataeval/detectors/linters/duplicates.py +4 -4
  9. dataeval/detectors/linters/outliers.py +96 -3
  10. dataeval/detectors/ood/__init__.py +1 -1
  11. dataeval/detectors/ood/base.py +1 -17
  12. dataeval/detectors/ood/output.py +1 -1
  13. dataeval/interop.py +1 -1
  14. dataeval/metrics/__init__.py +1 -1
  15. dataeval/metrics/bias/__init__.py +1 -1
  16. dataeval/metrics/bias/balance.py +3 -3
  17. dataeval/metrics/bias/coverage.py +1 -1
  18. dataeval/metrics/bias/diversity.py +14 -10
  19. dataeval/metrics/bias/parity.py +7 -9
  20. dataeval/metrics/estimators/ber.py +4 -3
  21. dataeval/metrics/estimators/divergence.py +3 -3
  22. dataeval/metrics/estimators/uap.py +3 -3
  23. dataeval/metrics/stats/__init__.py +1 -1
  24. dataeval/metrics/stats/base.py +24 -8
  25. dataeval/metrics/stats/boxratiostats.py +5 -5
  26. dataeval/metrics/stats/datasetstats.py +39 -6
  27. dataeval/metrics/stats/dimensionstats.py +4 -4
  28. dataeval/metrics/stats/hashstats.py +2 -2
  29. dataeval/metrics/stats/labelstats.py +89 -6
  30. dataeval/metrics/stats/pixelstats.py +7 -5
  31. dataeval/metrics/stats/visualstats.py +6 -4
  32. dataeval/output.py +23 -14
  33. dataeval/utils/__init__.py +2 -2
  34. dataeval/utils/dataset/read.py +1 -1
  35. dataeval/utils/dataset/split.py +1 -1
  36. dataeval/utils/metadata.py +255 -110
  37. dataeval/utils/plot.py +129 -6
  38. dataeval/workflows/sufficiency.py +2 -2
  39. {dataeval-0.75.0.dist-info → dataeval-0.76.1.dist-info}/LICENSE.txt +2 -2
  40. {dataeval-0.75.0.dist-info → dataeval-0.76.1.dist-info}/METADATA +57 -30
  41. dataeval-0.76.1.dist-info/RECORD +67 -0
  42. dataeval-0.75.0.dist-info/RECORD +0 -67
  43. {dataeval-0.75.0.dist-info → dataeval-0.76.1.dist-info}/WHEEL +0 -0
dataeval/utils/plot.py CHANGED
@@ -3,6 +3,7 @@ from __future__ import annotations
3
3
  __all__ = []
4
4
 
5
5
  import contextlib
6
+ from typing import Any
6
7
 
7
8
  import numpy as np
8
9
  from numpy.typing import ArrayLike
@@ -70,12 +71,17 @@ def heatmap(
70
71
  # Rotate the tick labels and set their alignment.
71
72
  plt.setp(ax.get_xticklabels(), rotation=45, ha="right", rotation_mode="anchor")
72
73
 
73
- # Turn spines off and create white grid.
74
- ax.spines[:].set_visible(False)
75
-
76
- ax.set_xticks(np.arange(np_data.shape[1] + 1) - 0.5, minor=True)
77
- ax.set_yticks(np.arange(np_data.shape[0] + 1) - 0.5, minor=True)
78
- ax.grid(which="minor", color="w", linestyle="-", linewidth=3)
74
+ light_gray = "0.9"
75
+ # Turn spines on and create light gray easily visible grid.
76
+ for spine in ax.spines.values():
77
+ spine.set_visible(True)
78
+ spine.set_color(light_gray)
79
+
80
+ xticks = np.arange(np_data.shape[1] + 1) - 0.5
81
+ yticks = np.arange(np_data.shape[0] + 1) - 0.5
82
+ ax.set_xticks(xticks, minor=True)
83
+ ax.set_yticks(yticks, minor=True)
84
+ ax.grid(which="minor", color=light_gray, linestyle="-", linewidth=3)
79
85
  ax.tick_params(which="minor", bottom=False, left=False)
80
86
 
81
87
  if xlabel:
@@ -124,3 +130,120 @@ def format_text(*args: str) -> str:
124
130
  """
125
131
  x = args[0]
126
132
  return f"{x:.2f}".replace("0.00", "0").replace("0.", ".").replace("nan", "")
133
+
134
+
135
+ def histogram_plot(
136
+ data_dict: dict[str, Any],
137
+ log: bool = True,
138
+ xlabel: str = "values",
139
+ ylabel: str = "counts",
140
+ ) -> Figure:
141
+ """
142
+ Plots a formatted histogram
143
+
144
+ Parameters
145
+ ----------
146
+ data_dict : dict
147
+ Dictionary containing the metrics and their value arrays
148
+ log : bool, default True
149
+ If True, plots the histogram on a semi-log scale (y axis)
150
+ xlabel : str, default "values"
151
+ X-axis label
152
+ ylabel : str, default "counts"
153
+ Y-axis label
154
+
155
+ Returns
156
+ -------
157
+ matplotlib.figure.Figure
158
+ Formatted plot of histograms
159
+ """
160
+ import matplotlib.pyplot as plt
161
+
162
+ num_metrics = len(data_dict)
163
+ if num_metrics > 2:
164
+ rows = int(len(data_dict) / 3)
165
+ fig, axs = plt.subplots(rows, 3, figsize=(10, rows * 2.5))
166
+ else:
167
+ fig, axs = plt.subplots(1, num_metrics, figsize=(4 * num_metrics, 4))
168
+
169
+ for ax, metric in zip(
170
+ axs.flat,
171
+ data_dict,
172
+ ):
173
+ # Plot the histogram for the chosen metric
174
+ ax.hist(data_dict[metric], bins=20, log=log)
175
+
176
+ # Add labels to the histogram
177
+ ax.set_title(metric)
178
+ ax.set_ylabel(ylabel)
179
+ ax.set_xlabel(xlabel)
180
+
181
+ fig.tight_layout()
182
+ return fig
183
+
184
+
185
+ def channel_histogram_plot(
186
+ data_dict: dict[str, Any],
187
+ log: bool = True,
188
+ max_channels: int = 3,
189
+ ch_mask: list[bool] | None = None,
190
+ xlabel: str = "values",
191
+ ylabel: str = "counts",
192
+ ) -> Figure:
193
+ """
194
+ Plots a formatted heatmap
195
+
196
+ Parameters
197
+ ----------
198
+ data_dict : dict
199
+ Dictionary containing the metrics and their value arrays
200
+ log : bool, default True
201
+ If True, plots the histogram on a semi-log scale (y axis)
202
+ xlabel : str, default "values"
203
+ X-axis label
204
+ ylabel : str, default "counts"
205
+ Y-axis label
206
+
207
+ Returns
208
+ -------
209
+ matplotlib.figure.Figure
210
+ Formatted plot of histograms
211
+ """
212
+ import matplotlib.pyplot as plt
213
+
214
+ channelwise_metrics = ["mean", "std", "var", "skew", "zeros", "brightness", "contrast", "darkness", "entropy"]
215
+ data_keys = [key for key in data_dict if key in channelwise_metrics]
216
+ label_kwargs = {"label": [f"Channel {i}" for i in range(max_channels)]}
217
+
218
+ num_metrics = len(data_keys)
219
+ if num_metrics > 2:
220
+ rows = int(len(data_keys) / 3)
221
+ fig, axs = plt.subplots(rows, 3, figsize=(10, rows * 2.5))
222
+ else:
223
+ fig, axs = plt.subplots(1, num_metrics, figsize=(4 * num_metrics, 4))
224
+
225
+ for ax, metric in zip(
226
+ axs.flat,
227
+ data_keys,
228
+ ):
229
+ # Plot the histogram for the chosen metric
230
+ data = data_dict[metric][ch_mask].reshape(-1, max_channels)
231
+ ax.hist(
232
+ data,
233
+ bins=20,
234
+ density=True,
235
+ log=log,
236
+ **label_kwargs,
237
+ )
238
+ # Only plot the labels once for channels
239
+ if label_kwargs:
240
+ ax.legend()
241
+ label_kwargs = {}
242
+
243
+ # Add labels to the histogram
244
+ ax.set_title(metric)
245
+ ax.set_ylabel(ylabel)
246
+ ax.set_xlabel(xlabel)
247
+
248
+ fig.tight_layout()
249
+ return fig
@@ -24,7 +24,7 @@ with contextlib.suppress(ImportError):
24
24
  @dataclass(frozen=True)
25
25
  class SufficiencyOutput(Output):
26
26
  """
27
- Output class for :class:`Sufficiency` workflow
27
+ Output class for :class:`Sufficiency` workflow.
28
28
 
29
29
  Attributes
30
30
  ----------
@@ -378,7 +378,7 @@ T = TypeVar("T")
378
378
 
379
379
  class Sufficiency(Generic[T]):
380
380
  """
381
- Project dataset :term:`sufficiency<Sufficiency>` using given a model and evaluation criteria
381
+ Project dataset :term:`sufficiency<Sufficiency>` using given a model and evaluation criteria.
382
382
 
383
383
  Parameters
384
384
  ----------
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2024 ARiA
3
+ Copyright (c) 2025 ARiA
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
18
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
19
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
20
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
21
+ SOFTWARE.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dataeval
3
- Version: 0.75.0
3
+ Version: 0.76.1
4
4
  Summary: DataEval provides a simple interface to characterize image data and its impact on model performance across classification and object-detection tasks
5
5
  Home-page: https://dataeval.ai/
6
6
  License: MIT
@@ -21,8 +21,9 @@ Classifier: Programming Language :: Python :: 3.12
21
21
  Classifier: Programming Language :: Python :: 3 :: Only
22
22
  Classifier: Topic :: Scientific/Engineering
23
23
  Provides-Extra: all
24
- Requires-Dist: matplotlib ; extra == "all"
25
- Requires-Dist: numpy (>=1.24.3)
24
+ Requires-Dist: matplotlib (>=3.7.1) ; extra == "all"
25
+ Requires-Dist: numpy (>=1.24.2)
26
+ Requires-Dist: pandas (>=2.0) ; extra == "all"
26
27
  Requires-Dist: pillow (>=10.3.0)
27
28
  Requires-Dist: requests
28
29
  Requires-Dist: scikit-learn (>=1.5.0)
@@ -38,13 +39,17 @@ Description-Content-Type: text/markdown
38
39
 
39
40
  # DataEval
40
41
 
41
- To view our extensive collection of tutorials, how-to's, explanation guides, and reference material, please visit our documentation on **[Read the Docs](https://dataeval.readthedocs.io/)**
42
+ To view our extensive collection of tutorials, how-to's, explanation guides,
43
+ and reference material, please visit our documentation on
44
+ **[Read the Docs](https://dataeval.readthedocs.io/)**
42
45
 
43
46
  ## About DataEval
44
47
 
45
48
  <!-- start tagline -->
46
49
 
47
- DataEval curates datasets to train and test performant, robust, unbiased and reliable AI models and monitors for data shifts that impact performance of deployed models.
50
+ DataEval curates datasets to train and test performant, robust, unbiased and
51
+ reliable AI models and monitors for data shifts that impact performance of
52
+ deployed models.
48
53
 
49
54
  <!-- end tagline -->
50
55
 
@@ -52,65 +57,86 @@ DataEval curates datasets to train and test performant, robust, unbiased and rel
52
57
 
53
58
  <!-- start needs -->
54
59
 
55
- DataEval is an effective, powerful, and reliable set of tools for any T&E engineer. Throughout all stages of the machine learning lifecycle, DataEval supports **model development, data analysis, and monitoring with state-of-the-art algorithms to help you solve difficult problems. With a focus on computer vision tasks, DataEval provides simple, but effective metrics for performance estimation, bias detection, and dataset linting.
60
+ DataEval is an effective, powerful, and reliable set of tools for any T&E
61
+ engineer. Throughout all stages of the machine learning lifecycle, DataEval
62
+ supports model development, data analysis, and monitoring with state-of-the-art
63
+ algorithms to help you solve difficult problems. With a focus on computer
64
+ vision tasks, DataEval provides simple, but effective metrics for performance
65
+ estimation, bias detection, and dataset linting.
56
66
 
57
67
  <!-- end needs -->
58
68
 
59
69
  <!-- start JATIC interop -->
60
- DataEval is easy to install, supports a wide range of Python versions, and is compatible with many of the most popular packages in the scientific and T&E communities.
61
- DataEval also has native interopability between JATIC's suite of tools when using MAITE-compliant datasets and models.
70
+ DataEval is easy to install, supports a wide range of Python versions, and is
71
+ compatible with many of the most popular packages in the scientific and T&E
72
+ communities.
73
+
74
+ DataEval also has native interopability between JATIC's suite of tools when
75
+ using MAITE-compliant datasets and models.
62
76
  <!-- end JATIC interop -->
63
77
 
64
78
  ## Getting Started
65
79
 
66
80
  **Python versions:** 3.9 - 3.12
67
81
 
68
- **Supported packages**: *NumPy*, *Pandas*, *Sci-kit learn*, *MAITE*, *NRTK*, *Gradient*
82
+ **Supported packages**: *NumPy*, *Pandas*, *Sci-kit learn*, *MAITE*, *NRTK*,
83
+ *Gradient*
69
84
 
70
- Choose your preferred method of installation below or follow our [installation guide](https://dataeval.readthedocs.io/en/v0.74.2/installation.html).
85
+ Choose your preferred method of installation below or follow our
86
+ [installation guide](https://dataeval.readthedocs.io/en/v0.74.2/installation.html).
71
87
 
72
88
  * [Installing with pip](#installing-with-pip)
73
89
  * [Installing with conda/mamba](#installing-with-conda)
74
90
  * [Installing from GitHub](#installing-from-github)
75
91
 
76
92
  ### **Installing with pip**
77
- You can install DataEval directly from pypi.org using the following command. The optional dependencies of DataEval are `all`.
78
93
 
79
- ```
94
+ You can install DataEval directly from pypi.org using the following command.
95
+ The optional dependencies of DataEval are `all`.
96
+
97
+ ```bash
80
98
  pip install dataeval[all]
81
99
  ```
82
100
 
83
101
  ### **Installing with conda**
84
102
 
85
- DataEval can be installed in a Conda/Mamba environment using the provided `environment.yaml` file. As some dependencies
86
- are installed from the `pytorch` channel, the channel is specified in the below example.
103
+ DataEval can be installed in a Conda/Mamba environment using the provided
104
+ `environment.yaml` file. As some dependencies are installed from the `pytorch`
105
+ channel, the channel is specified in the below example.
87
106
 
88
- ```
107
+ ```bash
89
108
  micromamba create -f environment\environment.yaml -c pytorch
90
109
  ```
91
110
 
92
111
  ### **Installing from GitHub**
93
112
 
94
- To install DataEval from source locally on Ubuntu, you will need `git-lfs` to download larger, binary source files and `poetry` for project dependency management.
113
+ To install DataEval from source locally on Ubuntu, you will need `git-lfs` to
114
+ download larger, binary source files and `poetry` for project dependency
115
+ management.
95
116
 
96
- ```
117
+ ```bash
97
118
  sudo apt-get install git-lfs
98
119
  pip install poetry
99
120
  ```
100
121
 
101
122
  Pull the source down and change to the DataEval project directory.
102
- ```
123
+
124
+ ```bash
103
125
  git clone https://github.com/aria-ml/dataeval.git
104
126
  cd dataeval
105
127
  ```
106
128
 
107
129
  Install DataEval with optional dependencies for development.
108
- ```
130
+
131
+ ```bash
109
132
  poetry install --all-extras --with dev
110
133
  ```
111
134
 
112
- Now that DataEval is installed, you can run commands in the poetry virtual environment by prefixing shell commands with `poetry run`, or activate the virtual environment directly in the shell.
113
- ```
135
+ Now that DataEval is installed, you can run commands in the poetry virtual
136
+ environment by prefixing shell commands with `poetry run`, or activate the
137
+ virtual environment directly in the shell.
138
+
139
+ ```bash
114
140
  poetry shell
115
141
  ```
116
142
 
@@ -118,19 +144,20 @@ poetry shell
118
144
 
119
145
  If you have any questions, feel free to reach out to the people below:
120
146
 
121
- - **POC**: Scott Swan @scott.swan
122
- - **DPOC**: Andrew Weng @aweng
147
+ * **POC**: Scott Swan @scott.swan
148
+ * **DPOC**: Andrew Weng @aweng
123
149
 
124
150
  ## Acknowledgement
125
151
 
126
- <!-- start attribution -->
127
-
128
- ### Alibi-Detect
129
- This project uses code from the [Alibi-Detect](https://github.com/SeldonIO/alibi-detect) Python library developed by SeldonIO.\
130
- Additional documentation from their developers is available on the [Alibi-Detect documentation page](https://docs.seldon.io/projects/alibi-detect/en/stable/).
152
+ <!-- start acknowledgement -->
131
153
 
132
154
  ### CDAO Funding Acknowledgement
133
- This material is based upon work supported by the Chief Digital and Artificial Intelligence Office under Contract No. W519TC-23-9-2033. The views and conclusions contained herein are those of the author(s) and should not be interpreted as necessarily representing the official policies or endorsements, either expressed or implied, of the U.S. Government.
134
155
 
135
- <!-- end attribution -->
156
+ This material is based upon work supported by the Chief Digital and Artificial
157
+ Intelligence Office under Contract No. W519TC-23-9-2033. The views and
158
+ conclusions contained herein are those of the author(s) and should not be
159
+ interpreted as necessarily representing the official policies or endorsements,
160
+ either expressed or implied, of the U.S. Government.
161
+
162
+ <!-- end acknowledgement -->
136
163
 
@@ -0,0 +1,67 @@
1
+ dataeval/__init__.py,sha256=vqyenyxYGE0OXW3C8PC1YDZRak1uLFIYd45-vh9qafQ,1474
2
+ dataeval/detectors/__init__.py,sha256=iifG-Z08mH5B4QhkKtAieDGJBKldKvmCXpDQJD9qVY8,206
3
+ dataeval/detectors/drift/__init__.py,sha256=wO294Oz--l0GuZTAkBpyGwZphbQsot57HoiEX6kjNOc,652
4
+ dataeval/detectors/drift/base.py,sha256=8zHUnUpmgpWMzDv5C-tUX61lbpDjhJ-eAIiNxaNvWP8,14469
5
+ dataeval/detectors/drift/cvm.py,sha256=TATS6IOE0INO1pkyRkesgrhDawD_kITsRsOOGVRs420,4132
6
+ dataeval/detectors/drift/ks.py,sha256=SAd2T9CdytXD7DegCzAX1pWYJdPuttyL97KAQYF4j7Y,4265
7
+ dataeval/detectors/drift/mmd.py,sha256=z7JPFbW4fmHJhR-Qe1OQ4mM8kW6dNxnd3uHD9oXMETE,7599
8
+ dataeval/detectors/drift/torch.py,sha256=ykD-Nggys5T9FTGXXbYYOi2WRKwEzEjXhL8ZueVmTxU,7659
9
+ dataeval/detectors/drift/uncertainty.py,sha256=zkrqz5euJJtYFKsDiRqFfTnDjVOTbqpZWgZiGMrYxvI,5351
10
+ dataeval/detectors/drift/updates.py,sha256=nKsF4xrMFZd2X84GJ5XnGylUuketX_RcH7UpcdlonIo,1781
11
+ dataeval/detectors/linters/__init__.py,sha256=CZV5naeYQYL3sHXO_CXB26AXkyTeKHI-TMaewtEs8Ag,483
12
+ dataeval/detectors/linters/clusterer.py,sha256=V-bNs4ut2E6SIqU4MR1Y96WBZcs4cavQhvXBB0vFZPw,20937
13
+ dataeval/detectors/linters/duplicates.py,sha256=Ba-Nmbjqg_HDMlEBqlWW1aFO_BA-HSc-uWHc3cmI394,5620
14
+ dataeval/detectors/linters/merged_stats.py,sha256=X-bDTwjyR8RuVmzxLaHZmQ5nI3oOWvsqVlitdSncapk,1355
15
+ dataeval/detectors/linters/outliers.py,sha256=o0LtAHdazLfj5GM2HcVDjVY_AfSU5GpBUjxHPC9VfIc,13728
16
+ dataeval/detectors/ood/__init__.py,sha256=Ws6_un4pFWNknki7Bp7qjrslZVB9pYNE-K72u2lF65k,291
17
+ dataeval/detectors/ood/ae.py,sha256=SL8oKTERhMwaZTQWwDhQQ6H07UKj8ozXqEWO3TaOAos,2151
18
+ dataeval/detectors/ood/base.py,sha256=-ApcC9lyZJAgk-joMpLXF20sJqtvlAugg-W18TcAsEw,3010
19
+ dataeval/detectors/ood/metadata_ks_compare.py,sha256=-hEhDNXFC7X8wmFeoigO7A7Qn90vRLroN_nKDwNgjnE,5204
20
+ dataeval/detectors/ood/metadata_least_likely.py,sha256=rb8GOgsrlrEzc6fxccdmyZQ5PC7HtTsTY8U97D-h5OU,5088
21
+ dataeval/detectors/ood/metadata_ood_mi.py,sha256=7_Sdzf7-x1TlrIQvSyOIB98C8_UQhUwmwFQmZ9_q1Uc,4042
22
+ dataeval/detectors/ood/mixin.py,sha256=Ia-rJF6rtGhE8uavijdbzOha3ueFk2CFfA0Ah_mnF40,4976
23
+ dataeval/detectors/ood/output.py,sha256=yygnsjaIQB6v6sXh7glqX2aoqWdf3_YLINqx7BGKMtk,1710
24
+ dataeval/interop.py,sha256=P9Kwe-vOVgbn1ng60y4giCnJYmHjIOpyGpccuIA7P1g,2322
25
+ dataeval/log.py,sha256=Mn5bRWO0cgtAYd5VGYSFiPgu57ta3zoktrtHAZ1m3dU,357
26
+ dataeval/metrics/__init__.py,sha256=OMntcHmmrsOfIlRsJTZQQaF5qXEuP61Li-ElKy7Ysbk,240
27
+ dataeval/metrics/bias/__init__.py,sha256=SIg4Qxza9BqXyKNQLIY0bpqoFvZfK5-GaejpTH6efVc,601
28
+ dataeval/metrics/bias/balance.py,sha256=B1sPackyodiBct9Hs88BR4nJde_R61JyjwSBIG_CFug,9171
29
+ dataeval/metrics/bias/coverage.py,sha256=igVDWJSrO2MvaTEiDUhVzVWPGNB1QOZvngCi8UF0RwA,5746
30
+ dataeval/metrics/bias/diversity.py,sha256=nF1y2FaQIU0yHQtckoddjqoty2hsVVMqwaXWHRdGfqA,8521
31
+ dataeval/metrics/bias/parity.py,sha256=2gSpXkg6ASnkywRTqqx3b3k1T5Qg1Jm-ihMKNZgEwys,12732
32
+ dataeval/metrics/estimators/__init__.py,sha256=oY_9jX7V-Kg7-4KpvMNB4rUhsk8QTA0DIoM8d2VtVIg,380
33
+ dataeval/metrics/estimators/ber.py,sha256=vcndXr0PNLRlYz7u7K74f-B5g3DnUkaTO_WigGdj0cg,5012
34
+ dataeval/metrics/estimators/divergence.py,sha256=joqqlH0AQFibJkHCCb7i7dMJIGF28fmZIR-tGupQQJQ,4247
35
+ dataeval/metrics/estimators/uap.py,sha256=ZAQUjJCbdulftWk6yjILCbnXGOE8RuDqEINZRtMW3tc,2143
36
+ dataeval/metrics/stats/__init__.py,sha256=pUT84sOxDiCHW6xz6Ml1Mf1bFszQrtd3qPG0Ja3boxA,1088
37
+ dataeval/metrics/stats/base.py,sha256=1ejjwlA0FmllcAw7J9Yv1r7GMmBYKvuGPzmDk9ktASM,12613
38
+ dataeval/metrics/stats/boxratiostats.py,sha256=PS1wvWwhTCMJX56erfPW-BZymXrevvXnKl2PkE0qmLk,6315
39
+ dataeval/metrics/stats/datasetstats.py,sha256=mt5t5WhlVI7mo56dmhqgnk1eH8oBV7dahgmqkFDcKo0,7387
40
+ dataeval/metrics/stats/dimensionstats.py,sha256=AlPor23dUH718jFNiVNedHQVaQzN-6OKQEVDQbnGE50,4027
41
+ dataeval/metrics/stats/hashstats.py,sha256=5nNSJ3Tl8gPqpYlWpxl7EHfW6pJd1BtbXYUiuGgH4Eo,5070
42
+ dataeval/metrics/stats/labelstats.py,sha256=MW6kB7V8pdIc7yHdXzRwlD6xSl6SYZonNsLUPKAVILI,6992
43
+ dataeval/metrics/stats/pixelstats.py,sha256=tfvu0tYPgDS0jCCSY2sZ2Ice5r1nNuKx-LYXxZQCw7s,4220
44
+ dataeval/metrics/stats/visualstats.py,sha256=pEQnAPFg-zQ1U5orwF0-U7kfHuZGjMJDsdEMAoDZd4I,4634
45
+ dataeval/output.py,sha256=Dyfv1xlrwSbCe7HdDyq8t-kiIRJbBeaMEmMROr1FrVQ,4034
46
+ dataeval/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
+ dataeval/utils/__init__.py,sha256=WW9e_1RbtkvLDRqu1NpDw3-V4su4mA8yJ_P3bgd_7Ho,283
48
+ dataeval/utils/dataset/__init__.py,sha256=IvRauQaa0CzJ5nZrfTSjGoaaKelyJcQDe3OPRw0-NXs,332
49
+ dataeval/utils/dataset/datasets.py,sha256=7tSqN3d8UncqmXh4eiEwarXgVxc4sMuIKPTqBCE0pN8,15080
50
+ dataeval/utils/dataset/read.py,sha256=Q_RaNTFXhkMsx3PrgJEIySdHAA-QxGuih6eq6mnJv-4,1524
51
+ dataeval/utils/dataset/split.py,sha256=1vNy5I1zZx-LIf8B0y57dUaO_UdVd1hyJggUANkwNtM,18958
52
+ dataeval/utils/image.py,sha256=AQljELyMFkYsf2AoNOH5dZG8DYE4hPw0MCk85eIXqAw,1926
53
+ dataeval/utils/metadata.py,sha256=tRcXgJsM1l7vt_naNJj8g8_EHD_AB5MGi1uWxqZsA6M,27431
54
+ dataeval/utils/plot.py,sha256=YyFL1KoJgnl2Bip7m73WVBJa6zbsBnn5c1b3skFfUrA,7068
55
+ dataeval/utils/shared.py,sha256=xvF3VLfyheVwJtdtDrneOobkKf7t-JTmf_w91FWXmqo,3616
56
+ dataeval/utils/torch/__init__.py,sha256=dn5mjCrFp0b1aL_UEURhONU0Ag0cmXoTOBSGagpkTiA,325
57
+ dataeval/utils/torch/blocks.py,sha256=HVhBTMMD5NA4qheMUgyol1KWiKZDIuc8k5j4RcMKmhk,1466
58
+ dataeval/utils/torch/gmm.py,sha256=fQ8CBO4Bf6i9N1CZdeJ8VJP25fsPjgMextQkondwgvo,3693
59
+ dataeval/utils/torch/internal.py,sha256=qAzQTwTI9Qy6f01Olw3d1TIJ4HoWGf0gQzgWVcdD2x4,6653
60
+ dataeval/utils/torch/models.py,sha256=Df3B_9x5uu-Y5ZOyhRZYpKJnDvxt0hgMeJLy1E4oxpU,8519
61
+ dataeval/utils/torch/trainer.py,sha256=Qay0LK63RuyoGYiJ5zI2C5BVym309ORvp6shhpcrIU4,5589
62
+ dataeval/workflows/__init__.py,sha256=L9yfBipNFGnYuN2JbMknIHDvziwfa2XAGFnOwifZbls,216
63
+ dataeval/workflows/sufficiency.py,sha256=jf53J1PAlfRHSjGpMCWRJzImitLtCQvTMCaMm28ZuPM,18675
64
+ dataeval-0.76.1.dist-info/LICENSE.txt,sha256=uAooygKWvX6NbU9Ran9oG2msttoG8aeTeHSTe5JeCnY,1061
65
+ dataeval-0.76.1.dist-info/METADATA,sha256=w02IzEy_S5kgRZFRGbWayMg98uFdn3jJT4Gl6MOQzek,5196
66
+ dataeval-0.76.1.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
67
+ dataeval-0.76.1.dist-info/RECORD,,
@@ -1,67 +0,0 @@
1
- dataeval/__init__.py,sha256=yESctPswyAJ01Hr9k4QUoGZp8D0RtvoQ26k4AFE2vs4,1472
2
- dataeval/detectors/__init__.py,sha256=iifG-Z08mH5B4QhkKtAieDGJBKldKvmCXpDQJD9qVY8,206
3
- dataeval/detectors/drift/__init__.py,sha256=wO294Oz--l0GuZTAkBpyGwZphbQsot57HoiEX6kjNOc,652
4
- dataeval/detectors/drift/base.py,sha256=sX46grnr4DV0WMofLTI2a_tDHR4OLZEUCQrMLePouqg,14468
5
- dataeval/detectors/drift/cvm.py,sha256=TATS6IOE0INO1pkyRkesgrhDawD_kITsRsOOGVRs420,4132
6
- dataeval/detectors/drift/ks.py,sha256=3Jgh5W7pC1hO1yZPCiXc47snlSdXv5BIG8sCyRRz-Ec,4220
7
- dataeval/detectors/drift/mmd.py,sha256=lD__AouWlYWCJOD0eNNEhmLTnUPwNTBU6OCgITcpw40,7592
8
- dataeval/detectors/drift/torch.py,sha256=ykD-Nggys5T9FTGXXbYYOi2WRKwEzEjXhL8ZueVmTxU,7659
9
- dataeval/detectors/drift/uncertainty.py,sha256=Pdim80_-ainvOX5-7fhH9cvblYI2d-zocEwZO-JfCg4,5345
10
- dataeval/detectors/drift/updates.py,sha256=UJ0z5hlunRi7twnkLABfdJG3tT2EqX4y9IGx8_USYvo,1780
11
- dataeval/detectors/linters/__init__.py,sha256=CZV5naeYQYL3sHXO_CXB26AXkyTeKHI-TMaewtEs8Ag,483
12
- dataeval/detectors/linters/clusterer.py,sha256=1qIQo5NuJkx-phKFWuXkUpUJLcqTt92L8Cpv3AmO3xQ,20929
13
- dataeval/detectors/linters/duplicates.py,sha256=pcCRN27IuGa6ASkiFG73kYdI8_X0j12INbkD9GOlWPs,5614
14
- dataeval/detectors/linters/merged_stats.py,sha256=X-bDTwjyR8RuVmzxLaHZmQ5nI3oOWvsqVlitdSncapk,1355
15
- dataeval/detectors/linters/outliers.py,sha256=Fn6R_7mGOrWlTRCXFrjHvIFNELN6CTosoJgzDr8cVr0,10253
16
- dataeval/detectors/ood/__init__.py,sha256=hTeR-Aqt6SKWsqFusaKiw_TlnFPe_sV3fQ7NKUTzZrU,292
17
- dataeval/detectors/ood/ae.py,sha256=SL8oKTERhMwaZTQWwDhQQ6H07UKj8ozXqEWO3TaOAos,2151
18
- dataeval/detectors/ood/base.py,sha256=6gUkbGE6PbKmA899rXOTOIeT8u_gaD0DNDQV8Wyfk5Y,3421
19
- dataeval/detectors/ood/metadata_ks_compare.py,sha256=-hEhDNXFC7X8wmFeoigO7A7Qn90vRLroN_nKDwNgjnE,5204
20
- dataeval/detectors/ood/metadata_least_likely.py,sha256=rb8GOgsrlrEzc6fxccdmyZQ5PC7HtTsTY8U97D-h5OU,5088
21
- dataeval/detectors/ood/metadata_ood_mi.py,sha256=7_Sdzf7-x1TlrIQvSyOIB98C8_UQhUwmwFQmZ9_q1Uc,4042
22
- dataeval/detectors/ood/mixin.py,sha256=Ia-rJF6rtGhE8uavijdbzOha3ueFk2CFfA0Ah_mnF40,4976
23
- dataeval/detectors/ood/output.py,sha256=8UQbtudQ0gSeq_hQV67IE5SfHednaiGUHv9MideETdk,1710
24
- dataeval/interop.py,sha256=GLziERWQQGwUO4Nb-uHpbLlvBOT2WF2GVilTHmsDq8w,2279
25
- dataeval/log.py,sha256=Mn5bRWO0cgtAYd5VGYSFiPgu57ta3zoktrtHAZ1m3dU,357
26
- dataeval/metrics/__init__.py,sha256=p-lRjm0oVHD3cXZeEajTfuGTuQOCCVHbJ8CqAI_GHVY,238
27
- dataeval/metrics/bias/__init__.py,sha256=knYgCdeHredaHI6KGdjiYM6ViPfDf8NW35xkKiiGlVM,599
28
- dataeval/metrics/bias/balance.py,sha256=od3gcejOqJDDymy09OWSxzqkBNyh7Vf3aXN9o6IPKHY,9151
29
- dataeval/metrics/bias/coverage.py,sha256=k8TJAsUWlLgn_-JEtRWIOwhtMRwXmyGzLDndGxNTsAU,5745
30
- dataeval/metrics/bias/diversity.py,sha256=upj-Gx_4-bBF-4dDaUSuURIbP98Ghk-BSCK5ZJNGMEg,8318
31
- dataeval/metrics/bias/parity.py,sha256=wVMfzKFqzHkp3SNUJFjRH_Eej9DIg-xAhHkShIAek68,12755
32
- dataeval/metrics/estimators/__init__.py,sha256=oY_9jX7V-Kg7-4KpvMNB4rUhsk8QTA0DIoM8d2VtVIg,380
33
- dataeval/metrics/estimators/ber.py,sha256=p3KaY-rnK45CUDaqx-55wWG6yHcDnH6Kkkt9r6FkmZY,5003
34
- dataeval/metrics/estimators/divergence.py,sha256=QYkOs7In9un0tYHztwZ5kNqiWVNS3Lgmxn1716H8HG4,4243
35
- dataeval/metrics/estimators/uap.py,sha256=ELa5MixMOJZoW5rUuVLOXynfLMbVjxb-r7VYF5qqXrw,2139
36
- dataeval/metrics/stats/__init__.py,sha256=Js_mklHJbHwOXJtMFo9NIyePZLwLZL-jruwmcjoLsZc,1086
37
- dataeval/metrics/stats/base.py,sha256=U0yPaRSHuPGZk3A7hl8ghJCki7iBtW5wM1eZvElu1_w,12038
38
- dataeval/metrics/stats/boxratiostats.py,sha256=fNzHT_nZX0MYeHkWRdcfEz2mtRC2d1JxpoK3l4EBrQc,6301
39
- dataeval/metrics/stats/datasetstats.py,sha256=krOm48yjyzYOWKLaWFqHAQPmuhiN4manif7ZXh2Ohhg,5828
40
- dataeval/metrics/stats/dimensionstats.py,sha256=_mN7wHencHh4UNd9XUflhq0sIa9yLPk3yHqmossDEGk,3985
41
- dataeval/metrics/stats/hashstats.py,sha256=_zZOwnQDlpMoPyqbOV2v9V_Uqox0c4vX2Khv5u_fAk8,5068
42
- dataeval/metrics/stats/labelstats.py,sha256=mLH02Xy_uT-qN7HXuXEgs786T2Xr0BMudweBDeEWd5I,4065
43
- dataeval/metrics/stats/pixelstats.py,sha256=t8abfenA79x87CMqPuKtddglD3l_LA6nXS4K_FlL4-k,4148
44
- dataeval/metrics/stats/visualstats.py,sha256=UU0oa5BWuIOTDM1H1ZnlhYyu8ruVEnaLPCDOsbm-q1c,4546
45
- dataeval/output.py,sha256=hR5TJ67f7FgrZO9Du46aw-jvRpMjOimSgJSau4ZNK44,3565
46
- dataeval/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
- dataeval/utils/__init__.py,sha256=fBpXVWzNaXySTuZWsD8Jg9LLHzb23nz_PfdxPD_gc8c,279
48
- dataeval/utils/dataset/__init__.py,sha256=IvRauQaa0CzJ5nZrfTSjGoaaKelyJcQDe3OPRw0-NXs,332
49
- dataeval/utils/dataset/datasets.py,sha256=7tSqN3d8UncqmXh4eiEwarXgVxc4sMuIKPTqBCE0pN8,15080
50
- dataeval/utils/dataset/read.py,sha256=tt-9blXzYLRb4Vgv6DrFj2ikUSvBF0-qTSnvvYec_2U,1523
51
- dataeval/utils/dataset/split.py,sha256=FpxHxmewjqIj6hikCsamNQTq877qu4HfKnzArOyvmyY,18957
52
- dataeval/utils/image.py,sha256=AQljELyMFkYsf2AoNOH5dZG8DYE4hPw0MCk85eIXqAw,1926
53
- dataeval/utils/metadata.py,sha256=mhMhBgb7nAIIljDdecOqiZ1zsYagE6h8DKxE_DFDW-E,22270
54
- dataeval/utils/plot.py,sha256=jQSiqDArFOlKZaIbv4Viso_ShU3LnZE-Y2qXKuKsa8M,3790
55
- dataeval/utils/shared.py,sha256=xvF3VLfyheVwJtdtDrneOobkKf7t-JTmf_w91FWXmqo,3616
56
- dataeval/utils/torch/__init__.py,sha256=dn5mjCrFp0b1aL_UEURhONU0Ag0cmXoTOBSGagpkTiA,325
57
- dataeval/utils/torch/blocks.py,sha256=HVhBTMMD5NA4qheMUgyol1KWiKZDIuc8k5j4RcMKmhk,1466
58
- dataeval/utils/torch/gmm.py,sha256=fQ8CBO4Bf6i9N1CZdeJ8VJP25fsPjgMextQkondwgvo,3693
59
- dataeval/utils/torch/internal.py,sha256=qAzQTwTI9Qy6f01Olw3d1TIJ4HoWGf0gQzgWVcdD2x4,6653
60
- dataeval/utils/torch/models.py,sha256=Df3B_9x5uu-Y5ZOyhRZYpKJnDvxt0hgMeJLy1E4oxpU,8519
61
- dataeval/utils/torch/trainer.py,sha256=Qay0LK63RuyoGYiJ5zI2C5BVym309ORvp6shhpcrIU4,5589
62
- dataeval/workflows/__init__.py,sha256=L9yfBipNFGnYuN2JbMknIHDvziwfa2XAGFnOwifZbls,216
63
- dataeval/workflows/sufficiency.py,sha256=nL99iDlu2bF_9VGu3ioLFDJBgBBJEdwEXROxXm_0sfY,18673
64
- dataeval-0.75.0.dist-info/LICENSE.txt,sha256=Kpzcfobf1HlqafF-EX6dQLw9TlJiaJzfgvLQFukyXYw,1060
65
- dataeval-0.75.0.dist-info/METADATA,sha256=6m2O6vreJR3Lq1_BXEU6DHnK2C5L_q5YAPofIl4kxCw,5410
66
- dataeval-0.75.0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
67
- dataeval-0.75.0.dist-info/RECORD,,