compositional-explanations 0.0.4__tar.gz → 0.0.4.2__tar.gz
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.
- {compositional_explanations-0.0.4/src/compositional_explanations.egg-info → compositional_explanations-0.0.4.2}/PKG-INFO +1 -1
- {compositional_explanations-0.0.4 → compositional_explanations-0.0.4.2}/pyproject.toml +2 -2
- {compositional_explanations-0.0.4 → compositional_explanations-0.0.4.2}/src/compositional_explanations/optimal.py +6 -5
- {compositional_explanations-0.0.4 → compositional_explanations-0.0.4.2/src/compositional_explanations.egg-info}/PKG-INFO +1 -1
- {compositional_explanations-0.0.4 → compositional_explanations-0.0.4.2}/LICENSE +0 -0
- {compositional_explanations-0.0.4 → compositional_explanations-0.0.4.2}/README.md +0 -0
- {compositional_explanations-0.0.4 → compositional_explanations-0.0.4.2}/setup.cfg +0 -0
- {compositional_explanations-0.0.4 → compositional_explanations-0.0.4.2}/src/compositional_explanations/beam.py +0 -0
- {compositional_explanations-0.0.4 → compositional_explanations-0.0.4.2}/src/compositional_explanations/formula.py +0 -0
- {compositional_explanations-0.0.4 → compositional_explanations-0.0.4.2}/src/compositional_explanations/metrics.py +0 -0
- {compositional_explanations-0.0.4 → compositional_explanations-0.0.4.2}/src/compositional_explanations/optimal_sample_heuristic.py +0 -0
- {compositional_explanations-0.0.4 → compositional_explanations-0.0.4.2}/src/compositional_explanations/optimal_sum_heuristic.py +0 -0
- {compositional_explanations-0.0.4 → compositional_explanations-0.0.4.2}/src/compositional_explanations/path_heuristic.py +0 -0
- {compositional_explanations-0.0.4 → compositional_explanations-0.0.4.2}/src/compositional_explanations.egg-info/SOURCES.txt +0 -0
- {compositional_explanations-0.0.4 → compositional_explanations-0.0.4.2}/src/compositional_explanations.egg-info/dependency_links.txt +0 -0
- {compositional_explanations-0.0.4 → compositional_explanations-0.0.4.2}/src/compositional_explanations.egg-info/requires.txt +0 -0
- {compositional_explanations-0.0.4 → compositional_explanations-0.0.4.2}/src/compositional_explanations.egg-info/top_level.txt +0 -0
- {compositional_explanations-0.0.4 → compositional_explanations-0.0.4.2}/src/package_utils/constants.py +0 -0
- {compositional_explanations-0.0.4 → compositional_explanations-0.0.4.2}/src/package_utils/general_utils.py +0 -0
- {compositional_explanations-0.0.4 → compositional_explanations-0.0.4.2}/src/package_utils/mask_utils.py +0 -0
- {compositional_explanations-0.0.4 → compositional_explanations-0.0.4.2}/src/package_utils/optimal_utils.py +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "compositional_explanations"
|
|
7
|
-
version = "0.0.4"
|
|
7
|
+
version = "0.0.4.2"
|
|
8
8
|
authors = [
|
|
9
9
|
{ name="Biagio La Rosa", email="bilarosa@ucsc.edu" },
|
|
10
10
|
]
|
|
@@ -26,4 +26,4 @@ dependencies = [
|
|
|
26
26
|
|
|
27
27
|
[project.urls]
|
|
28
28
|
Homepage = "https://github.com/aiea-lab/optimal-compositional-explanations"
|
|
29
|
-
Issues = "https://github.com/aiea-lab/optimal-compositional-explanations/issues"
|
|
29
|
+
Issues = "https://github.com/aiea-lab/optimal-compositional-explanations/issues"
|
|
@@ -121,18 +121,18 @@ def apply_distributive_property(node):
|
|
|
121
121
|
# considering the transformations since computing ((A AND NOT C) OR (B AND NOT C)) is more accurate than
|
|
122
122
|
# computing ((A OR B) AND NOT C) since everythin is a pariwise estimation.
|
|
123
123
|
return label
|
|
124
|
+
external_op = label.__class__
|
|
124
125
|
if external_op == F.Or:
|
|
125
126
|
# We do not rewrite (A AND B) OR C as (A OR C) AND (B OR C).
|
|
126
127
|
# Otherwise, it would put C on both sides of an AND.
|
|
127
128
|
# Our code assumes that AND removes always the unique elements,
|
|
128
|
-
# since it
|
|
129
|
-
# Therefore, it would underestimate the
|
|
129
|
+
# since it assumes the concepts cannot be repeated.
|
|
130
|
+
# Therefore, it would underestimate the numerator of the IoU,
|
|
130
131
|
# leading to a lower upper bound.
|
|
131
132
|
return label
|
|
132
133
|
label_left = label.left
|
|
133
134
|
num_left_op = len(set(label_left.get_ops()))
|
|
134
135
|
if num_left_op == 1:
|
|
135
|
-
external_op = label.__class__
|
|
136
136
|
internal_op = label_left.__class__
|
|
137
137
|
if external_op == internal_op:
|
|
138
138
|
return label
|
|
@@ -142,8 +142,9 @@ def apply_distributive_property(node):
|
|
|
142
142
|
for val in vals_left:
|
|
143
143
|
inner_formula = external_op(F.Leaf(val), label.right)
|
|
144
144
|
chain.append(inner_formula)
|
|
145
|
-
|
|
146
|
-
|
|
145
|
+
final_formula = chain[0]
|
|
146
|
+
for term in chain[1:]:
|
|
147
|
+
final_formula = internal_op(final_formula, term)
|
|
147
148
|
return final_formula
|
|
148
149
|
else:
|
|
149
150
|
return label
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|