giotto-ai / giotto-tda

A high-performance topological machine learning toolbox in Python
https://giotto-ai.github.io/gtda-docs
Other
845 stars 173 forks source link

Enable edge collapse in VietorisRipsPersistence #483

Closed ulupo closed 4 years ago

ulupo commented 4 years ago

Reference issues/PRs Follows #469.

Types of changes

Description

Checklist

ulupo commented 4 years ago

Thanks @gtauzin! An interesting and potentially super impactful research question for @MonkeyBreaker et al is whether we can have an "auto" mode with a heuristic that decides very quickly on each input whether the collapse is likely to help or not. I leave this to those who have time but I stress again that it could have a huge impact.

Another research question moving forward is whether flagser can be given the same treatment...

MonkeyBreaker commented 4 years ago

Great ! :+1:

About your question, I'll add it to my infinity TODO stack and hope it will pop at some point ...

I'm currently benchmarking the with/without collapser, this could help to understand if there's a possible heuristic to use

gtauzin commented 4 years ago

Thanks @gtauzin! An interesting and potentially super impactful research question for @MonkeyBreaker et al is whether we can have an "auto" mode with a heuristic that decides very quickly on each input whether the collapse is likely to help or not. I leave this to those who have time but I stress again that it could have a huge impact.

Another research question moving forward is whether flagser can be given the same treatment...

I would say yes if directed=False but flagser offers a wide range of edge filtrations. Would that work for all of them?

ulupo commented 4 years ago

Sure, directed=False with 'max' is the same (input-output--wise) as ripser AFAIK, so in principle we could already do that. My point was that there is a research question about directed=True with 'max'. The question being whether the mathematics and the C++ source code can be extended to cover that case.