La bibliothèque GUDHI Python

1. A propos de la bibliothèque gudhi

La bibliothèque GUDHI (acronyme de "Topologie des Données Géométriques et Homologiques") est une bibliothèque Python puissante et polyvalente utilisée pour l'analyse topologique des données. Elle offre des fonctionnalités avancées pour la construction, la manipulation et l'analyse de complexes simpliciaux, qui sont des structures mathématiques utilisées pour représenter des données complexes.
GUDHI est conçue pour traiter efficacement des ensembles de données de grande taille et permet de calculer diverses caractéristiques topologiques telles que les persistences, les diagrammes de persistence, les homologies persistantes et bien d'autres encore. Ces caractéristiques topologiques permettent d'extraire des informations significatives sur la structure et les relations entre les données, ce qui est particulièrement utile dans des domaines tels que la vision par ordinateur, l'apprentissage automatique, la biologie, la physique et les sciences sociales.
La bibliothèque GUDHI fournit une interface simple et conviviale pour construire des complexes simpliciaux à partir de différentes sources de données, telles que des points dans l'espace, des nuages de points, des graphes ou des ensembles de points dans des métriques discrètes ou continues. Elle propose également plusieurs algorithmes pour effectuer des opérations sur ces complexes, comme la filtration, la réduction, le regroupement et la recherche de motifs topologiques.
L'un des points forts de GUDHI est sa capacité à calculer les caractéristiques topologiques de manière efficace grâce à des algorithmes optimisés et parallèles. Cela permet d'analyser rapidement des ensembles de données volumineux et de générer des résultats précis en termes de topologie. De plus, GUDHI offre une intégration transparente avec d'autres bibliothèques Python couramment utilisées dans le domaine de l'analyse des données, telles que NumPy, SciPy et scikit-learn, ce qui facilite l'intégration dans des workflows existants.
En résumé, la bibliothèque GUDHI est un outil puissant et flexible pour l'analyse topologique des données. Elle offre des fonctionnalités avancées pour la construction, la manipulation et l'analyse de complexes simpliciaux, permettant ainsi d'extraire des informations topologiques significatives à partir de données complexes. Que ce soit pour explorer la structure d'un nuage de points, étudier les motifs topologiques d'un graphe ou analyser les caractéristiques topologiques d'un ensemble de données, GUDHI est un choix de prédilection pour les chercheurs et les praticiens de l'analyse des données.

2. Installation & premier usage de la bibliothèque GUDHI

Nous allons voir dans ce paragraphe, comment installer GUDHI, et nous donnerons ensuite un exemple simple d'usage !
Pour installer la bibliothèque GUDHI, vous pouvez utiliser la commande pip dans votre terminal. Assurez-vous d'avoir Python et pip installés sur votre système avant de procéder. Voici les étapes à suivre :

  1. Ouvrez votre terminal.
  2. Exécutez la commande suivante pour installer GUDHI :

Cette commande téléchargera et installera la bibliothèque GUDHI ainsi que toutes ses dépendances.
Une fois l'installation terminée, vous pouvez commencer à utiliser GUDHI dans votre code Python. Voici un exemple simple d'utilisation de GUDHI pour construire et analyser un complexe simplicial :

Dans cet exemple:

  1. Nous importons le module GUDHI: et créons un SimplexTree, qui est une structure de données pour représenter un complexe simplicial.
  2. Nous ajoutons un simplexe: à trois sommets au SimplexTree.
  3. Nous calculons ensuite les persistences: et affichons les diagrammes de persistence.
  4. Enfin, nous calculons l'homologie persistante: et affichons les classes d'homologie.

N'hésitez pas à consulter la documentation officielle de GUDHI pour en savoir plus sur les fonctionnalités et les utilisations avancées de la bibliothèque : https://gudhi.inria.fr/

3. Historique des versions

Voici l'historique des versions de la bibliothèque GUDHI :

  1. GUDHI 2.0.0 (juillet 2014) : Cette version initiale de GUDHI a introduit les bases de la bibliothèque, avec des fonctionnalités de base pour la construction et l'analyse de complexes simpliciaux.
  2. GUDHI 2.1.0 (décembre 2014) : Cette version a ajouté de nouvelles fonctionnalités, notamment la prise en charge des diagrammes de persistence, des opérations de filtrage et des algorithmes de réduction.
  3. GUDHI 2.2.0 (juin 2015) : Cette version a introduit des améliorations majeures, telles que des optimisations de performances pour les calculs de persistences et des fonctionnalités avancées pour la manipulation de complexes simpliciaux.
  4. GUDHI 2.3.0 (juin 2016) : Cette version a apporté des améliorations supplémentaires, notamment la prise en charge de nouvelles structures de données, comme les graphes orientés et les ensembles de points dans des métriques discrètes.
  5. GUDHI 2.4.0 (janvier 2018) : Cette version a introduit des fonctionnalités pour l'analyse de données multidimensionnelles, ainsi que des améliorations de l'interface utilisateur et de la documentation.
  6. GUDHI 3.0.0 (octobre 2019) : Cette version majeure a apporté d'importantes améliorations de performances, avec une réécriture complète de la bibliothèque pour optimiser les calculs de persistences et d'homologies persistantes.
  7. GUDHI 3.1.0 (mai 2020) : Cette version a ajouté de nouvelles fonctionnalités, telles que la prise en charge de l'algorithme d'interpolation linéaire pour les persistences, ainsi que des améliorations de l'interface utilisateur et de la documentation.
  8. GUDHI 3.2.0 (février 2021) : Cette version a introduit des améliorations supplémentaires de performance, ainsi que de nouvelles fonctionnalités, notamment la prise en charge des partitions dans les complexes simpliciaux.




4. Liste des méthodes associées à GUDHI

Voici une liste des principales méthodes associées à la bibliothèque GUDHI :

  1. SimplexTree.insert(simplex): Insère un simplexe dans le SimplexTree.
  2. SimplexTree.remove(simplex): Supprime un simplexe du SimplexTree.
  3. SimplexTree.persistence(): Calcule les persistences du SimplexTree.
  4. SimplexTree.persistence_pairs(): Renvoie les paires de persistance du SimplexTree.
  5. SimplexTree.persistence_intervals_in_dimension(dim): Renvoie les intervalles de persistance dans une dimension donnée du SimplexTree.
  6. SimplexTree.persistence_homology(): Calcule l'homologie persistante du SimplexTree.
  7. CubicalComplex.generate_balls(points, radius): Génère des boules centrées sur les points donnés avec un rayon donné dans un complexe cubique.
  8. AlphaComplex.create_complex(points, max_alpha_square): Crée un complexe alpha à partir d'un ensemble de points et d'un paramètre max_alpha_square.
  9. RipsComplex.create_complex(points, max_edge_length): Crée un complexe de Rips à partir d'un ensemble de points et d'un paramètre max_edge_length.
  10. WitnessComplex.create_complex(points, witnesses, max_edge_length): Crée un complexe de témoin à partir d'un ensemble de points, des témoins et d'un paramètre max_edge_length.
  11. VietorisRipsComplex.create_simplex_tree(points, max_edge_length): Crée un SimplexTree à partir d'un ensemble de points et d'un paramètre max_edge_length.
  12. SpatialSorting.sort_points(points): Trie les points spatialement.
  13. CechComplex.create_complex(points, radius): Crée un complexe de Cech à partir d'un ensemble de points et d'un rayon donné.
  14. WitnessComplex.create_complex(points, witnesses, max_alpha_square): Crée un complexe de témoin à partir d'un ensemble de points, des témoins et d'un paramètre max_alpha_square.
  15. BottleneckDistance.compute_bottleneck_distance(diagram1, diagram2): Calcule la distance de Bottleneck entre deux ensembles de diagrammes de persistence.

Ces méthodes représentent quelques-unes des fonctionnalités clés de la bibliothèque GUDHI pour la construction, la manipulation et l'analyse de complexes simpliciaux, ainsi que le calcul des persistences et des homologies persistantes. Il existe bien sûr de nombreuses autres méthodes disponibles pour répondre à divers besoins en analyse topologique des données. Je vous recommande de consulter la documentation officielle de GUDHI pour une liste complète des méthodes et des fonctionnalités disponibles.

 

Younes Derfoufi
CRMEF OUJDA

Leave a Reply