From 1aaa09bab10ccc6ca56e31b1f49f420aad5d6f50 Mon Sep 17 00:00:00 2001 From: pdlotko Date: Fri, 3 Mar 2017 10:47:59 +0000 Subject: changes to the doc, towards building a doc... git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/branches/gudhi_stat@2145 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: ced0884e23fdac7301bc379c8533bb3b2fc4ae53 --- biblio/bibliography.bib | 70 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 69 insertions(+), 1 deletion(-) (limited to 'biblio') diff --git a/biblio/bibliography.bib b/biblio/bibliography.bib index 9fc01a5d..1bb9a56c 100644 --- a/biblio/bibliography.bib +++ b/biblio/bibliography.bib @@ -1,4 +1,4 @@ -@inproceedings{gudhilibrary_ICMS14, +F. Lecci@inproceedings{gudhilibrary_ICMS14, author = {Cl\'ement Maria and Jean-Daniel Boissonnat and Marc Glisse and Mariette Yvinec}, title = {The {G}udhi Library: Simplicial Complexes and Persistent Homology}, @@ -954,3 +954,71 @@ pages={91-106}, language={English} } +@ARTICLE{landscapes1, + author = {P. Bubenik}, + title = {Statistical topological data analysis using persistence landscapes.}, + journal = {Journal of Machine Learning Research}, + year = {2015} +} + +@ARTICLE{landscapes2, + author = {P. Bubenik, P. Dlotko}, + title = {A persistence landscapes toolbox for topological statistics.}, + journal = {Journal of Symbolic Computation.}, + year = {2016} +} + +@ARTICLE{tda, + author = {B. Fasy, J. Kim, F. Lecci, C. Maria}, + title = {Introduction to the R package TDA.}, + journal = {arXiv:1411.1830.}, + year = {2016} +} + + +@ARTICLE{bologna1, + author = {P. Donatini, P. Frosini, A. Lovato}, + title = {Size functions for signature recognition.}, + journal = {Proceedings of SPIE, Vision Geometry VII, vol. 3454}, + year = {1998} +} + + +@ARTICLE{bologna2, + author = {M. Ferri, P. Frosini, A. Lovato, C. Zambelli}, + title = {Point selection: A new comparison scheme for size functions (With an application to monogram recognition).}, + journal = {Proceedings Third Asian Conference on Computer Vision, Lecture Notes in Computer Science 1351.}, + year = {1998} +} + +@ARTICLE{Henry, + author = {H. Adams, S. Chepushtanova, T. Emerson, E. Hanson, M. Kirby, F. Motta, R. Neville, C. Peterson, P. Shipman, L. Ziegelmeier}, + title = {Persistence Images: A Stable Vector Representation of Persistent Homology.}, + journal = {Journal of Machine Learning Research}, + year = {2017} +} + + +@ARTICLE{yasu, + author = {G. Kusano, K. Fukumizu, Y. Hiraoka}, + title = {Persistence weighted Gaussian kernel for topological data analysis.}, + journal = {ICML'16 Proceedings of the 33rd International Conference on International Conference on Machine Learning - Volume 48}, + year = {2016} +} + +@ARTICLE{uli, + author = {J. Reininghaus, S. Huber, U. Bauer, R. Kwitt}, + title = {A Stable Multi-Scale Kernel for Topological Machine Learning.}, + journal = {Proc. 2015 IEEE Conf. Comp. Vision & Pat. Rec. (CVPR '15)}, + year = {2015} +} + +@ARTICLE{vectors, + author = {M. Carrière, S. Oudot, M. Ovsjanikov}, + title = {Stable Topological Signatures for Points on 3D Shapes.}, + journal = {Proc. Sympos. on Geometry Processing}, + year = {2015} +} + + + -- cgit v1.2.3 From 9e356c063a162d5482c9b1237813dcf8e1d53d59 Mon Sep 17 00:00:00 2001 From: pdlotko Date: Fri, 3 Mar 2017 16:07:29 +0000 Subject: Labes in be bibliography changed to meangingfull ones. git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/branches/gudhi_stat@2157 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: 03cac72a0b7967ac840dc141d9a1048c77147817 --- biblio/bibliography.bib | 18 +++++++++--------- src/Gudhi_stat/doc/gudhi_stat_doc.h | 20 ++++++++++---------- 2 files changed, 19 insertions(+), 19 deletions(-) (limited to 'biblio') diff --git a/biblio/bibliography.bib b/biblio/bibliography.bib index 1bb9a56c..6be611a7 100644 --- a/biblio/bibliography.bib +++ b/biblio/bibliography.bib @@ -954,21 +954,21 @@ pages={91-106}, language={English} } -@ARTICLE{landscapes1, +@ARTICLE{bubenik_landscapes_2015, author = {P. Bubenik}, title = {Statistical topological data analysis using persistence landscapes.}, journal = {Journal of Machine Learning Research}, year = {2015} } -@ARTICLE{landscapes2, +@ARTICLE{bubenik_dlotko_landscapes_2016, author = {P. Bubenik, P. Dlotko}, title = {A persistence landscapes toolbox for topological statistics.}, journal = {Journal of Symbolic Computation.}, year = {2016} } -@ARTICLE{tda, +@ARTICLE{Fasy_Kim_Lecci_Maria_tda, author = {B. Fasy, J. Kim, F. Lecci, C. Maria}, title = {Introduction to the R package TDA.}, journal = {arXiv:1411.1830.}, @@ -976,7 +976,7 @@ language={English} } -@ARTICLE{bologna1, +@ARTICLE{Ferri_Frosini_comparision_sheme_1, author = {P. Donatini, P. Frosini, A. Lovato}, title = {Size functions for signature recognition.}, journal = {Proceedings of SPIE, Vision Geometry VII, vol. 3454}, @@ -984,14 +984,14 @@ language={English} } -@ARTICLE{bologna2, +@ARTICLE{Ferri_Frosini_comparision_sheme_2, author = {M. Ferri, P. Frosini, A. Lovato, C. Zambelli}, title = {Point selection: A new comparison scheme for size functions (With an application to monogram recognition).}, journal = {Proceedings Third Asian Conference on Computer Vision, Lecture Notes in Computer Science 1351.}, year = {1998} } -@ARTICLE{Henry, +@ARTICLE{Persistence_Images_2017, author = {H. Adams, S. Chepushtanova, T. Emerson, E. Hanson, M. Kirby, F. Motta, R. Neville, C. Peterson, P. Shipman, L. Ziegelmeier}, title = {Persistence Images: A Stable Vector Representation of Persistent Homology.}, journal = {Journal of Machine Learning Research}, @@ -999,21 +999,21 @@ language={English} } -@ARTICLE{yasu, +@ARTICLE{Kusano_Fukumizu_Hiraoka_PWGK, author = {G. Kusano, K. Fukumizu, Y. Hiraoka}, title = {Persistence weighted Gaussian kernel for topological data analysis.}, journal = {ICML'16 Proceedings of the 33rd International Conference on International Conference on Machine Learning - Volume 48}, year = {2016} } -@ARTICLE{uli, +@ARTICLE{Reininghaus_Huber_ALL_PSSK, author = {J. Reininghaus, S. Huber, U. Bauer, R. Kwitt}, title = {A Stable Multi-Scale Kernel for Topological Machine Learning.}, journal = {Proc. 2015 IEEE Conf. Comp. Vision & Pat. Rec. (CVPR '15)}, year = {2015} } -@ARTICLE{vectors, +@ARTICLE{Carriere_Oudot_Ovsjanikov_top_signatures_3d, author = {M. Carrière, S. Oudot, M. Ovsjanikov}, title = {Stable Topological Signatures for Points on 3D Shapes.}, journal = {Proc. Sympos. on Geometry Processing}, diff --git a/src/Gudhi_stat/doc/gudhi_stat_doc.h b/src/Gudhi_stat/doc/gudhi_stat_doc.h index 18e3a46e..3eb4dff1 100644 --- a/src/Gudhi_stat/doc/gudhi_stat_doc.h +++ b/src/Gudhi_stat/doc/gudhi_stat_doc.h @@ -81,7 +81,7 @@ namespace Gudhi_stat { *Below we are discussing the representations which are currently implemented in Gudhi\_stat: * *\section sec_persistence_landscapes Persistence Landscapes - *Persistence landscapes were originally proposed by Bubenik in \cite landscapes1. Efficient algorithms to compute them rigorously were proposed by Bubenik and Dlotko in \cite landscapes2. The idea of + *Persistence landscapes were originally proposed by Bubenik in \cite bubenik_landscapes_2015. Efficient algorithms to compute them rigorously were proposed by Bubenik and Dlotko in \cite bubenik_dlotko_landscapes_2016. The idea of * persistence landscapes is shortly summarized in below. * *To begin with, suppose we are given a point \f$(b,d) \in \mathbb{R}^2\f$ in a @@ -108,9 +108,9 @@ namespace Gudhi_stat { *function \f$L : \mathbb{N} \times \mathbb{R} \to [0,\infty)\f$ of two *variables, if we define \f$L(k,t) = \lambda_k(t)\f$. * - *The detailed description of algorithms used to compute persistence landscapes can be found in \cite landscapes2. + *The detailed description of algorithms used to compute persistence landscapes can be found in \cite bubenik_dlotko_landscapes_2016. * Note that this implementation provides exact representation of landscapes. That have many advantages, but also a few drawbacks. For instance, as discussed - * in \cite landscapes2, the exact representation of landscape may be of quadratic size with respect to the input persistence diagram. It may therefore happen + * in \cite bubenik_dlotko_landscapes_2016, the exact representation of landscape may be of quadratic size with respect to the input persistence diagram. It may therefore happen * that, for very large diagrams, using this representation may be memory--prohibitive. In such a case, there are two possible ways to proceed: * *\li Use non exact representation on a grid described in the Section \ref sec_landscapes_on_grid. @@ -148,15 +148,15 @@ namespace Gudhi_stat { *\li Number of points in a grid (positive integer \f$N\f$). * * - *Note that the same representation is used in TDA R-package \cite tda. + *Note that the same representation is used in TDA R-package \cite Fasy_Kim_Lecci_Maria_tda. * *\section sec_persistence_heat_maps Persistence heat maps *This is a general class of discrete structures which are based on idea of placing a kernel in the points of persistence diagrams. - *This idea appeared in work by many authors over the last 15 years. As far as we know this idea was firstly described in the work of Bologna group in \cite bologna1 and \cite bologna2. - *Later it has been described by Colorado State University group in \cite Henry. The presented paper in the first time provide a discussion of stability of the representation. - *Also, the same ideas are used in construction of two recent kernels used for machine learning: \cite yasu and \cite uli. Both the kernel's construction uses interesting ideas to - *ensure stability of the representation with respect to Wasserstein metric. In the kernel presented in \cite yasu, a scaling function is used to multiply the Gaussian kernel in the - *way that the points close to diagonal got low weight and consequently do not have a big influence on the resulting distribution. In \cite uli for every point \f$(b,d)\f$ two Gaussian kernels + *This idea appeared in work by many authors over the last 15 years. As far as we know this idea was firstly described in the work of Bologna group in \cite Ferri_Frosini_comparision_sheme_1 and \cite Ferri_Frosini_comparision_sheme_2. + *Later it has been described by Colorado State University group in \cite Persistence_Images_2017. The presented paper in the first time provide a discussion of stability of the representation. + *Also, the same ideas are used in construction of two recent kernels used for machine learning: \cite Kusano_Fukumizu_Hiraoka_PWGK and \cite Reininghaus_Huber_ALL_PSSK. Both the kernel's construction uses interesting ideas to + *ensure stability of the representation with respect to Wasserstein metric. In the kernel presented in \cite Kusano_Fukumizu_Hiraoka_PWGK, a scaling function is used to multiply the Gaussian kernel in the + *way that the points close to diagonal got low weight and consequently do not have a big influence on the resulting distribution. In \cite Reininghaus_Huber_ALL_PSSK for every point \f$(b,d)\f$ two Gaussian kernels *are added: first, with a weight 1 in a point \f$(b,d)\f$, and the second, with the weight -1 for a point \f$(b,d)\f$. In both cases, the representations are stable with respect to 1-Wasserstein distance. * *In Gudhi\_stat we currently implement a discretization of the distributions described above. The base of this implementation is 2-dimensional array of pixels. Each pixel have assigned a real value which @@ -174,7 +174,7 @@ namespace Gudhi_stat { * * *\section sec_persistence_vectors Persistence vectors - *This is a representation of persistent homology in a form of a vector which was designed for an application in 3d graphic in \cite vectors. Below we provide a short description of this representation. + *This is a representation of persistent homology in a form of a vector which was designed for an application in 3d graphic in \cite Carriere_Oudot_Ovsjanikov_top_signatures_3d. Below we provide a short description of this representation. * *Given a persistence diagram \f$D = \{ (b_i,d_i) \}\f$, for every pair of birth--death points \f$(b_1,d_1)\f$ and \f$(b_2,d_2)\f$ we compute the following three distances: * -- cgit v1.2.3 From ca2ad986b9925ab7006597f0f7045f7be47a42b2 Mon Sep 17 00:00:00 2001 From: pdlotko Date: Fri, 7 Apr 2017 09:10:52 +0000 Subject: Answers to Marc's comments git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/branches/gudhi_stat@2317 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: f941a6b20210282408d0ef95b84daa973add2513 --- biblio/bibliography.bib | 16 ++++++++-------- .../Persistence_landscape_on_grid.h | 8 +++++--- src/cmake/modules/GUDHI_user_version_target.txt | 2 +- src/common/doc/main_page.h | 17 +++++++++++++++++ src/cython/doc/img/average_landscape.png | Bin 0 -> 14917 bytes 5 files changed, 31 insertions(+), 12 deletions(-) create mode 100644 src/cython/doc/img/average_landscape.png (limited to 'biblio') diff --git a/biblio/bibliography.bib b/biblio/bibliography.bib index dbd0cb42..37aa8198 100644 --- a/biblio/bibliography.bib +++ b/biblio/bibliography.bib @@ -988,14 +988,14 @@ language={English} } @ARTICLE{bubenik_dlotko_landscapes_2016, - author = {P. Bubenik, P. Dlotko}, + author = {P. Bubenik and P. Dlotko}, title = {A persistence landscapes toolbox for topological statistics.}, journal = {Journal of Symbolic Computation.}, year = {2016} } @ARTICLE{Fasy_Kim_Lecci_Maria_tda, - author = {B. Fasy, J. Kim, F. Lecci, C. Maria}, + author = {B. Fasy and J. Kim and F. Lecci and C. Maria}, title = {Introduction to the R package TDA.}, journal = {arXiv:1411.1830.}, year = {2016} @@ -1003,7 +1003,7 @@ language={English} @ARTICLE{Ferri_Frosini_comparision_sheme_1, - author = {P. Donatini, P. Frosini, A. Lovato}, + author = {P. Donatini and P. Frosini and A. Lovato}, title = {Size functions for signature recognition.}, journal = {Proceedings of SPIE, Vision Geometry VII, vol. 3454}, year = {1998} @@ -1011,14 +1011,14 @@ language={English} @ARTICLE{Ferri_Frosini_comparision_sheme_2, - author = {M. Ferri, P. Frosini, A. Lovato, C. Zambelli}, + author = {M. Ferri and P. Frosini and A. Lovato and C. Zambelli}, title = {Point selection: A new comparison scheme for size functions (With an application to monogram recognition).}, journal = {Proceedings Third Asian Conference on Computer Vision, Lecture Notes in Computer Science 1351.}, year = {1998} } @ARTICLE{Persistence_Images_2017, - author = {H. Adams, S. Chepushtanova, T. Emerson, E. Hanson, M. Kirby, F. Motta, R. Neville, C. Peterson, P. Shipman, L. Ziegelmeier}, + author = {H. Adams and S. Chepushtanova and T. Emerson and E. Hanson and M. Kirby and F. Motta and R. Neville and C. Peterson and P. Shipman and L. Ziegelmeier}, title = {Persistence Images: A Stable Vector Representation of Persistent Homology.}, journal = {Journal of Machine Learning Research}, year = {2017} @@ -1026,21 +1026,21 @@ language={English} @ARTICLE{Kusano_Fukumizu_Hiraoka_PWGK, - author = {G. Kusano, K. Fukumizu, Y. Hiraoka}, + author = {G. Kusano and K. Fukumizu and Y. Hiraoka}, title = {Persistence weighted Gaussian kernel for topological data analysis.}, journal = {ICML'16 Proceedings of the 33rd International Conference on International Conference on Machine Learning - Volume 48}, year = {2016} } @ARTICLE{Reininghaus_Huber_ALL_PSSK, - author = {J. Reininghaus, S. Huber, U. Bauer, R. Kwitt}, + author = {J. Reininghaus and S. Huber and U. Bauer and R. Kwitt}, title = {A Stable Multi-Scale Kernel for Topological Machine Learning.}, journal = {Proc. 2015 IEEE Conf. Comp. Vision & Pat. Rec. (CVPR '15)}, year = {2015} } @ARTICLE{Carriere_Oudot_Ovsjanikov_top_signatures_3d, - author = {M. Carrière, S. Oudot, M. Ovsjanikov}, + author = {M. Carrière and S. Oudot and M. Ovsjanikov}, title = {Stable Topological Signatures for Points on 3D Shapes.}, journal = {Proc. Sympos. on Geometry Processing}, year = {2015} diff --git a/src/Gudhi_stat/include/gudhi/persistence_representations/Persistence_landscape_on_grid.h b/src/Gudhi_stat/include/gudhi/persistence_representations/Persistence_landscape_on_grid.h index 422699ef..b70ef1d9 100644 --- a/src/Gudhi_stat/include/gudhi/persistence_representations/Persistence_landscape_on_grid.h +++ b/src/Gudhi_stat/include/gudhi/persistence_representations/Persistence_landscape_on_grid.h @@ -313,8 +313,11 @@ public: //compute the value of the linear function parametrized by line on a point x: return line.first*x+line.second; } + + protected: + template < typename oper > friend Persistence_landscape_on_grid operation_on_pair_of_landscapes_on_grid( const Persistence_landscape_on_grid& land1 , const Persistence_landscape_on_grid& land2 ); - + public: /** *\private A function that compute sum of two landscapes. **/ @@ -1024,8 +1027,7 @@ protected: this->number_of_functions_for_projections_to_reals = this->values_of_landscapes.size(); } - void set_up_values_of_landscapes( const std::vector< std::pair< double , double > >& p , double grid_min_ , double grid_max_ , size_t number_of_points_ ); - template < typename oper > friend Persistence_landscape_on_grid operation_on_pair_of_landscapes_on_grid( const Persistence_landscape_on_grid& land1 , const Persistence_landscape_on_grid& land2 ); + void set_up_values_of_landscapes( const std::vector< std::pair< double , double > >& p , double grid_min_ , double grid_max_ , size_t number_of_points_ ); Persistence_landscape_on_grid multiply_lanscape_by_real_number_not_overwrite( double x )const; }; diff --git a/src/cmake/modules/GUDHI_user_version_target.txt b/src/cmake/modules/GUDHI_user_version_target.txt index b6a60dd1..a971f1d9 100644 --- a/src/cmake/modules/GUDHI_user_version_target.txt +++ b/src/cmake/modules/GUDHI_user_version_target.txt @@ -50,7 +50,7 @@ if (NOT CMAKE_VERSION VERSION_LESS 2.8.11) copy_directory ${CMAKE_SOURCE_DIR}/src/GudhUI ${GUDHI_USER_VERSION_DIR}/GudhUI) set(GUDHI_MODULES "common;Alpha_complex;Bitmap_cubical_complex;Bottleneck_distance;Contraction;Gudhi_stat;Hasse_complex;Persistent_cohomology;Rips_complex;Simplex_tree;Skeleton_blocker;Spatial_searching;Subsampling;Tangential_complex;Witness_complex") - set(GUDHI_DIRECTORIES "doc;example;concept") + set(GUDHI_DIRECTORIES "doc;example;concept;utilities") set(GUDHI_INCLUDE_DIRECTORIES "include/gudhi;include/gudhi_patches") foreach(GUDHI_MODULE ${GUDHI_MODULES}) diff --git a/src/common/doc/main_page.h b/src/common/doc/main_page.h index e6f29fa8..55673f60 100644 --- a/src/common/doc/main_page.h +++ b/src/common/doc/main_page.h @@ -151,6 +151,23 @@ + + \subsection Gudhi_stat Gudhi statistical sublibrary + \image html "average_landscape.png" "Gudhi statistical sublibrary" + + + + + +
+ Author: Pawel Dlotko
+ Introduced in: GUDHI 2.0.0
+ Copyright: GPL v3
+
+ This is a statistical library for gudhi. It contain implementation of various representations of persistence diagrams; diagrams themselves, persistence landscapes (rigorous and grid version), + persistence heath maps, vectors and others. It implements basic functionalities which are neccessary to use persistence in statistics and machine learning. + User manual: \ref gudhi_stat - Reference manual: Gudhi::Gudhi_stat +
\section Toolbox Toolbox \subsection BottleneckDistanceToolbox Bottleneck distance diff --git a/src/cython/doc/img/average_landscape.png b/src/cython/doc/img/average_landscape.png new file mode 100644 index 00000000..ea59926b Binary files /dev/null and b/src/cython/doc/img/average_landscape.png differ -- cgit v1.2.3