-
Notifications
You must be signed in to change notification settings - Fork 66
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cech persistence sklearn #1126
base: master
Are you sure you want to change the base?
Cech persistence sklearn #1126
Conversation
|
||
class CechPersistence(BaseEstimator, TransformerMixin): | ||
""" | ||
This is a class for constructing Čech complexes and computing the persistence diagrams from them. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this sentence is very misleading: no Cech complex is built in the process, that's the point of the alpha and delaunay-cech, they build smaller filtrations that still have the same diagram.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I reworked class explanation on 322487c
…ompute persistence), and rename cech variable
It actually passes. I guess because it isn't in CMakeLists.txt yet? |
Could we also add typing to this pipeline (cf #920) ? |
As I said in the other PR, the interaction with the doc is suboptimal currently, Vincent is looking into options to make it nicer so we can start adding typing all over the place.
An option would be to remove it, it is not very useful for alpha-complex / delaunay-cech (what this class currently uses), but it seems likely that we will add a pure Cech option at some point (useful in high dimension with a very low threshold) where the threshold will be essential.
Ah, right, this was supposed to be the occasion to tackle this sqrt business, so let's do that.
Note that even with the square root, we will likely stick to a convention where the edges have a filtration twice as large in the Rips than in the Cech (diameter vs radius). So, what would be a good way to handle the square/sqrt issue? |
IIRC, in the literature, this is often presented as so this factor 2 is to be expected (but could be indeed be discussed).
I think a good solution to this squared issue would be to have two separate classes in the interface, |
Do I understand correctly that you would split squared / not squared as follows, without options?
This means that
It is an acceptable possibility, but I wouldn't go so far as to call it "good". |
cf. #1137 |
A possibility is to put directly the
Yes, but I feel that users that want to compute weighted alpha complexes, or squared alpha complexes specifically are not neophyte to TDA (I've never seen someone use weights, or want the square), so we can expect them to read the documentation for this specific use case. --- I may be mistaken on these stats.
Q. Is it possible to define WeightedAlphaComplexes with a squared rescaling, while preserving the weights on the points?
If the number of classes is an issue, we can just alias classes to other with proper default values. Doing multiple classes also reduces the cyclomatic complexity, so depending on what we are doing, it's not clear what is the best. |
No description provided.