summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMarc Glisse <marc.glisse@inria.fr>2019-11-20 22:41:54 +0100
committerMarc Glisse <marc.glisse@inria.fr>2019-11-20 22:41:54 +0100
commit96c90dd002e7d4f30ce3d0f3ddf45fbfd03fc01a (patch)
tree8b5594b6a1ec1fbdee99217401764ee65216ef9c /src
parent7ea7538d02b8f0500dbc31f48dd31fb14d320135 (diff)
More tweaks in representations
wording for the case where CGAL is missing comparing pointers is sufficient to detect if we are doing fit_transform epsilon is an additive error for bottleneck, so it is unsafe to use 1e-3 or 1e-4 as default
Diffstat (limited to 'src')
-rw-r--r--src/python/gudhi/representations/metrics.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/python/gudhi/representations/metrics.py b/src/python/gudhi/representations/metrics.py
index c512cb82..f9f59053 100644
--- a/src/python/gudhi/representations/metrics.py
+++ b/src/python/gudhi/representations/metrics.py
@@ -86,12 +86,12 @@ class BottleneckDistance(BaseEstimator, TransformerMixin):
"""
This is a class for computing the bottleneck distance matrix from a list of persistence diagrams.
"""
- def __init__(self, epsilon=1e-3):
+ def __init__(self, epsilon=None):
"""
Constructor for the BottleneckDistance class.
Parameters:
- epsilon (double): approximation quality (default 1e-4).
+ epsilon (double): absolute (additive) error tolerated on the distance (default is the smallest positive float), see :func:`bottleneck_distance`.
"""
self.epsilon = epsilon
@@ -118,7 +118,8 @@ class BottleneckDistance(BaseEstimator, TransformerMixin):
"""
num_diag1 = len(X)
- if len(self.diagrams_) == len(X) and np.all([np.array_equal(self.diagrams_[i], X[i]) for i in range(len(X))]):
+ #if len(self.diagrams_) == len(X) and np.all([np.array_equal(self.diagrams_[i], X[i]) for i in range(len(X))]):
+ if X is self.diagrams_:
matrix = np.zeros((num_diag1, num_diag1))
if USE_GUDHI:
@@ -127,7 +128,7 @@ class BottleneckDistance(BaseEstimator, TransformerMixin):
matrix[i,j] = bottleneck_distance(X[i], X[j], self.epsilon)
matrix[j,i] = matrix[i,j]
else:
- print("Gudhi required---returning null matrix")
+ print("Gudhi built without CGAL: returning a null matrix")
else:
num_diag2 = len(self.diagrams_)
@@ -138,7 +139,7 @@ class BottleneckDistance(BaseEstimator, TransformerMixin):
for j in range(num_diag2):
matrix[i,j] = bottleneck_distance(X[i], self.diagrams_[j], self.epsilon)
else:
- print("Gudhi required---returning null matrix")
+ print("Gudhi built without CGAL: returning a null matrix")
Xfit = matrix