From 4762eb8b1cc644eb3613677abd806d05b706467a Mon Sep 17 00:00:00 2001 From: Niklas Melton Date: Thu, 17 Oct 2024 12:49:41 -0500 Subject: [PATCH 01/14] add references.bib --- artlib/cvi/iCVIFuzzyArt.py | 8 +- artlib/elementary/ART1.py | 6 +- artlib/elementary/BayesianART.py | 4 +- artlib/elementary/EllipsoidART.py | 17 ++- artlib/elementary/HypersphereART.py | 8 +- artlib/elementary/QuadraticNeuronART.py | 8 +- artlib/hierarchical/SMART.py | 6 +- artlib/reinforcement/FALCON.py | 14 +- artlib/topological/DualVigilanceART.py | 5 +- docs/source/citation.rst | 4 +- docs/source/conf.py | 2 +- references.bib | 190 ++++++++++++++++++++++++ scripts/generate_references.py | 2 +- 13 files changed, 241 insertions(+), 33 deletions(-) create mode 100644 references.bib diff --git a/artlib/cvi/iCVIFuzzyArt.py b/artlib/cvi/iCVIFuzzyArt.py index 8a18d22..f8f931f 100644 --- a/artlib/cvi/iCVIFuzzyArt.py +++ b/artlib/cvi/iCVIFuzzyArt.py @@ -1,4 +1,10 @@ -"""TODO: Add Reference in correct format. +"""iCVI Fuzzy ART + +da Silva, Leonardo Enzo Brito, Nagasharath Rayapati, and Donald C. Wunsch. +"iCVI-ARTMAP: using incremental cluster validity indices and adaptive resonance +theory reset mechanism to accelerate validation and achieve multiprototype unsupervised +representations." +IEEE Transactions on Neural Networks and Learning Systems 34.12 (2022): 9757-9770. The original matlab code can be found at https://github.com/ACIL-Group/iCVI-toolbox/tree/master diff --git a/artlib/elementary/ART1.py b/artlib/elementary/ART1.py index f14c42f..33fd039 100644 --- a/artlib/elementary/ART1.py +++ b/artlib/elementary/ART1.py @@ -1,7 +1,9 @@ """ART1. -Carpenter, G. A., & Grossberg, S. (1987a). A massively parallel architecture for a self- -organizing neural pattern recognition machine. Computer Vision, Graphics, and Image +Carpenter, G. A., & Grossberg, S. (1987a). +A massively parallel architecture for a self-organizing neural pattern +recognition machine. +Computer Vision, Graphics, and Image Processing, 37, 54 – 115. doi:10. 1016/S0734-189X(87)80014-2. """ diff --git a/artlib/elementary/BayesianART.py b/artlib/elementary/BayesianART.py index bc2ecd9..36fb2de 100644 --- a/artlib/elementary/BayesianART.py +++ b/artlib/elementary/BayesianART.py @@ -1,6 +1,8 @@ """Bayesian ART. -Vigdor, B., & Lerner, B. (2007). The Bayesian ARTMAP. IEEE Transactions on Neural +Vigdor, B., & Lerner, B. (2007). +The Bayesian ARTMAP. +IEEE Transactions on Neural Networks, 18, 1628–1644. doi:10.1109/TNN.2007.900234. """ diff --git a/artlib/elementary/EllipsoidART.py b/artlib/elementary/EllipsoidART.py index 1425c5a..7fbd9aa 100644 --- a/artlib/elementary/EllipsoidART.py +++ b/artlib/elementary/EllipsoidART.py @@ -1,13 +1,14 @@ """Ellipsoid ART. -Anagnostopoulos, G. C., & Georgiopoulos, M. (2001a). Ellipsoid ART and ARTMAP for -incremental clustering and classification. In Proc. IEEE International Joint Conference -on Neural Networks (IJCNN) (pp. 1221–1226). volume 2. doi:10.1109/IJCNN.2001.939535. - -Anagnostopoulos, G. C., & Georgiopoulos, M. (2001b). Ellipsoid ART and ARTMAP for -incremental unsupervised and supervised learning. In Aerospace/Defense Sensing, -Simulation, and Controls (pp. 293– 304). International Society for Optics and Photonics. -doi:10.1117/12.421180. +Anagnostopoulos, G. C., & Georgiopoulos, M. (2001a). +Ellipsoid ART and ARTMAP for incremental clustering and classification. +In Proc. IEEE International Joint Conference on Neural Networks (IJCNN) +(pp. 1221–1226). volume 2. doi:10.1109/IJCNN.2001.939535. + +Anagnostopoulos, G. C., & Georgiopoulos, M. (2001b). +Ellipsoid ART and ARTMAP for incremental unsupervised and supervised learning. +In Aerospace/Defense Sensing, Simulation, and Controls (pp. 293– 304). +International Society for Optics and Photonics. doi:10.1117/12.421180. """ import numpy as np diff --git a/artlib/elementary/HypersphereART.py b/artlib/elementary/HypersphereART.py index 38b6e76..2bcf3df 100644 --- a/artlib/elementary/HypersphereART.py +++ b/artlib/elementary/HypersphereART.py @@ -1,9 +1,9 @@ """Hyperpshere ART. -Anagnostopoulos, G. C., & Georgiopulos, M. (2000). Hypersphere ART and ARTMAP for -unsupervised and supervised, incremental learning. In Proc. IEEE International Joint -Conference on Neural Networks (IJCNN) (pp. 59–64). volume 6. -doi:10.1109/IJCNN.2000.859373. +Anagnostopoulos, G. C., & Georgiopulos, M. (2000). +Hypersphere ART and ARTMAP for unsupervised and supervised, incremental learning. +In Proc. IEEE International Joint Conference on Neural Networks (IJCNN) +(pp. 59–64). volume 6. doi:10.1109/IJCNN.2000.859373. """ import numpy as np diff --git a/artlib/elementary/QuadraticNeuronART.py b/artlib/elementary/QuadraticNeuronART.py index a492c42..c79bc54 100644 --- a/artlib/elementary/QuadraticNeuronART.py +++ b/artlib/elementary/QuadraticNeuronART.py @@ -1,9 +1,11 @@ """Quadratic Neuron ART. -Su, M.-C., & Liu, T.-K. (2001). Application of neural networks using quadratic junctions -in cluster analysis. Neurocomputing, 37, 165 – 175. doi:10.1016/S0925-2312(00)00343-X. +Su, M.-C., & Liu, T.-K. (2001). +Application of neural networks using quadratic junctions in cluster analysis. +Neurocomputing, 37, 165 – 175. doi:10.1016/S0925-2312(00)00343-X. -Su, M.-C., & Liu, Y.-C. (2005). A new approach to clustering data with arbitrary shapes. +Su, M.-C., & Liu, Y.-C. (2005). +A new approach to clustering data with arbitrary shapes. Pattern Recognition, 38, 1887 – 1901. doi:10.1016/j.patcog.2005.04.010. """ diff --git a/artlib/hierarchical/SMART.py b/artlib/hierarchical/SMART.py index 42ac2b3..aeaaf85 100644 --- a/artlib/hierarchical/SMART.py +++ b/artlib/hierarchical/SMART.py @@ -1,7 +1,9 @@ """SMART. -Bartfai, G. (1994). Hierarchical clustering with ART neural networks. In Proc. IEEE -International Conference on Neural Networks (ICNN) (pp. 940–944). volume 2. +Bartfai, G. (1994). +Hierarchical clustering with ART neural networks. +In Proc. IEEE International Conference on Neural Networks (ICNN) +(pp. 940–944). volume 2. doi:10.1109/ICNN.1994.374307. """ diff --git a/artlib/reinforcement/FALCON.py b/artlib/reinforcement/FALCON.py index d65dd2f..c03d469 100644 --- a/artlib/reinforcement/FALCON.py +++ b/artlib/reinforcement/FALCON.py @@ -1,11 +1,13 @@ """FALCON. -Tan, A.-H. (2004). FALCON: a fusion architecture for learning, cognition, and -navigation. In Proc. IEEE International Joint Conference on Neural Networks (IJCNN) (pp. -3297–3302). volume 4. doi:10.1109/ IJCNN.2004.1381208. - -Tan, A.-H., Lu, N., & Xiao, D. (2008). Integrating Temporal Difference Methods and Self- -Organizing Neural Networks for Reinforcement Learning With Delayed Evaluative Feedback. +Tan, A.-H. (2004). +FALCON: a fusion architecture for learning, cognition, and navigation. +In Proc. IEEE International Joint Conference on Neural Networks (IJCNN) +(pp. 3297–3302). volume 4. doi:10.1109/ IJCNN.2004.1381208. + +Tan, A.-H., Lu, N., & Xiao, D. (2008). +Integrating Temporal Difference Methods and Self-Organizing Neural Networks for +Reinforcement Learning With Delayed Evaluative Feedback. IEEE Transactions on Neural Networks, 19 , 230–244. doi:10.1109/TNN.2007.905839 """ diff --git a/artlib/topological/DualVigilanceART.py b/artlib/topological/DualVigilanceART.py index 45b8d9c..b855856 100644 --- a/artlib/topological/DualVigilanceART.py +++ b/artlib/topological/DualVigilanceART.py @@ -1,7 +1,8 @@ """Dual Vigilance ART. -Brito da Silva, L. E., Elnabarawy, I., & Wunsch II, D. C. (2019). Dual vigilance fuzzy -adaptive resonance theory. Neural Networks, 109, 1–5. doi:10.1016/j.neunet.2018.09.015. +Brito da Silva, L. E., Elnabarawy, I., & Wunsch II, D. C. (2019). +Dual vigilance fuzzy adaptive resonance theory. +Neural Networks, 109, 1–5. doi:10.1016/j.neunet.2018.09.015. """ import numpy as np diff --git a/docs/source/citation.rst b/docs/source/citation.rst index 1b5e4dd..035e8bf 100644 --- a/docs/source/citation.rst +++ b/docs/source/citation.rst @@ -2,11 +2,11 @@ Citation ================================== If you use this project in your research, please cite it as: -.. bibliography:: references.bib +.. bibliography:: artlib_citation.bib :style: unsrt :all: Alternatively, you can cite the project using the following BibTeX entry: -.. literalinclude:: references.bib +.. literalinclude:: artlib_citation.bib :language: bibtex diff --git a/docs/source/conf.py b/docs/source/conf.py index d69d5b3..926d7a8 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -45,7 +45,7 @@ def setup(app): # autoapi_python_class_content = 'both' # autoclass_content = 'both' -bibtex_bibfiles = ['references.bib'] +bibtex_bibfiles = ['artlib_citation.bib'] intersphinx_mapping = { 'python': ('https://docs.python.org/3', None), diff --git a/references.bib b/references.bib new file mode 100644 index 0000000..6d693ed --- /dev/null +++ b/references.bib @@ -0,0 +1,190 @@ +@inproceedings{bezdek2002vat, + title={VAT: A tool for visual assessment of (cluster) tendency}, + author={Bezdek, James C and Hathaway, Richard J}, + booktitle={Proceedings of the 2002 International Joint Conference on Neural Networks. IJCNN'02 (Cat. No. 02CH37290)}, + volume={3}, + pages={2225--2230}, + year={2002}, + organization={IEEE} +} +@article{da2022icvi, + title={iCVI-ARTMAP: using incremental cluster validity indices and adaptive resonance theory reset mechanism to accelerate validation and achieve multiprototype unsupervised representations}, + author={da Silva, Leonardo Enzo Brito and Rayapati, Nagasharath and Wunsch, Donald C}, + journal={IEEE Transactions on Neural Networks and Learning Systems}, + volume={34}, + number={12}, + pages={9757--9770}, + year={2022}, + publisher={IEEE} +} +@article{carpenter1987massively, + title={A massively parallel architecture for a self-organizing neural pattern recognition machine}, + author={Carpenter, Gail A and Grossberg, Stephen}, + journal={Computer vision, graphics, and image processing}, + volume={37}, + number={1}, + pages={54--115}, + year={1987}, + publisher={Elsevier} +} +@article{carpenter1987art, + title={ART 2: Self-organization of stable category recognition codes for analog input patterns}, + author={Carpenter, Gail A and Grossberg, Stephen}, + journal={Applied optics}, + volume={26}, + number={23}, + pages={4919--4930}, + year={1987}, + publisher={Optica Publishing Group} +} +@article{carpenter1991art, + title={ART 2-A: An adaptive resonance algorithm for rapid category learning and recognition}, + author={Carpenter, Gail A and Grossberg, Stephen and Rosen, David B}, + journal={Neural networks}, + volume={4}, + number={4}, + pages={493--504}, + year={1991}, + publisher={Elsevier} +} +@article{vigdor2007bayesian, + title={The bayesian artmap}, + author={Vigdor, Boaz and Lerner, Boaz}, + journal={IEEE Transactions on Neural Networks}, + volume={18}, + number={6}, + pages={1628--1644}, + year={2007}, + publisher={IEEE} +} +@inproceedings{anagnostopoulos2001ellipsoid, + title={Ellipsoid ART and ARTMAP for incremental clustering and classification}, + author={Anagnostopoulos, Georgios C and Georgiopoulos, Michael}, + booktitle={IJCNN'01. International Joint Conference on Neural Networks. Proceedings (Cat. No. 01CH37222)}, + volume={2}, + pages={1221--1226}, + year={2001}, + organization={IEEE} +} +@inproceedings{anagnostopoulos2001ellipsoid, + title={Ellipsoid ART and ARTMAP for incremental unsupervised and supervised learning}, + author={Anagnostopoulos, Georgios C and Georgiopoulos, Michael}, + booktitle={Applications and Science of Computational Intelligence IV}, + volume={4390}, + pages={293--304}, + year={2001}, + organization={SPIE} +} +@article{carpenter1991fuzzy, + title={Fuzzy ART: Fast stable learning and categorization of analog patterns by an adaptive resonance system}, + author={Carpenter, Gail A and Grossberg, Stephen and Rosen, David B}, + journal={Neural networks}, + volume={4}, + number={6}, + pages={759--771}, + year={1991}, + publisher={Elsevier} +} +@article{williamson1996gaussian, + title={Gaussian ARTMAP: A neural network for fast incremental learning of noisy multidimensional maps}, + author={Williamson, James R}, + journal={Neural networks}, + volume={9}, + number={5}, + pages={881--897}, + year={1996}, + publisher={Elsevier} +} +@inproceedings{anagnostopoulos2000hypersphere, + title={Hypersphere ART and ARTMAP for unsupervised and supervised, incremental learning}, + author={Anagnostopoulos, Georgios C and Georgiopulos, M}, + booktitle={Proceedings of the IEEE-INNS-ENNS International Joint Conference on Neural Networks. IJCNN 2000. Neural Computing: New Challenges and Perspectives for the New Millennium}, + volume={6}, + pages={59--64}, + year={2000}, + organization={IEEE} +} +@article{su2001application, + title={Application of neural networks using quadratic junctions in cluster analysis}, + author={Su, Mu-Chun and Liu, Ta-Kang}, + journal={Neurocomputing}, + volume={37}, + number={1-4}, + pages={165--175}, + year={2001}, + publisher={Elsevier} +} +@article{su2005new, + title={A new approach to clustering data with arbitrary shapes}, + author={Su, Mu-chun and Liu, Yi-chun}, + journal={pattern recognition}, + volume={38}, + number={11}, + pages={1887--1901}, + year={2005}, + publisher={Elsevier} +} +@inproceedings{tan2007intelligence, + title={Intelligence through interaction: Towards a unified theory for learning}, + author={Tan, Ah-Hwee and Carpenter, Gail A and Grossberg, Stephen}, + booktitle={International Symposium on Neural Networks}, + pages={1094--1103}, + year={2007}, + organization={Springer} +} +@inproceedings{bartfai1994hierarchical, + title={Hierarchical clustering with ART neural networks}, + author={Bartfai, Guszti}, + booktitle={Proceedings of 1994 IEEE International Conference on Neural Networks (ICNN'94)}, + volume={2}, + pages={940--944}, + year={1994}, + organization={IEEE} +} +@inproceedings{tan2004falcon, + title={FALCON: A fusion architecture for learning, cognition, and navigation}, + author={Tan, Ah-Hwee}, + booktitle={2004 IEEE International Joint Conference on Neural Networks (IEEE Cat. No. 04CH37541)}, + volume={4}, + pages={3297--3302}, + year={2004}, + organization={IEEE} +} +@article{tan2008integrating, + title={Integrating temporal difference methods and self-organizing neural networks for reinforcement learning with delayed evaluative feedback}, + author={Tan, Ah-Hwee and Lu, Ning and Xiao, Dan}, + journal={IEEE transactions on neural networks}, + volume={19}, + number={2}, + pages={230--244}, + year={2008}, + publisher={IEEE} +} +@article{carpenter1991artmap, + title={ARTMAP: Supervised real-time learning and classification of nonstationary data by a self-organizing neural network}, + author={Carpenter, Gail A and Grossberg, Stephen and Reynolds, John H}, + year={1991} +} +@misc{gotarredona1998adaptive, + title={Adaptive Resonance Theory Microchips Circuit Design Techniques}, + author={Gotarredona, Teresa Serrano and Barranco, B Linares and Andreou, AG}, + year={1998}, + publisher={Norwell, MA: Kluwer} +} +@article{da2019dual, + title={Dual vigilance fuzzy adaptive resonance theory}, + author={da Silva, Leonardo Enzo Brito and Elnabarawy, Islam and Wunsch II, Donald C}, + journal={Neural Networks}, + volume={109}, + pages={1--5}, + year={2019}, + publisher={Elsevier} +} +@inproceedings{tscherepanow2010topoart, + title={TopoART: A topology learning hierarchical ART network}, + author={Tscherepanow, Marko}, + booktitle={International Conference on Artificial Neural Networks}, + pages={157--167}, + year={2010}, + organization={Springer} +} \ No newline at end of file diff --git a/scripts/generate_references.py b/scripts/generate_references.py index 6a7a24f..51f0404 100644 --- a/scripts/generate_references.py +++ b/scripts/generate_references.py @@ -23,7 +23,7 @@ def generate_references(): modified_bibtex = "\n".join(bibtex_lines) # Write the modified content to references.bib - output_path = os.path.join("docs", "source", "references.bib") + output_path = os.path.join("docs", "source", "artlib_citation.bib") with open(output_path, "w", encoding="utf-8") as f: f.write(modified_bibtex) else: From dfd061286a2916acd19fcc30ede34ec1be92c959 Mon Sep 17 00:00:00 2001 From: Niklas Melton Date: Thu, 17 Oct 2024 13:13:57 -0500 Subject: [PATCH 02/14] add variable references to code --- artlib/common/VAT.py | 11 +++++++---- artlib/cvi/iCVIFuzzyArt.py | 13 ++++++++----- artlib/elementary/ART1.py | 14 ++++++++------ artlib/elementary/ART2.py | 20 ++++++++++++++------ artlib/elementary/BayesianART.py | 11 +++++++---- artlib/elementary/EllipsoidART.py | 23 ++++++++++++++--------- artlib/elementary/FuzzyART.py | 11 +++++++---- artlib/elementary/GaussianART.py | 11 +++++++---- artlib/elementary/HypersphereART.py | 11 +++++++---- artlib/elementary/QuadraticNeuronART.py | 19 ++++++++++++------- artlib/fusion/FusionART.py | 16 ++++++++++------ artlib/hierarchical/DeepARTMAP.py | 11 +++++++---- artlib/hierarchical/SMART.py | 13 ++++++++----- artlib/reinforcement/FALCON.py | 23 ++++++++++++++--------- artlib/supervised/ARTMAP.py | 11 +++++++---- artlib/supervised/SimpleARTMAP.py | 9 ++++++--- artlib/topological/DualVigilanceART.py | 9 ++++++--- artlib/topological/TopoART.py | 15 +++++++++------ docs/source/conf.py | 2 +- references.bib | 4 ++-- 20 files changed, 161 insertions(+), 96 deletions(-) diff --git a/artlib/common/VAT.py b/artlib/common/VAT.py index 3ae48b8..6bce6a4 100644 --- a/artlib/common/VAT.py +++ b/artlib/common/VAT.py @@ -1,9 +1,12 @@ """VAT. -Bezdek, J. C., & Hathaway, R. J. (2002). -VAT: A tool for visual assessment of cluster tendency. -Proceedings of the 2002 International Joint Conference on Neural Networks. -doi:10.1109/IJCNN.2002.1007487 +.. # Bezdek, J. C., & Hathaway, R. J. (2002). +.. # VAT: A tool for visual assessment of cluster tendency. +.. # Proceedings of the 2002 International Joint Conference on Neural Networks. +.. # doi:10.1109/IJCNN.2002.1007487 + +.. bibliography:: + :filter: docname in docnames and citation_key == "bezdek2002vat" """ import numpy as np diff --git a/artlib/cvi/iCVIFuzzyArt.py b/artlib/cvi/iCVIFuzzyArt.py index f8f931f..c6ff956 100644 --- a/artlib/cvi/iCVIFuzzyArt.py +++ b/artlib/cvi/iCVIFuzzyArt.py @@ -1,10 +1,10 @@ """iCVI Fuzzy ART -da Silva, Leonardo Enzo Brito, Nagasharath Rayapati, and Donald C. Wunsch. -"iCVI-ARTMAP: using incremental cluster validity indices and adaptive resonance -theory reset mechanism to accelerate validation and achieve multiprototype unsupervised -representations." -IEEE Transactions on Neural Networks and Learning Systems 34.12 (2022): 9757-9770. +.. # da Silva, Leonardo Enzo Brito, Nagasharath Rayapati, and Donald C. Wunsch. +.. # "iCVI-ARTMAP: using incremental cluster validity indices and adaptive resonance +.. # theory reset mechanism to accelerate validation and achieve multiprototype +.. # unsupervised representations." +.. # IEEE Transactions on Neural Networks and Learning Systems 34.12 (2022): 9757-9770. The original matlab code can be found at https://github.com/ACIL-Group/iCVI-toolbox/tree/master @@ -13,6 +13,9 @@ Pages 314-316 and 319-320 Extended icvi offline mode can be found at https://ieeexplore.ieee.org/document/9745260 +.. bibliography:: + :filter: docname in docnames and citation_key == "da2022icvi" + """ import numpy as np from typing import Optional, Literal, Callable diff --git a/artlib/elementary/ART1.py b/artlib/elementary/ART1.py index 33fd039..fbb6260 100644 --- a/artlib/elementary/ART1.py +++ b/artlib/elementary/ART1.py @@ -1,11 +1,13 @@ """ART1. -Carpenter, G. A., & Grossberg, S. (1987a). -A massively parallel architecture for a self-organizing neural pattern -recognition machine. -Computer Vision, Graphics, and Image -Processing, 37, 54 – 115. doi:10. 1016/S0734-189X(87)80014-2. - +.. # Carpenter, G. A., & Grossberg, S. (1987a). +.. # A massively parallel architecture for a self-organizing neural pattern +.. # recognition machine. +.. # Computer Vision, Graphics, and Image +.. # Processing, 37, 54 – 115. doi:10. 1016/S0734-189X(87)80014-2. + +.. bibliography:: + :filter: docname in docnames and citation_key == "carpenter1987massively" """ import numpy as np diff --git a/artlib/elementary/ART2.py b/artlib/elementary/ART2.py index 6c37b3b..3178c6a 100644 --- a/artlib/elementary/ART2.py +++ b/artlib/elementary/ART2.py @@ -1,12 +1,20 @@ """ART2. -Carpenter, G. A., & Grossberg, S. (1987b). -ART 2: self-organization of stable category recognition codes for analog input patterns. -Appl. Opt., 26, 4919–4930. doi:10.1364/AO.26.004919. +.. # Carpenter, G. A., & Grossberg, S. (1987b). +.. # ART 2: self-organization of stable category recognition codes for analog input +.. # patterns. +.. # Appl. Opt., 26, 4919–4930. doi:10.1364/AO.26.004919. + +.. # Carpenter, G. A., Grossberg, S., & Rosen, D. B. (1991b). +.. # ART 2-A: An adaptive resonance algorithm for rapid category learning and +.. # recognition. +.. # Neural Networks, 4, 493 – 504. doi:10.1016/0893-6080(91) 90045-7. + +.. bibliography:: + :filter: docname in docnames and \ + (citation_key == "carpenter1987art" or \ + citation_key == "carpenter1991art") -Carpenter, G. A., Grossberg, S., & Rosen, D. B. (1991b). -ART 2-A: An adaptive resonance algorithm for rapid category learning and recognition. -Neural Networks, 4, 493 – 504. doi:10.1016/0893-6080(91) 90045-7. ================================================================== DISCLAIMER: DO NOT USE ART2!!! diff --git a/artlib/elementary/BayesianART.py b/artlib/elementary/BayesianART.py index 36fb2de..6262425 100644 --- a/artlib/elementary/BayesianART.py +++ b/artlib/elementary/BayesianART.py @@ -1,9 +1,12 @@ """Bayesian ART. -Vigdor, B., & Lerner, B. (2007). -The Bayesian ARTMAP. -IEEE Transactions on Neural -Networks, 18, 1628–1644. doi:10.1109/TNN.2007.900234. +.. # Vigdor, B., & Lerner, B. (2007). +.. # The Bayesian ARTMAP. +.. # IEEE Transactions on Neural +.. # Networks, 18, 1628–1644. doi:10.1109/TNN.2007.900234. + +.. bibliography:: + :filter: docname in docnames and citation_key == "vigdor2007bayesian" """ import numpy as np diff --git a/artlib/elementary/EllipsoidART.py b/artlib/elementary/EllipsoidART.py index 7fbd9aa..4459b9f 100644 --- a/artlib/elementary/EllipsoidART.py +++ b/artlib/elementary/EllipsoidART.py @@ -1,14 +1,19 @@ """Ellipsoid ART. -Anagnostopoulos, G. C., & Georgiopoulos, M. (2001a). -Ellipsoid ART and ARTMAP for incremental clustering and classification. -In Proc. IEEE International Joint Conference on Neural Networks (IJCNN) -(pp. 1221–1226). volume 2. doi:10.1109/IJCNN.2001.939535. - -Anagnostopoulos, G. C., & Georgiopoulos, M. (2001b). -Ellipsoid ART and ARTMAP for incremental unsupervised and supervised learning. -In Aerospace/Defense Sensing, Simulation, and Controls (pp. 293– 304). -International Society for Optics and Photonics. doi:10.1117/12.421180. +.. # Anagnostopoulos, G. C., & Georgiopoulos, M. (2001a). +.. # Ellipsoid ART and ARTMAP for incremental clustering and classification. +.. # In Proc. IEEE International Joint Conference on Neural Networks (IJCNN) +.. # (pp. 1221–1226). volume 2. doi:10.1109/IJCNN.2001.939535. + +.. # Anagnostopoulos, G. C., & Georgiopoulos, M. (2001b). +.. # Ellipsoid ART and ARTMAP for incremental unsupervised and supervised learning. +.. # In Aerospace/Defense Sensing, Simulation, and Controls (pp. 293– 304). +.. # International Society for Optics and Photonics. doi:10.1117/12.421180. + +.. bibliography:: + :filter: docname in docnames and \ + (citation_key == "anagnostopoulos2001a" or \ + citation_key == "anagnostopoulos2001b") """ import numpy as np diff --git a/artlib/elementary/FuzzyART.py b/artlib/elementary/FuzzyART.py index fd849d0..d864915 100644 --- a/artlib/elementary/FuzzyART.py +++ b/artlib/elementary/FuzzyART.py @@ -1,9 +1,12 @@ """Fuzzy ART. -Carpenter, G. A., Grossberg, S., & Rosen, D. B. (1991c). -Fuzzy ART: Fast stable learning and categorization of analog patterns by an adaptive -resonance system. -Neural Networks, 4, 759 – 771. doi:10.1016/0893-6080(91)90056-B. +.. # Carpenter, G. A., Grossberg, S., & Rosen, D. B. (1991c). +.. # Fuzzy ART: Fast stable learning and categorization of analog patterns by an +.. # adaptive resonance system. +.. # Neural Networks, 4, 759 – 771. doi:10.1016/0893-6080(91)90056-B. + +.. bibliography:: + :filter: docname in docnames and citation_key == "carpenter1991fuzzy" """ import numpy as np diff --git a/artlib/elementary/GaussianART.py b/artlib/elementary/GaussianART.py index 11f76c2..cdf7638 100644 --- a/artlib/elementary/GaussianART.py +++ b/artlib/elementary/GaussianART.py @@ -1,9 +1,12 @@ """Gaussian ART. -Williamson, J. R. (1996). -Gaussian ARTMAP: A Neural Network for Fast Incremental Learning of Noisy -Multidimensional Maps. -Neural Networks, 9, 881 – 897. doi:10.1016/0893-6080(95)00115-8. +.. # Williamson, J. R. (1996). +.. # Gaussian ARTMAP: A Neural Network for Fast Incremental Learning of Noisy +.. # Multidimensional Maps. +.. # Neural Networks, 9, 881 – 897. doi:10.1016/0893-6080(95)00115-8. + +.. bibliography:: + :filter: docname in docnames and citation_key == "williamson1996gaussian" """ diff --git a/artlib/elementary/HypersphereART.py b/artlib/elementary/HypersphereART.py index 2bcf3df..0fc3a20 100644 --- a/artlib/elementary/HypersphereART.py +++ b/artlib/elementary/HypersphereART.py @@ -1,9 +1,12 @@ """Hyperpshere ART. -Anagnostopoulos, G. C., & Georgiopulos, M. (2000). -Hypersphere ART and ARTMAP for unsupervised and supervised, incremental learning. -In Proc. IEEE International Joint Conference on Neural Networks (IJCNN) -(pp. 59–64). volume 6. doi:10.1109/IJCNN.2000.859373. +.. # Anagnostopoulos, G. C., & Georgiopulos, M. (2000). +.. # Hypersphere ART and ARTMAP for unsupervised and supervised, incremental learning. +.. # In Proc. IEEE International Joint Conference on Neural Networks (IJCNN) +.. # (pp. 59–64). volume 6. doi:10.1109/IJCNN.2000.859373. + +.. bibliography:: + :filter: docname in docnames and citation_key == "anagnostopoulos2000hypersphere" """ import numpy as np diff --git a/artlib/elementary/QuadraticNeuronART.py b/artlib/elementary/QuadraticNeuronART.py index c79bc54..2a9a0f2 100644 --- a/artlib/elementary/QuadraticNeuronART.py +++ b/artlib/elementary/QuadraticNeuronART.py @@ -1,12 +1,17 @@ """Quadratic Neuron ART. -Su, M.-C., & Liu, T.-K. (2001). -Application of neural networks using quadratic junctions in cluster analysis. -Neurocomputing, 37, 165 – 175. doi:10.1016/S0925-2312(00)00343-X. - -Su, M.-C., & Liu, Y.-C. (2005). -A new approach to clustering data with arbitrary shapes. -Pattern Recognition, 38, 1887 – 1901. doi:10.1016/j.patcog.2005.04.010. +.. # Su, M.-C., & Liu, T.-K. (2001). +.. # Application of neural networks using quadratic junctions in cluster analysis. +.. # Neurocomputing, 37, 165 – 175. doi:10.1016/S0925-2312(00)00343-X. + +.. # Su, M.-C., & Liu, Y.-C. (2005). +.. # A new approach to clustering data with arbitrary shapes. +.. # Pattern Recognition, 38, 1887 – 1901. doi:10.1016/j.patcog.2005.04.010. + +.. bibliography:: + :filter: docname in docnames and \ + (citation_key == "su2001application" or \ + citation_key == "su2005new") """ diff --git a/artlib/fusion/FusionART.py b/artlib/fusion/FusionART.py index 343f3ea..15eebcc 100644 --- a/artlib/fusion/FusionART.py +++ b/artlib/fusion/FusionART.py @@ -1,11 +1,15 @@ """Fusion ART. -Tan, A.-H., Carpenter, G. A., & Grossberg, S. (2007). -Intelligence Through Interaction: Towards a Unified Theory for Learning. -In D. Liu, S. Fei, Z.-G. Hou, H. Zhang, & C. Sun (Eds.), -Advances in Neural Networks – ISNN 2007 (pp. 1094–1103). -Berlin, Heidelberg: Springer Berlin Heidelberg. -doi:10.1007/ 978-3-540-72383-7_128. +.. # Tan, A.-H., Carpenter, G. A., & Grossberg, S. (2007). +.. # Intelligence Through Interaction: Towards a Unified Theory for Learning. +.. # In D. Liu, S. Fei, Z.-G. Hou, H. Zhang, & C. Sun (Eds.), +.. # Advances in Neural Networks – ISNN 2007 (pp. 1094–1103). +.. # Berlin, Heidelberg: Springer Berlin Heidelberg. +.. # doi:10.1007/ 978-3-540-72383-7_128. + +.. bibliography:: + :filter: docname in docnames and citation_key == "tan2007intelligence" + """ import numpy as np diff --git a/artlib/hierarchical/DeepARTMAP.py b/artlib/hierarchical/DeepARTMAP.py index 9e771b4..bda8e4d 100644 --- a/artlib/hierarchical/DeepARTMAP.py +++ b/artlib/hierarchical/DeepARTMAP.py @@ -1,9 +1,12 @@ """Deep ARTMAP. -Carpenter, G. A., Grossberg, S., & Reynolds, J. H. (1991a). -ARTMAP: Supervised real-time learning and classification of nonstationary data by a -self-organizing neural network. -Neural Networks, 4, 565 – 588. doi:10.1016/0893-6080(91)90012-T. +.. # Carpenter, G. A., Grossberg, S., & Reynolds, J. H. (1991a). +.. # ARTMAP: Supervised real-time learning and classification of nonstationary data by a +.. # self-organizing neural network. +.. # Neural Networks, 4, 565 – 588. doi:10.1016/0893-6080(91)90012-T. + +.. bibliography:: + :filter: docname in docnames and citation_key == "carpenter1991artmap" """ import numpy as np diff --git a/artlib/hierarchical/SMART.py b/artlib/hierarchical/SMART.py index aeaaf85..636bec7 100644 --- a/artlib/hierarchical/SMART.py +++ b/artlib/hierarchical/SMART.py @@ -1,10 +1,13 @@ """SMART. -Bartfai, G. (1994). -Hierarchical clustering with ART neural networks. -In Proc. IEEE International Conference on Neural Networks (ICNN) -(pp. 940–944). volume 2. -doi:10.1109/ICNN.1994.374307. +.. # Bartfai, G. (1994). +.. # Hierarchical clustering with ART neural networks. +.. # In Proc. IEEE International Conference on Neural Networks (ICNN) +.. # (pp. 940–944). volume 2. +.. # doi:10.1109/ICNN.1994.374307. + +.. bibliography:: + :filter: docname in docnames and citation_key == "bartfai1994hierarchical" """ diff --git a/artlib/reinforcement/FALCON.py b/artlib/reinforcement/FALCON.py index c03d469..2d30f8d 100644 --- a/artlib/reinforcement/FALCON.py +++ b/artlib/reinforcement/FALCON.py @@ -1,14 +1,19 @@ """FALCON. -Tan, A.-H. (2004). -FALCON: a fusion architecture for learning, cognition, and navigation. -In Proc. IEEE International Joint Conference on Neural Networks (IJCNN) -(pp. 3297–3302). volume 4. doi:10.1109/ IJCNN.2004.1381208. - -Tan, A.-H., Lu, N., & Xiao, D. (2008). -Integrating Temporal Difference Methods and Self-Organizing Neural Networks for -Reinforcement Learning With Delayed Evaluative Feedback. -IEEE Transactions on Neural Networks, 19 , 230–244. doi:10.1109/TNN.2007.905839 +.. # Tan, A.-H. (2004). +.. # FALCON: a fusion architecture for learning, cognition, and navigation. +.. # In Proc. IEEE International Joint Conference on Neural Networks (IJCNN) +.. # (pp. 3297–3302). volume 4. doi:10.1109/ IJCNN.2004.1381208. + +.. # Tan, A.-H., Lu, N., & Xiao, D. (2008). +.. # Integrating Temporal Difference Methods and Self-Organizing Neural Networks for +.. # Reinforcement Learning With Delayed Evaluative Feedback. +.. # IEEE Transactions on Neural Networks, 19 , 230–244. doi:10.1109/TNN.2007.905839 + +.. bibliography:: + :filter: docname in docnames and \ + (citation_key == "tan2004falcon" or \ + citation_key == "tan2008integrating") """ diff --git a/artlib/supervised/ARTMAP.py b/artlib/supervised/ARTMAP.py index 4529146..d368bd9 100644 --- a/artlib/supervised/ARTMAP.py +++ b/artlib/supervised/ARTMAP.py @@ -1,9 +1,12 @@ """ARTMAP. -Carpenter, G. A., Grossberg, S., & Reynolds, J. H. (1991a). -ARTMAP: Supervised real-time learning and classification of nonstationary data by a -self-organizing neural network. -Neural Networks, 4, 565 – 588. doi:10.1016/0893-6080(91)90012-T. +.. # Carpenter, G. A., Grossberg, S., & Reynolds, J. H. (1991a). +.. # ARTMAP: Supervised real-time learning and classification of nonstationary data by a +.. # self-organizing neural network. +.. # Neural Networks, 4, 565 – 588. doi:10.1016/0893-6080(91)90012-T. + +.. bibliography:: + :filter: docname in docnames and citation_key == "carpenter1991artmap" """ import numpy as np diff --git a/artlib/supervised/SimpleARTMAP.py b/artlib/supervised/SimpleARTMAP.py index 1674bd5..b59dde1 100644 --- a/artlib/supervised/SimpleARTMAP.py +++ b/artlib/supervised/SimpleARTMAP.py @@ -1,8 +1,11 @@ """Simple ARTMAP. -Serrano-Gotarredona, T., Linares-Barranco, B., & Andreou, A. G. (1998). -Adaptive Resonance Theory Microchips: Circuit Design Techniques. -Norwell, MA, USA: Kluwer Academic Publishers. +.. # Serrano-Gotarredona, T., Linares-Barranco, B., & Andreou, A. G. (1998). +.. # Adaptive Resonance Theory Microchips: Circuit Design Techniques. +.. # Norwell, MA, USA: Kluwer Academic Publishers. + +.. bibliography:: + :filter: docname in docnames and citation_key == "gotarredona1998adaptive" """ import numpy as np diff --git a/artlib/topological/DualVigilanceART.py b/artlib/topological/DualVigilanceART.py index b855856..9c23c6d 100644 --- a/artlib/topological/DualVigilanceART.py +++ b/artlib/topological/DualVigilanceART.py @@ -1,8 +1,11 @@ """Dual Vigilance ART. -Brito da Silva, L. E., Elnabarawy, I., & Wunsch II, D. C. (2019). -Dual vigilance fuzzy adaptive resonance theory. -Neural Networks, 109, 1–5. doi:10.1016/j.neunet.2018.09.015. +.. # Brito da Silva, L. E., Elnabarawy, I., & Wunsch II, D. C. (2019). +.. # Dual vigilance fuzzy adaptive resonance theory. +.. # Neural Networks, 109, 1–5. doi:10.1016/j.neunet.2018.09.015. + +.. bibliography:: + :filter: docname in docnames and citation_key == "da2019dual" """ import numpy as np diff --git a/artlib/topological/TopoART.py b/artlib/topological/TopoART.py index 8f5fae6..a2d2fa6 100644 --- a/artlib/topological/TopoART.py +++ b/artlib/topological/TopoART.py @@ -1,11 +1,14 @@ """Topo ART. -Tscherepanow, M. (2010). -TopoART: A Topology Learning Hierarchical ART Network. -In K. Diamantaras, W. Duch, & L. S. Iliadis (Eds.), -Artificial Neural Networks – ICANN 2010 (pp. 157–167). -Berlin, Heidelberg: Springer Berlin Heidelberg. -doi:10.1007/978-3-642-15825-4_21. +.. # Tscherepanow, M. (2010). +.. # TopoART: A Topology Learning Hierarchical ART Network. +.. # In K. Diamantaras, W. Duch, & L. S. Iliadis (Eds.), +.. # Artificial Neural Networks – ICANN 2010 (pp. 157–167). +.. # Berlin, Heidelberg: Springer Berlin Heidelberg. +.. # doi:10.1007/978-3-642-15825-4_21. + +.. bibliography:: + :filter: docname in docnames and citation_key == "tscherepanow2010topoart" """ diff --git a/docs/source/conf.py b/docs/source/conf.py index 926d7a8..68f3418 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -45,7 +45,7 @@ def setup(app): # autoapi_python_class_content = 'both' # autoclass_content = 'both' -bibtex_bibfiles = ['artlib_citation.bib'] +bibtex_bibfiles = ['artlib_citation.bib', '../../references.bib'] intersphinx_mapping = { 'python': ('https://docs.python.org/3', None), diff --git a/references.bib b/references.bib index 6d693ed..ca3ddba 100644 --- a/references.bib +++ b/references.bib @@ -57,7 +57,7 @@ @article{vigdor2007bayesian year={2007}, publisher={IEEE} } -@inproceedings{anagnostopoulos2001ellipsoid, +@inproceedings{anagnostopoulos2001a, title={Ellipsoid ART and ARTMAP for incremental clustering and classification}, author={Anagnostopoulos, Georgios C and Georgiopoulos, Michael}, booktitle={IJCNN'01. International Joint Conference on Neural Networks. Proceedings (Cat. No. 01CH37222)}, @@ -66,7 +66,7 @@ @inproceedings{anagnostopoulos2001ellipsoid year={2001}, organization={IEEE} } -@inproceedings{anagnostopoulos2001ellipsoid, +@inproceedings{anagnostopoulos2001b, title={Ellipsoid ART and ARTMAP for incremental unsupervised and supervised learning}, author={Anagnostopoulos, Georgios C and Georgiopoulos, Michael}, booktitle={Applications and Science of Computational Intelligence IV}, From 7f2bbf30aa38b893240709df8d92a49237b5da2b Mon Sep 17 00:00:00 2001 From: Niklas Melton Date: Thu, 17 Oct 2024 13:21:06 -0500 Subject: [PATCH 03/14] add variable references to code --- artlib/common/VAT.py | 2 +- artlib/cvi/iCVIFuzzyArt.py | 2 +- artlib/elementary/ART1.py | 2 +- artlib/elementary/ART2.py | 2 +- artlib/elementary/BayesianART.py | 2 +- artlib/elementary/EllipsoidART.py | 2 +- artlib/elementary/FuzzyART.py | 2 +- artlib/elementary/GaussianART.py | 2 +- artlib/elementary/HypersphereART.py | 2 +- artlib/elementary/QuadraticNeuronART.py | 2 +- artlib/fusion/FusionART.py | 2 +- artlib/hierarchical/DeepARTMAP.py | 2 +- artlib/hierarchical/SMART.py | 2 +- artlib/reinforcement/FALCON.py | 2 +- artlib/supervised/ARTMAP.py | 2 +- artlib/supervised/SimpleARTMAP.py | 2 +- artlib/topological/DualVigilanceART.py | 2 +- artlib/topological/TopoART.py | 2 +- 18 files changed, 18 insertions(+), 18 deletions(-) diff --git a/artlib/common/VAT.py b/artlib/common/VAT.py index 6bce6a4..051502c 100644 --- a/artlib/common/VAT.py +++ b/artlib/common/VAT.py @@ -6,7 +6,7 @@ .. # doi:10.1109/IJCNN.2002.1007487 .. bibliography:: - :filter: docname in docnames and citation_key == "bezdek2002vat" + :filter: citation_key == "bezdek2002vat" """ import numpy as np diff --git a/artlib/cvi/iCVIFuzzyArt.py b/artlib/cvi/iCVIFuzzyArt.py index c6ff956..434e121 100644 --- a/artlib/cvi/iCVIFuzzyArt.py +++ b/artlib/cvi/iCVIFuzzyArt.py @@ -14,7 +14,7 @@ https://ieeexplore.ieee.org/document/9745260 .. bibliography:: - :filter: docname in docnames and citation_key == "da2022icvi" + :filter: citation_key == "da2022icvi" """ import numpy as np diff --git a/artlib/elementary/ART1.py b/artlib/elementary/ART1.py index fbb6260..dc4d7cd 100644 --- a/artlib/elementary/ART1.py +++ b/artlib/elementary/ART1.py @@ -7,7 +7,7 @@ .. # Processing, 37, 54 – 115. doi:10. 1016/S0734-189X(87)80014-2. .. bibliography:: - :filter: docname in docnames and citation_key == "carpenter1987massively" + :filter: citation_key == "carpenter1987massively" """ import numpy as np diff --git a/artlib/elementary/ART2.py b/artlib/elementary/ART2.py index 3178c6a..b649dfc 100644 --- a/artlib/elementary/ART2.py +++ b/artlib/elementary/ART2.py @@ -11,7 +11,7 @@ .. # Neural Networks, 4, 493 – 504. doi:10.1016/0893-6080(91) 90045-7. .. bibliography:: - :filter: docname in docnames and \ + :filter: \ (citation_key == "carpenter1987art" or \ citation_key == "carpenter1991art") diff --git a/artlib/elementary/BayesianART.py b/artlib/elementary/BayesianART.py index 6262425..609dab6 100644 --- a/artlib/elementary/BayesianART.py +++ b/artlib/elementary/BayesianART.py @@ -6,7 +6,7 @@ .. # Networks, 18, 1628–1644. doi:10.1109/TNN.2007.900234. .. bibliography:: - :filter: docname in docnames and citation_key == "vigdor2007bayesian" + :filter: citation_key == "vigdor2007bayesian" """ import numpy as np diff --git a/artlib/elementary/EllipsoidART.py b/artlib/elementary/EllipsoidART.py index 4459b9f..58bd49b 100644 --- a/artlib/elementary/EllipsoidART.py +++ b/artlib/elementary/EllipsoidART.py @@ -11,7 +11,7 @@ .. # International Society for Optics and Photonics. doi:10.1117/12.421180. .. bibliography:: - :filter: docname in docnames and \ + :filter: \ (citation_key == "anagnostopoulos2001a" or \ citation_key == "anagnostopoulos2001b") diff --git a/artlib/elementary/FuzzyART.py b/artlib/elementary/FuzzyART.py index d864915..5459ddd 100644 --- a/artlib/elementary/FuzzyART.py +++ b/artlib/elementary/FuzzyART.py @@ -6,7 +6,7 @@ .. # Neural Networks, 4, 759 – 771. doi:10.1016/0893-6080(91)90056-B. .. bibliography:: - :filter: docname in docnames and citation_key == "carpenter1991fuzzy" + :filter: citation_key == "carpenter1991fuzzy" """ import numpy as np diff --git a/artlib/elementary/GaussianART.py b/artlib/elementary/GaussianART.py index cdf7638..aac7986 100644 --- a/artlib/elementary/GaussianART.py +++ b/artlib/elementary/GaussianART.py @@ -6,7 +6,7 @@ .. # Neural Networks, 9, 881 – 897. doi:10.1016/0893-6080(95)00115-8. .. bibliography:: - :filter: docname in docnames and citation_key == "williamson1996gaussian" + :filter: citation_key == "williamson1996gaussian" """ diff --git a/artlib/elementary/HypersphereART.py b/artlib/elementary/HypersphereART.py index 0fc3a20..9849231 100644 --- a/artlib/elementary/HypersphereART.py +++ b/artlib/elementary/HypersphereART.py @@ -6,7 +6,7 @@ .. # (pp. 59–64). volume 6. doi:10.1109/IJCNN.2000.859373. .. bibliography:: - :filter: docname in docnames and citation_key == "anagnostopoulos2000hypersphere" + :filter: citation_key == "anagnostopoulos2000hypersphere" """ import numpy as np diff --git a/artlib/elementary/QuadraticNeuronART.py b/artlib/elementary/QuadraticNeuronART.py index 2a9a0f2..12a011b 100644 --- a/artlib/elementary/QuadraticNeuronART.py +++ b/artlib/elementary/QuadraticNeuronART.py @@ -9,7 +9,7 @@ .. # Pattern Recognition, 38, 1887 – 1901. doi:10.1016/j.patcog.2005.04.010. .. bibliography:: - :filter: docname in docnames and \ + :filter: \ (citation_key == "su2001application" or \ citation_key == "su2005new") diff --git a/artlib/fusion/FusionART.py b/artlib/fusion/FusionART.py index 15eebcc..5cd165e 100644 --- a/artlib/fusion/FusionART.py +++ b/artlib/fusion/FusionART.py @@ -8,7 +8,7 @@ .. # doi:10.1007/ 978-3-540-72383-7_128. .. bibliography:: - :filter: docname in docnames and citation_key == "tan2007intelligence" + :filter: citation_key == "tan2007intelligence" """ diff --git a/artlib/hierarchical/DeepARTMAP.py b/artlib/hierarchical/DeepARTMAP.py index bda8e4d..896848d 100644 --- a/artlib/hierarchical/DeepARTMAP.py +++ b/artlib/hierarchical/DeepARTMAP.py @@ -6,7 +6,7 @@ .. # Neural Networks, 4, 565 – 588. doi:10.1016/0893-6080(91)90012-T. .. bibliography:: - :filter: docname in docnames and citation_key == "carpenter1991artmap" + :filter: citation_key == "carpenter1991artmap" """ import numpy as np diff --git a/artlib/hierarchical/SMART.py b/artlib/hierarchical/SMART.py index 636bec7..6cb766a 100644 --- a/artlib/hierarchical/SMART.py +++ b/artlib/hierarchical/SMART.py @@ -7,7 +7,7 @@ .. # doi:10.1109/ICNN.1994.374307. .. bibliography:: - :filter: docname in docnames and citation_key == "bartfai1994hierarchical" + :filter: citation_key == "bartfai1994hierarchical" """ diff --git a/artlib/reinforcement/FALCON.py b/artlib/reinforcement/FALCON.py index 2d30f8d..6aa2d79 100644 --- a/artlib/reinforcement/FALCON.py +++ b/artlib/reinforcement/FALCON.py @@ -11,7 +11,7 @@ .. # IEEE Transactions on Neural Networks, 19 , 230–244. doi:10.1109/TNN.2007.905839 .. bibliography:: - :filter: docname in docnames and \ + :filter: \ (citation_key == "tan2004falcon" or \ citation_key == "tan2008integrating") diff --git a/artlib/supervised/ARTMAP.py b/artlib/supervised/ARTMAP.py index d368bd9..fd769d8 100644 --- a/artlib/supervised/ARTMAP.py +++ b/artlib/supervised/ARTMAP.py @@ -6,7 +6,7 @@ .. # Neural Networks, 4, 565 – 588. doi:10.1016/0893-6080(91)90012-T. .. bibliography:: - :filter: docname in docnames and citation_key == "carpenter1991artmap" + :filter: citation_key == "carpenter1991artmap" """ import numpy as np diff --git a/artlib/supervised/SimpleARTMAP.py b/artlib/supervised/SimpleARTMAP.py index b59dde1..8af8362 100644 --- a/artlib/supervised/SimpleARTMAP.py +++ b/artlib/supervised/SimpleARTMAP.py @@ -5,7 +5,7 @@ .. # Norwell, MA, USA: Kluwer Academic Publishers. .. bibliography:: - :filter: docname in docnames and citation_key == "gotarredona1998adaptive" + :filter: citation_key == "gotarredona1998adaptive" """ import numpy as np diff --git a/artlib/topological/DualVigilanceART.py b/artlib/topological/DualVigilanceART.py index 9c23c6d..844e653 100644 --- a/artlib/topological/DualVigilanceART.py +++ b/artlib/topological/DualVigilanceART.py @@ -5,7 +5,7 @@ .. # Neural Networks, 109, 1–5. doi:10.1016/j.neunet.2018.09.015. .. bibliography:: - :filter: docname in docnames and citation_key == "da2019dual" + :filter: citation_key == "da2019dual" """ import numpy as np diff --git a/artlib/topological/TopoART.py b/artlib/topological/TopoART.py index a2d2fa6..6b2a62d 100644 --- a/artlib/topological/TopoART.py +++ b/artlib/topological/TopoART.py @@ -8,7 +8,7 @@ .. # doi:10.1007/978-3-642-15825-4_21. .. bibliography:: - :filter: docname in docnames and citation_key == "tscherepanow2010topoart" + :filter: citation_key == "tscherepanow2010topoart" """ From 050d186a44f91aa8e066ab1fb674e299d66844ea Mon Sep 17 00:00:00 2001 From: Niklas Melton Date: Thu, 17 Oct 2024 13:27:09 -0500 Subject: [PATCH 04/14] add references page --- docs/source/index.rst | 1 + docs/source/references.rst | 6 ++++++ 2 files changed, 7 insertions(+) create mode 100644 docs/source/references.rst diff --git a/docs/source/index.rst b/docs/source/index.rst index 0fabef5..1573794 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -22,6 +22,7 @@ AdaptiveResonanceLib Home contributing contact license + references citation .. toctree:: diff --git a/docs/source/references.rst b/docs/source/references.rst new file mode 100644 index 0000000..45f1346 --- /dev/null +++ b/docs/source/references.rst @@ -0,0 +1,6 @@ +References +================================== + +.. bibliography:: ../../references.bib + :style: unsrt + :all: \ No newline at end of file From 4eeee1a110175b29e4b2fac2a50d25874b1bc8d6 Mon Sep 17 00:00:00 2001 From: Niklas Melton Date: Thu, 17 Oct 2024 13:33:08 -0500 Subject: [PATCH 05/14] update citations --- artlib/common/VAT.py | 2 +- artlib/cvi/iCVIFuzzyArt.py | 2 +- artlib/elementary/ART1.py | 2 +- artlib/elementary/ART2.py | 2 +- artlib/elementary/BayesianART.py | 2 +- artlib/elementary/EllipsoidART.py | 2 +- artlib/elementary/FuzzyART.py | 2 +- artlib/elementary/GaussianART.py | 2 +- artlib/elementary/HypersphereART.py | 2 +- artlib/elementary/QuadraticNeuronART.py | 2 +- artlib/fusion/FusionART.py | 2 +- artlib/hierarchical/DeepARTMAP.py | 2 +- artlib/hierarchical/SMART.py | 2 +- artlib/reinforcement/FALCON.py | 2 +- artlib/supervised/ARTMAP.py | 2 +- artlib/supervised/SimpleARTMAP.py | 2 +- artlib/topological/DualVigilanceART.py | 2 +- artlib/topological/TopoART.py | 2 +- references.bib | 14 ++++++++++---- 19 files changed, 28 insertions(+), 22 deletions(-) diff --git a/artlib/common/VAT.py b/artlib/common/VAT.py index 051502c..c601c27 100644 --- a/artlib/common/VAT.py +++ b/artlib/common/VAT.py @@ -5,7 +5,7 @@ .. # Proceedings of the 2002 International Joint Conference on Neural Networks. .. # doi:10.1109/IJCNN.2002.1007487 -.. bibliography:: +.. bibliography:: ../../references.bib :filter: citation_key == "bezdek2002vat" """ diff --git a/artlib/cvi/iCVIFuzzyArt.py b/artlib/cvi/iCVIFuzzyArt.py index 434e121..75b6fee 100644 --- a/artlib/cvi/iCVIFuzzyArt.py +++ b/artlib/cvi/iCVIFuzzyArt.py @@ -13,7 +13,7 @@ Pages 314-316 and 319-320 Extended icvi offline mode can be found at https://ieeexplore.ieee.org/document/9745260 -.. bibliography:: +.. bibliography:: ../../references.bib :filter: citation_key == "da2022icvi" """ diff --git a/artlib/elementary/ART1.py b/artlib/elementary/ART1.py index dc4d7cd..9d36abd 100644 --- a/artlib/elementary/ART1.py +++ b/artlib/elementary/ART1.py @@ -6,7 +6,7 @@ .. # Computer Vision, Graphics, and Image .. # Processing, 37, 54 – 115. doi:10. 1016/S0734-189X(87)80014-2. -.. bibliography:: +.. bibliography:: ../../references.bib :filter: citation_key == "carpenter1987massively" """ diff --git a/artlib/elementary/ART2.py b/artlib/elementary/ART2.py index b649dfc..f40cc03 100644 --- a/artlib/elementary/ART2.py +++ b/artlib/elementary/ART2.py @@ -10,7 +10,7 @@ .. # recognition. .. # Neural Networks, 4, 493 – 504. doi:10.1016/0893-6080(91) 90045-7. -.. bibliography:: +.. bibliography:: ../../references.bib :filter: \ (citation_key == "carpenter1987art" or \ citation_key == "carpenter1991art") diff --git a/artlib/elementary/BayesianART.py b/artlib/elementary/BayesianART.py index 609dab6..d61e2e6 100644 --- a/artlib/elementary/BayesianART.py +++ b/artlib/elementary/BayesianART.py @@ -5,7 +5,7 @@ .. # IEEE Transactions on Neural .. # Networks, 18, 1628–1644. doi:10.1109/TNN.2007.900234. -.. bibliography:: +.. bibliography:: ../../references.bib :filter: citation_key == "vigdor2007bayesian" """ diff --git a/artlib/elementary/EllipsoidART.py b/artlib/elementary/EllipsoidART.py index 58bd49b..31cf8f9 100644 --- a/artlib/elementary/EllipsoidART.py +++ b/artlib/elementary/EllipsoidART.py @@ -10,7 +10,7 @@ .. # In Aerospace/Defense Sensing, Simulation, and Controls (pp. 293– 304). .. # International Society for Optics and Photonics. doi:10.1117/12.421180. -.. bibliography:: +.. bibliography:: ../../references.bib :filter: \ (citation_key == "anagnostopoulos2001a" or \ citation_key == "anagnostopoulos2001b") diff --git a/artlib/elementary/FuzzyART.py b/artlib/elementary/FuzzyART.py index 5459ddd..83a8394 100644 --- a/artlib/elementary/FuzzyART.py +++ b/artlib/elementary/FuzzyART.py @@ -5,7 +5,7 @@ .. # adaptive resonance system. .. # Neural Networks, 4, 759 – 771. doi:10.1016/0893-6080(91)90056-B. -.. bibliography:: +.. bibliography:: ../../references.bib :filter: citation_key == "carpenter1991fuzzy" """ diff --git a/artlib/elementary/GaussianART.py b/artlib/elementary/GaussianART.py index aac7986..c5a4a78 100644 --- a/artlib/elementary/GaussianART.py +++ b/artlib/elementary/GaussianART.py @@ -5,7 +5,7 @@ .. # Multidimensional Maps. .. # Neural Networks, 9, 881 – 897. doi:10.1016/0893-6080(95)00115-8. -.. bibliography:: +.. bibliography:: ../../references.bib :filter: citation_key == "williamson1996gaussian" """ diff --git a/artlib/elementary/HypersphereART.py b/artlib/elementary/HypersphereART.py index 9849231..320b6a1 100644 --- a/artlib/elementary/HypersphereART.py +++ b/artlib/elementary/HypersphereART.py @@ -5,7 +5,7 @@ .. # In Proc. IEEE International Joint Conference on Neural Networks (IJCNN) .. # (pp. 59–64). volume 6. doi:10.1109/IJCNN.2000.859373. -.. bibliography:: +.. bibliography:: ../../references.bib :filter: citation_key == "anagnostopoulos2000hypersphere" """ diff --git a/artlib/elementary/QuadraticNeuronART.py b/artlib/elementary/QuadraticNeuronART.py index 12a011b..acb52ee 100644 --- a/artlib/elementary/QuadraticNeuronART.py +++ b/artlib/elementary/QuadraticNeuronART.py @@ -8,7 +8,7 @@ .. # A new approach to clustering data with arbitrary shapes. .. # Pattern Recognition, 38, 1887 – 1901. doi:10.1016/j.patcog.2005.04.010. -.. bibliography:: +.. bibliography:: ../../references.bib :filter: \ (citation_key == "su2001application" or \ citation_key == "su2005new") diff --git a/artlib/fusion/FusionART.py b/artlib/fusion/FusionART.py index 5cd165e..ba4f398 100644 --- a/artlib/fusion/FusionART.py +++ b/artlib/fusion/FusionART.py @@ -7,7 +7,7 @@ .. # Berlin, Heidelberg: Springer Berlin Heidelberg. .. # doi:10.1007/ 978-3-540-72383-7_128. -.. bibliography:: +.. bibliography:: ../../references.bib :filter: citation_key == "tan2007intelligence" diff --git a/artlib/hierarchical/DeepARTMAP.py b/artlib/hierarchical/DeepARTMAP.py index 896848d..bcefe4c 100644 --- a/artlib/hierarchical/DeepARTMAP.py +++ b/artlib/hierarchical/DeepARTMAP.py @@ -5,7 +5,7 @@ .. # self-organizing neural network. .. # Neural Networks, 4, 565 – 588. doi:10.1016/0893-6080(91)90012-T. -.. bibliography:: +.. bibliography:: ../../references.bib :filter: citation_key == "carpenter1991artmap" """ diff --git a/artlib/hierarchical/SMART.py b/artlib/hierarchical/SMART.py index 6cb766a..9d814a7 100644 --- a/artlib/hierarchical/SMART.py +++ b/artlib/hierarchical/SMART.py @@ -6,7 +6,7 @@ .. # (pp. 940–944). volume 2. .. # doi:10.1109/ICNN.1994.374307. -.. bibliography:: +.. bibliography:: ../../references.bib :filter: citation_key == "bartfai1994hierarchical" """ diff --git a/artlib/reinforcement/FALCON.py b/artlib/reinforcement/FALCON.py index 6aa2d79..7f54a56 100644 --- a/artlib/reinforcement/FALCON.py +++ b/artlib/reinforcement/FALCON.py @@ -10,7 +10,7 @@ .. # Reinforcement Learning With Delayed Evaluative Feedback. .. # IEEE Transactions on Neural Networks, 19 , 230–244. doi:10.1109/TNN.2007.905839 -.. bibliography:: +.. bibliography:: ../../references.bib :filter: \ (citation_key == "tan2004falcon" or \ citation_key == "tan2008integrating") diff --git a/artlib/supervised/ARTMAP.py b/artlib/supervised/ARTMAP.py index fd769d8..9f14063 100644 --- a/artlib/supervised/ARTMAP.py +++ b/artlib/supervised/ARTMAP.py @@ -5,7 +5,7 @@ .. # self-organizing neural network. .. # Neural Networks, 4, 565 – 588. doi:10.1016/0893-6080(91)90012-T. -.. bibliography:: +.. bibliography:: ../../references.bib :filter: citation_key == "carpenter1991artmap" """ diff --git a/artlib/supervised/SimpleARTMAP.py b/artlib/supervised/SimpleARTMAP.py index 8af8362..48457c8 100644 --- a/artlib/supervised/SimpleARTMAP.py +++ b/artlib/supervised/SimpleARTMAP.py @@ -4,7 +4,7 @@ .. # Adaptive Resonance Theory Microchips: Circuit Design Techniques. .. # Norwell, MA, USA: Kluwer Academic Publishers. -.. bibliography:: +.. bibliography:: ../../references.bib :filter: citation_key == "gotarredona1998adaptive" """ diff --git a/artlib/topological/DualVigilanceART.py b/artlib/topological/DualVigilanceART.py index 844e653..b6f3c27 100644 --- a/artlib/topological/DualVigilanceART.py +++ b/artlib/topological/DualVigilanceART.py @@ -4,7 +4,7 @@ .. # Dual vigilance fuzzy adaptive resonance theory. .. # Neural Networks, 109, 1–5. doi:10.1016/j.neunet.2018.09.015. -.. bibliography:: +.. bibliography:: ../../references.bib :filter: citation_key == "da2019dual" """ diff --git a/artlib/topological/TopoART.py b/artlib/topological/TopoART.py index 6b2a62d..3b58d19 100644 --- a/artlib/topological/TopoART.py +++ b/artlib/topological/TopoART.py @@ -7,7 +7,7 @@ .. # Berlin, Heidelberg: Springer Berlin Heidelberg. .. # doi:10.1007/978-3-642-15825-4_21. -.. bibliography:: +.. bibliography:: ../../references.bib :filter: citation_key == "tscherepanow2010topoart" """ diff --git a/references.bib b/references.bib index ca3ddba..d797762 100644 --- a/references.bib +++ b/references.bib @@ -160,10 +160,16 @@ @article{tan2008integrating year={2008}, publisher={IEEE} } -@article{carpenter1991artmap, - title={ARTMAP: Supervised real-time learning and classification of nonstationary data by a self-organizing neural network}, - author={Carpenter, Gail A and Grossberg, Stephen and Reynolds, John H}, - year={1991} +@inproceedings{carpenter1991artmap, + author={Carpenter, G.A. and Grossberg, S. and Reynolds, J.H.}, + booktitle={[1991 Proceedings] IEEE Conference on Neural Networks for Ocean Engineering}, + title={ARTMAP: supervised real-time learning and classification of nonstationary data by a self-organizing neural network}, + year={1991}, + volume={}, + number={}, + pages={341-342}, + keywords={Subspace constraints;Databases;Neural networks;Supervised learning;Resonance;Pattern recognition;System testing;Benchmark testing;Machine learning;Machine learning algorithms}, + doi={10.1109/ICNN.1991.163370} } @misc{gotarredona1998adaptive, title={Adaptive Resonance Theory Microchips Circuit Design Techniques}, From c1c4492713fc890b7763b1bc77aa7ca4476373f6 Mon Sep 17 00:00:00 2001 From: Niklas Melton Date: Thu, 17 Oct 2024 13:54:29 -0500 Subject: [PATCH 06/14] add citations to class descriptions --- artlib/common/VAT.py | 15 ++++++++++++++ artlib/cvi/iCVIFuzzyArt.py | 14 ++++++++++++- artlib/elementary/ART1.py | 20 +++++++++++++------ artlib/elementary/ART2.py | 21 +++++++++++++++----- artlib/elementary/BayesianART.py | 18 ++++++++++++----- artlib/elementary/EllipsoidART.py | 26 +++++++++++++++++++------ artlib/elementary/FuzzyART.py | 17 ++++++++++------ artlib/elementary/GaussianART.py | 14 ++++++++----- artlib/elementary/HypersphereART.py | 17 +++++++++++----- artlib/elementary/QuadraticNeuronART.py | 22 ++++++++++++++++----- artlib/fusion/FusionART.py | 19 +++++++++++------- artlib/hierarchical/DeepARTMAP.py | 8 ++++++++ artlib/hierarchical/SMART.py | 22 ++++++++++++++------- artlib/reinforcement/FALCON.py | 21 +++++++++++++++----- artlib/supervised/ARTMAP.py | 14 ++++++++----- artlib/supervised/SimpleARTMAP.py | 12 ++++++++---- artlib/topological/DualVigilanceART.py | 14 +++++++++---- artlib/topological/TopoART.py | 19 ++++++++++-------- 18 files changed, 229 insertions(+), 84 deletions(-) diff --git a/artlib/common/VAT.py b/artlib/common/VAT.py index c601c27..9e9d23f 100644 --- a/artlib/common/VAT.py +++ b/artlib/common/VAT.py @@ -20,6 +20,21 @@ def VAT( ) -> Tuple[np.ndarray, np.ndarray]: """Visual Assessment of Cluster Tendency (VAT) algorithm. + VAT was originally designed as a visualization tool for clustering behavior of data. + When the VAT-reordered distance matrix is plotted as an image, clusters will appear + in visually distinct groups along the diagonal. However, it has since been + discovered that the reordering significantly improves the results of order-dependent + clustering methods like ART. It is therefore recommended to pre-process data with + VAT prior to presentation when possible. + + .. # Bezdek, J. C., & Hathaway, R. J. (2002). + .. # VAT: A tool for visual assessment of cluster tendency. + .. # Proceedings of the 2002 International Joint Conference on Neural Networks. + .. # doi:10.1109/IJCNN.2002.1007487 + + .. bibliography:: ../../references.bib + :filter: citation_key == "bezdek2002vat" + Parameters ---------- data : np.ndarray diff --git a/artlib/cvi/iCVIFuzzyArt.py b/artlib/cvi/iCVIFuzzyArt.py index 75b6fee..4e3c37a 100644 --- a/artlib/cvi/iCVIFuzzyArt.py +++ b/artlib/cvi/iCVIFuzzyArt.py @@ -24,7 +24,19 @@ class iCVIFuzzyART(FuzzyART): - """ICVI Fuzzy Art For Clustering.""" + """ICVI Fuzzy Art For Clustering. + + .. # da Silva, Leonardo Enzo Brito, Nagasharath Rayapati, and Donald C. Wunsch. + .. # "iCVI-ARTMAP: using incremental cluster validity indices and adaptive resonance + .. # theory reset mechanism to accelerate validation and achieve multiprototype + .. # unsupervised representations." + .. # IEEE Transactions on Neural Networks and Learning Systems + .. # 34.12 (2022): 9757-9770. + + .. bibliography:: ../../references.bib + :filter: citation_key == "da2022icvi" + + """ CALINSKIHARABASZ = 1 diff --git a/artlib/elementary/ART1.py b/artlib/elementary/ART1.py index 9d36abd..0a7938d 100644 --- a/artlib/elementary/ART1.py +++ b/artlib/elementary/ART1.py @@ -8,6 +8,7 @@ .. bibliography:: ../../references.bib :filter: citation_key == "carpenter1987massively" + """ import numpy as np @@ -17,13 +18,20 @@ class ART1(BaseART): - """ART1 for Clustering. + """ART1 for Binary Clustering. + + This module implements ART1 as first published in: + + .. # Carpenter, G. A., & Grossberg, S. (1987a). + .. # A massively parallel architecture for a self-organizing neural pattern + .. # recognition machine. + .. # Computer Vision, Graphics, and Image + .. # Processing, 37, 54 – 115. doi:10. 1016/S0734-189X(87)80014-2. + + .. bibliography:: ../../references.bib + :filter: citation_key == "carpenter1987massively" - This module implements ART1 as first published in Carpenter, G. A., & Grossberg, S. - (1987a). A massively parallel architecture for a self-organizing neural pattern - recognition machine. Computer Vision, Graphics, and Image Processing, 37, 54 – 115. - doi:10. 1016/S0734-189X(87)80014-2. ART1 is intended for binary data clustering - only. + ART1 is exclusively for clustering binary data. """ diff --git a/artlib/elementary/ART2.py b/artlib/elementary/ART2.py index f40cc03..f9ef370 100644 --- a/artlib/elementary/ART2.py +++ b/artlib/elementary/ART2.py @@ -33,11 +33,22 @@ class ART2A(BaseART): """ART2-A for Clustering. - This module implements ART2-A as first published in - Carpenter, G. A., Grossberg, S., & Rosen, D. B. (1991b). - ART 2-A: An adaptive resonance algorithm for rapid category learning and - recognition. - Neural Networks, 4, 493 – 504. doi:10.1016/0893-6080(91) 90045-7. + This module implements ART2-A as first published in: + + .. # Carpenter, G. A., & Grossberg, S. (1987b). + .. # ART 2: self-organization of stable category recognition codes for analog input + .. # patterns. + .. # Appl. Opt., 26, 4919–4930. doi:10.1364/AO.26.004919. + + .. # Carpenter, G. A., Grossberg, S., & Rosen, D. B. (1991b). + .. # ART 2-A: An adaptive resonance algorithm for rapid category learning and + .. # recognition. + .. # Neural Networks, 4, 493 – 504. doi:10.1016/0893-6080(91) 90045-7. + + .. bibliography:: ../../references.bib + :filter: \ + (citation_key == "carpenter1987art" or \ + citation_key == "carpenter1991art") ART2-A is similar to ART1 but designed for analog data. This method is implemented for historical purposes and is not recommended for use. diff --git a/artlib/elementary/BayesianART.py b/artlib/elementary/BayesianART.py index d61e2e6..879b1a6 100644 --- a/artlib/elementary/BayesianART.py +++ b/artlib/elementary/BayesianART.py @@ -20,11 +20,19 @@ class BayesianART(BaseART): """Bayesian ART for Clustering. - This module implements Bayesian ART as first published in Vigdor, B., & Lerner, B. - (2007). The Bayesian ARTMAP. IEEE Transactions on Neural Networks, 18, 1628–1644. - doi:10.1109/TNN.2007.900234. Bayesian ART clusters data in Bayesian Distributions - (Hyper-ellipsoids) and is similar to Gaussian ART but differs in that it allows - arbitrary rotation of the hyper-ellipsoid. + This module implements Bayesian ART as first published in: + + .. # Vigdor, B., & Lerner, B. (2007). + .. # The Bayesian ARTMAP. + .. # IEEE Transactions on Neural + .. # Networks, 18, 1628–1644. doi:10.1109/TNN.2007.900234. + + .. bibliography:: ../../references.bib + :filter: citation_key == "vigdor2007bayesian" + + Bayesian ART clusters data in Bayesian Distributions (Hyper-ellipsoids) and is + similar to Gaussian ART but differs in that it allows arbitrary rotation of the + hyper-ellipsoid. """ diff --git a/artlib/elementary/EllipsoidART.py b/artlib/elementary/EllipsoidART.py index 31cf8f9..9baccc9 100644 --- a/artlib/elementary/EllipsoidART.py +++ b/artlib/elementary/EllipsoidART.py @@ -26,12 +26,26 @@ class EllipsoidART(BaseART): """Ellipsoid ART for Clustering. - This module implements Ellipsoid ART as first published in Anagnostopoulos, G. C., & - Georgiopoulos, M. (2001a). Ellipsoid ART and ARTMAP for incremental clustering and - classification. In Proc. IEEE International Joint Conference on Neural Networks - (IJCNN) (pp. 1221–1226). volume 2. doi:10.1109/IJCNN.2001.939535. Ellipsoid ART - clusters data in Hyper-ellipsoids. It is highly sensitive to sample presentation - order as the second sample will determine the orientation of the principal axes. + This module implements Ellipsoid ART as first published in: + + .. # Anagnostopoulos, G. C., & Georgiopoulos, M. (2001a). + .. # Ellipsoid ART and ARTMAP for incremental clustering and classification. + .. # In Proc. IEEE International Joint Conference on Neural Networks (IJCNN) + .. # (pp. 1221–1226). volume 2. doi:10.1109/IJCNN.2001.939535. + + .. # Anagnostopoulos, G. C., & Georgiopoulos, M. (2001b). + .. # Ellipsoid ART and ARTMAP for incremental unsupervised and supervised learning. + .. # In Aerospace/Defense Sensing, Simulation, and Controls (pp. 293– 304). + .. # International Society for Optics and Photonics. doi:10.1117/12.421180. + + .. bibliography:: ../../references.bib + :filter: \ + (citation_key == "anagnostopoulos2001a" or \ + citation_key == "anagnostopoulos2001b") + + Ellipsoid ART clusters data in Hyper-ellipsoids. It is highly sensitive to sample + presentation order as the second sample will determine the orientation of the + principal axes. """ diff --git a/artlib/elementary/FuzzyART.py b/artlib/elementary/FuzzyART.py index 83a8394..41ee2bb 100644 --- a/artlib/elementary/FuzzyART.py +++ b/artlib/elementary/FuzzyART.py @@ -61,13 +61,18 @@ def get_bounding_box( class FuzzyART(BaseART): """Fuzzy ART for Clustering. - This module implements Fuzzy ART as first published in - Carpenter, G. A., Grossberg, S., & Rosen, D. B. (1991c). - Fuzzy ART: Fast stable learning and categorization of analog patterns by an - adaptive resonance system. - Neural Networks, 4, 759 – 771. doi:10.1016/0893-6080(91)90056-B. + This module implements Fuzzy ART as first published in: - Fuzzy ART is a hyper-box based clustering method. + .. # Carpenter, G. A., Grossberg, S., & Rosen, D. B. (1991c). + .. # Fuzzy ART: Fast stable learning and categorization of analog patterns by an + .. # adaptive resonance system. + .. # Neural Networks, 4, 759 – 771. doi:10.1016/0893-6080(91)90056-B. + + .. bibliography:: ../../references.bib + :filter: citation_key == "carpenter1991fuzzy" + + Fuzzy ART is a hyper-box based clustering method that is exceptionally fast and + explainable. """ diff --git a/artlib/elementary/GaussianART.py b/artlib/elementary/GaussianART.py index c5a4a78..a2f6e7b 100644 --- a/artlib/elementary/GaussianART.py +++ b/artlib/elementary/GaussianART.py @@ -20,11 +20,15 @@ class GaussianART(BaseART): """Gaussian ART for Clustering. - This module implements Gaussian ART as first published in - Williamson, J. R. (1996). - Gaussian ARTMAP: A Neural Network for Fast Incremental Learning of - Noisy Multidimensional Maps. - Neural Networks, 9, 881 – 897. doi:10.1016/0893-6080(95)00115-8. + This module implements Gaussian ART as first published in: + + .. # Williamson, J. R. (1996). + .. # Gaussian ARTMAP: A Neural Network for Fast Incremental Learning of Noisy + .. # Multidimensional Maps. + .. # Neural Networks, 9, 881 – 897. doi:10.1016/0893-6080(95)00115-8. + + .. bibliography:: ../../references.bib + :filter: citation_key == "williamson1996gaussian" Guassian ART clusters data in Gaussian Distributions (Hyper-ellipsoids) and is similar to Bayesian ART but differs in that the hyper-ellipsoid always have their diff --git a/artlib/elementary/HypersphereART.py b/artlib/elementary/HypersphereART.py index 320b6a1..e46b74d 100644 --- a/artlib/elementary/HypersphereART.py +++ b/artlib/elementary/HypersphereART.py @@ -19,11 +19,18 @@ class HypersphereART(BaseART): """Hypersphere ART for Clustering. - This module implements Ellipsoid ART as first published in Anagnostopoulos, G. C., & - Georgiopulos, M. (2000). Hypersphere ART and ARTMAP for unsupervised and supervised, - incremental learning. In Proc. IEEE International Joint Conference on Neural - Networks (IJCNN) (pp. 59–64). volume 6. doi:10.1109/IJCNN.2000.859373. Hyperpshere - ART clusters data in Hyper-spheres similar to k-means with a dynamic k. + This module implements Ellipsoid ART as first published in: + + .. # Anagnostopoulos, G. C., & Georgiopulos, M. (2000). + .. # Hypersphere ART and ARTMAP for unsupervised and supervised, incremental + .. # learning. + .. # In Proc. IEEE International Joint Conference on Neural Networks (IJCNN) + .. # (pp. 59–64). volume 6. doi:10.1109/IJCNN.2000.859373. + + .. bibliography:: ../../references.bib + :filter: citation_key == "anagnostopoulos2000hypersphere" + + Hyperpshere ART clusters data in Hyper-spheres similar to k-means with a dynamic k. """ diff --git a/artlib/elementary/QuadraticNeuronART.py b/artlib/elementary/QuadraticNeuronART.py index acb52ee..cf5273c 100644 --- a/artlib/elementary/QuadraticNeuronART.py +++ b/artlib/elementary/QuadraticNeuronART.py @@ -26,11 +26,23 @@ class QuadraticNeuronART(BaseART): """Quadratic Neuron ART for Clustering. - This module implements Quadratic Neuron ART as first published in Su, M.-C., & Liu, - Y.-C. (2005). A new approach to clustering data with arbitrary shapes. Pattern - Recognition, 38, 1887 – 1901. doi:10.1016/j.patcog.2005.04.010. Quadratic Neuron ART - clusters data in Hyper-ellipsoid by utilizing a quadratic neural network for - activation and resonance. + This module implements Quadratic Neuron ART as first published in: + + .. # Su, M.-C., & Liu, T.-K. (2001). + .. # Application of neural networks using quadratic junctions in cluster analysis. + .. # Neurocomputing, 37, 165 – 175. doi:10.1016/S0925-2312(00)00343-X. + + .. # Su, M.-C., & Liu, Y.-C. (2005). + .. # A new approach to clustering data with arbitrary shapes. + .. # Pattern Recognition, 38, 1887 – 1901. doi:10.1016/j.patcog.2005.04.010. + + .. bibliography:: ../../references.bib + :filter: \ + (citation_key == "su2001application" or \ + citation_key == "su2005new") + + Quadratic Neuron ART clusters data in Hyper-ellipsoid by utilizing a quadratic + neural network for activation and resonance. """ diff --git a/artlib/fusion/FusionART.py b/artlib/fusion/FusionART.py index ba4f398..2d5ea71 100644 --- a/artlib/fusion/FusionART.py +++ b/artlib/fusion/FusionART.py @@ -49,13 +49,18 @@ def get_channel_position_tuples( class FusionART(BaseART): """Fusion ART for Data Fusion and Regression. - This module implements Fusion ART as first described in - Tan, A.-H., Carpenter, G. A., & Grossberg, S. (2007). - Intelligence Through Interaction: Towards a Unified Theory for Learning. - In D. Liu, S. Fei, Z.-G. Hou, H. Zhang, & C. Sun (Eds.), - Advances in Neural Networks – ISNN 2007 (pp. 1094–1103). - Berlin, Heidelberg: Springer Berlin Heidelberg. - doi:10.1007/ 978-3-540-72383-7_128. + This module implements Fusion ART as first described in: + + .. # Tan, A.-H., Carpenter, G. A., & Grossberg, S. (2007). + .. # Intelligence Through Interaction: Towards a Unified Theory for Learning. + .. # In D. Liu, S. Fei, Z.-G. Hou, H. Zhang, & C. Sun (Eds.), + .. # Advances in Neural Networks – ISNN 2007 (pp. 1094–1103). + .. # Berlin, Heidelberg: Springer Berlin Heidelberg. + .. # doi:10.1007/ 978-3-540-72383-7_128. + + .. bibliography:: ../../references.bib + :filter: citation_key == "tan2007intelligence" + Fusion ART accepts an arbitrary number of ART modules, each assigned a different data channel. The activation and match functions for all ART modules are then fused such that all modules must be simultaneously active and resonant in order for a diff --git a/artlib/hierarchical/DeepARTMAP.py b/artlib/hierarchical/DeepARTMAP.py index bcefe4c..98683fc 100644 --- a/artlib/hierarchical/DeepARTMAP.py +++ b/artlib/hierarchical/DeepARTMAP.py @@ -29,6 +29,14 @@ class DeepARTMAP(BaseEstimator, ClassifierMixin, ClusterMixin): second module is the B module. DeepARTMAP does not currently have a direct citation and is an original creation of this library. + .. # Carpenter, G. A., Grossberg, S., & Reynolds, J. H. (1991a). + .. # ARTMAP: Supervised real-time learning and classification of nonstationary data by a + .. # self-organizing neural network. + .. # Neural Networks, 4, 565 – 588. doi:10.1016/0893-6080(91)90012-T. + + .. bibliography:: ../../references.bib + :filter: citation_key == "carpenter1991artmap" + """ def __init__(self, modules: list[BaseART]): diff --git a/artlib/hierarchical/SMART.py b/artlib/hierarchical/SMART.py index 9d814a7..1f0a2ca 100644 --- a/artlib/hierarchical/SMART.py +++ b/artlib/hierarchical/SMART.py @@ -22,13 +22,21 @@ class SMART(DeepARTMAP): """SMART for Hierachical Clustering. - This module implements SMART as first published in Bartfai, G. (1994). Hierarchical - clustering with ART neural networks. In Proc. IEEE International Conference on - Neural Networks (ICNN) (pp. 940–944). volume 2. doi:10.1109/ICNN.1994.374307. SMART - accepts an uninstatiated ART class and hierarchically clusters data in a divisive - fashion by using a set of vigilance values that monotonically increase in their - restrictiveness. SMART is a special case of DeepARTMAP, which forms the backbone of - this class, where all channels receive the same data. + This module implements SMART as first published in: + + .. # Bartfai, G. (1994). + .. # Hierarchical clustering with ART neural networks. + .. # In Proc. IEEE International Conference on Neural Networks (ICNN) + .. # (pp. 940–944). volume 2. + .. # doi:10.1109/ICNN.1994.374307. + + .. bibliography:: ../../references.bib + :filter: citation_key == "bartfai1994hierarchical" + + SMART accepts an uninstantiated ART class and hierarchically clusters data in a + divisive fashion by using a set of vigilance values that monotonically increase + in their restrictiveness. SMART is a special case of DeepARTMAP, which forms the + backbone of this class, where all channels receive the same data. """ diff --git a/artlib/reinforcement/FALCON.py b/artlib/reinforcement/FALCON.py index 7f54a56..e80c3a8 100644 --- a/artlib/reinforcement/FALCON.py +++ b/artlib/reinforcement/FALCON.py @@ -27,11 +27,22 @@ class FALCON: """FALCON for Reinforcement Learning. - This module implements the reactive FALCON as first described in - Tan, A.-H. (2004). - FALCON: a fusion architecture for learning, cognition, and navigation. - In Proc. IEEE International Joint Conference on Neural Networks (IJCNN) - (pp. 3297–3302). volume 4. doi:10.1109/IJCNN.2004.1381208. + This module implements the reactive FALCON as first described in: + + .. # Tan, A.-H. (2004). + .. # FALCON: a fusion architecture for learning, cognition, and navigation. + .. # In Proc. IEEE International Joint Conference on Neural Networks (IJCNN) + .. # (pp. 3297–3302). volume 4. doi:10.1109/ IJCNN.2004.1381208. + + .. # Tan, A.-H., Lu, N., & Xiao, D. (2008). + .. # Integrating Temporal Difference Methods and Self-Organizing Neural Networks for + .. # Reinforcement Learning With Delayed Evaluative Feedback. + .. # IEEE Transactions on Neural Networks, 19 , 230–244. doi:10.1109/TNN.2007.905839 + + .. bibliography:: ../../references.bib + :filter: \ + (citation_key == "tan2004falcon" or \ + citation_key == "tan2008integrating") FALCON is based on a Fusion-ART backbone but only accepts 3 channels: State, Action, and Reward. Specific functions are implemented for getting optimal reward and action diff --git a/artlib/supervised/ARTMAP.py b/artlib/supervised/ARTMAP.py index 9f14063..f899a74 100644 --- a/artlib/supervised/ARTMAP.py +++ b/artlib/supervised/ARTMAP.py @@ -19,11 +19,15 @@ class ARTMAP(SimpleARTMAP): """ARTMAP for Classification and Regression. - This module implements ARTMAP as first published in - Carpenter, G. A., Grossberg, S., & Reynolds, J. H. (1991a). - ARTMAP: Supervised real-time learning and classification of nonstationary data by a - self-organizing neural network. - Neural Networks, 4, 565 – 588. doi:10.1016/0893-6080(91)90012-T. + This module implements ARTMAP as first published in: + + .. # Carpenter, G. A., Grossberg, S., & Reynolds, J. H. (1991a). + .. # ARTMAP: Supervised real-time learning and classification of nonstationary data + .. # by a self-organizing neural network. + .. # Neural Networks, 4, 565 – 588. doi:10.1016/0893-6080(91)90012-T. + + .. bibliography:: ../../references.bib + :filter: citation_key == "carpenter1991artmap" ARTMAP joins accepts two ART modules A and B which cluster the dependent channel (samples) and the independent channel (labels) respectively while linking them with diff --git a/artlib/supervised/SimpleARTMAP.py b/artlib/supervised/SimpleARTMAP.py index 48457c8..fe74739 100644 --- a/artlib/supervised/SimpleARTMAP.py +++ b/artlib/supervised/SimpleARTMAP.py @@ -21,10 +21,14 @@ class SimpleARTMAP(BaseARTMAP): """SimpleARTMAP for Classification. - This module implements SimpleARTMAP as first published in - Serrano-Gotarredona, T., Linares-Barranco, B., & Andreou, A. G. (1998). - Adaptive Resonance Theory Microchips: Circuit Design Techniques. - Norwell, MA, USA: Kluwer Academic Publishers. + This module implements SimpleARTMAP as first published in: + + .. # Serrano-Gotarredona, T., Linares-Barranco, B., & Andreou, A. G. (1998). + .. # Adaptive Resonance Theory Microchips: Circuit Design Techniques. + .. # Norwell, MA, USA: Kluwer Academic Publishers. + + .. bibliography:: ../../references.bib + :filter: citation_key == "gotarredona1998adaptive" SimpleARTMAP allows the clustering of data samples while enforcing a many-to-one mapping from sample clusters to labels. It accepts an instantiated ART module and diff --git a/artlib/topological/DualVigilanceART.py b/artlib/topological/DualVigilanceART.py index b6f3c27..85cda9c 100644 --- a/artlib/topological/DualVigilanceART.py +++ b/artlib/topological/DualVigilanceART.py @@ -20,10 +20,16 @@ class DualVigilanceART(BaseART): """Dual Vigilance ART for Clustering. - This module implements Dual Vigilance ART as first published in Brito da Silva, L. - E., Elnabarawy, I., & Wunsch II, D. C. (2019). Dual vigilance fuzzy adaptive - resonance theory. Neural Networks, 109, 1–5. doi:10.1016/j.neunet.2018.09.015. Dual - Vigilance ART allows a base ART module to cluster with both an upper and lower + This module implements Dual Vigilance ART as first published in: + + .. # Brito da Silva, L. E., Elnabarawy, I., & Wunsch II, D. C. (2019). + .. # Dual vigilance fuzzy adaptive resonance theory. + .. # Neural Networks, 109, 1–5. doi:10.1016/j.neunet.2018.09.015. + + .. bibliography:: ../../references.bib + :filter: citation_key == "da2019dual" + + Dual Vigilance ART allows a base ART module to cluster with both an upper and lower vigilance value. The upper-vigilance value allows the base ART module to cluster normally, however, data is simultaneously clustered using the lower vigilance level to combine multiple base ART categories into a single abstracted category. This diff --git a/artlib/topological/TopoART.py b/artlib/topological/TopoART.py index 3b58d19..ea81bf2 100644 --- a/artlib/topological/TopoART.py +++ b/artlib/topological/TopoART.py @@ -25,14 +25,17 @@ class TopoART(BaseART): """Topo ART for Topological Clustering. - This module implements Topo ART as first published in - - Tscherepanow, M. (2010). - TopoART: A Topology Learning Hierarchical ART Network. - In K. Diamantaras, W. Duch, & L. S. Iliadis (Eds.), - Artificial Neural Networks – ICANN 2010 (pp. 157–167). - Berlin, Heidelberg: Springer Berlin Heidelberg. - doi:10.1007/978-3-642-15825-4_21. + This module implements Topo ART as first published in: + + .. # Tscherepanow, M. (2010). + .. # TopoART: A Topology Learning Hierarchical ART Network. + .. # In K. Diamantaras, W. Duch, & L. S. Iliadis (Eds.), + .. # Artificial Neural Networks – ICANN 2010 (pp. 157–167). + .. # Berlin, Heidelberg: Springer Berlin Heidelberg. + .. # doi:10.1007/978-3-642-15825-4_21. + + .. bibliography:: ../../references.bib + :filter: citation_key == "tscherepanow2010topoart" Topo ART clusters accepts an instatiated base ART module and generates a topological clustering by recording the first and second resonant cluster relationships in an From 254c3cc2b7cf30429ee0379ca91bbc4027e238a9 Mon Sep 17 00:00:00 2001 From: Niklas Melton Date: Thu, 17 Oct 2024 13:56:15 -0500 Subject: [PATCH 07/14] run pre-commit --- artlib/fusion/FusionART.py | 1 - artlib/hierarchical/DeepARTMAP.py | 4 ++-- artlib/supervised/ARTMAP.py | 4 +--- artlib/supervised/SimpleARTMAP.py | 4 +--- references.bib | 2 +- 5 files changed, 5 insertions(+), 10 deletions(-) diff --git a/artlib/fusion/FusionART.py b/artlib/fusion/FusionART.py index 2d5ea71..ae43ffb 100644 --- a/artlib/fusion/FusionART.py +++ b/artlib/fusion/FusionART.py @@ -10,7 +10,6 @@ .. bibliography:: ../../references.bib :filter: citation_key == "tan2007intelligence" - """ import numpy as np from typing import Optional, Union, Callable, List, Literal, Tuple, Dict diff --git a/artlib/hierarchical/DeepARTMAP.py b/artlib/hierarchical/DeepARTMAP.py index 98683fc..ae6c940 100644 --- a/artlib/hierarchical/DeepARTMAP.py +++ b/artlib/hierarchical/DeepARTMAP.py @@ -30,8 +30,8 @@ class DeepARTMAP(BaseEstimator, ClassifierMixin, ClusterMixin): and is an original creation of this library. .. # Carpenter, G. A., Grossberg, S., & Reynolds, J. H. (1991a). - .. # ARTMAP: Supervised real-time learning and classification of nonstationary data by a - .. # self-organizing neural network. + .. # ARTMAP: Supervised real-time learning and classification of nonstationary data + .. # by a self-organizing neural network. .. # Neural Networks, 4, 565 – 588. doi:10.1016/0893-6080(91)90012-T. .. bibliography:: ../../references.bib diff --git a/artlib/supervised/ARTMAP.py b/artlib/supervised/ARTMAP.py index f899a74..5e975a6 100644 --- a/artlib/supervised/ARTMAP.py +++ b/artlib/supervised/ARTMAP.py @@ -255,9 +255,7 @@ def partial_fit( """ self.validate_data(X, y) - self.module_b.partial_fit( - y, match_tracking=match_tracking, epsilon=epsilon - ) + self.module_b.partial_fit(y, match_tracking=match_tracking, epsilon=epsilon) super(ARTMAP, self).partial_fit( X, self.labels_b, diff --git a/artlib/supervised/SimpleARTMAP.py b/artlib/supervised/SimpleARTMAP.py index fe74739..18ef884 100644 --- a/artlib/supervised/SimpleARTMAP.py +++ b/artlib/supervised/SimpleARTMAP.py @@ -315,9 +315,7 @@ def partial_fit( ) for i, (x, c_b) in enumerate(zip(X, y)): self.module_a.pre_step_fit(X) - c_a = self.step_fit( - x, c_b, match_tracking=match_tracking, epsilon=epsilon - ) + c_a = self.step_fit(x, c_b, match_tracking=match_tracking, epsilon=epsilon) self.module_a.labels_[i + j] = c_a self.module_a.post_step_fit(X) return self diff --git a/references.bib b/references.bib index d797762..3188944 100644 --- a/references.bib +++ b/references.bib @@ -193,4 +193,4 @@ @inproceedings{tscherepanow2010topoart pages={157--167}, year={2010}, organization={Springer} -} \ No newline at end of file +} From 30cd08cea3b8f9b5199d9e7b910db41dba408faa Mon Sep 17 00:00:00 2001 From: Niklas Melton Date: Thu, 17 Oct 2024 14:07:47 -0500 Subject: [PATCH 08/14] add spacing --- artlib/elementary/ART1.py | 2 ++ artlib/elementary/ART2.py | 2 ++ 2 files changed, 4 insertions(+) diff --git a/artlib/elementary/ART1.py b/artlib/elementary/ART1.py index 0a7938d..4eee54b 100644 --- a/artlib/elementary/ART1.py +++ b/artlib/elementary/ART1.py @@ -22,6 +22,7 @@ class ART1(BaseART): This module implements ART1 as first published in: + .. # Carpenter, G. A., & Grossberg, S. (1987a). .. # A massively parallel architecture for a self-organizing neural pattern .. # recognition machine. @@ -31,6 +32,7 @@ class ART1(BaseART): .. bibliography:: ../../references.bib :filter: citation_key == "carpenter1987massively" + ART1 is exclusively for clustering binary data. """ diff --git a/artlib/elementary/ART2.py b/artlib/elementary/ART2.py index f9ef370..8331bfd 100644 --- a/artlib/elementary/ART2.py +++ b/artlib/elementary/ART2.py @@ -35,6 +35,7 @@ class ART2A(BaseART): This module implements ART2-A as first published in: + .. # Carpenter, G. A., & Grossberg, S. (1987b). .. # ART 2: self-organization of stable category recognition codes for analog input .. # patterns. @@ -50,6 +51,7 @@ class ART2A(BaseART): (citation_key == "carpenter1987art" or \ citation_key == "carpenter1991art") + ART2-A is similar to ART1 but designed for analog data. This method is implemented for historical purposes and is not recommended for use. From 8d5be137d77df0cfcc095879558853fa415727ca Mon Sep 17 00:00:00 2001 From: Niklas Melton Date: Thu, 17 Oct 2024 14:20:12 -0500 Subject: [PATCH 09/14] use citation instead --- artlib/elementary/ART1.py | 19 +++++-------------- artlib/elementary/ART2.py | 6 +----- 2 files changed, 6 insertions(+), 19 deletions(-) diff --git a/artlib/elementary/ART1.py b/artlib/elementary/ART1.py index 4eee54b..50e6ea0 100644 --- a/artlib/elementary/ART1.py +++ b/artlib/elementary/ART1.py @@ -1,13 +1,8 @@ -"""ART1. +"""ART1 :cite:`carpenter1987massively`. -.. # Carpenter, G. A., & Grossberg, S. (1987a). -.. # A massively parallel architecture for a self-organizing neural pattern -.. # recognition machine. -.. # Computer Vision, Graphics, and Image -.. # Processing, 37, 54 – 115. doi:10. 1016/S0734-189X(87)80014-2. - -.. bibliography:: ../../references.bib - :filter: citation_key == "carpenter1987massively" +.. # Carpenter, G. A., & Grossberg, S. (1987a). .. # A massively parallel architecture +for a self-organizing neural pattern .. # recognition machine. .. # Computer Vision, +Graphics, and Image .. # Processing, 37, 54 – 115. doi:10. 1016/S0734-189X(87)80014-2. """ @@ -20,7 +15,7 @@ class ART1(BaseART): """ART1 for Binary Clustering. - This module implements ART1 as first published in: + This module implements ART1 as first published in :cite:`carpenter1987massively`. .. # Carpenter, G. A., & Grossberg, S. (1987a). @@ -29,10 +24,6 @@ class ART1(BaseART): .. # Computer Vision, Graphics, and Image .. # Processing, 37, 54 – 115. doi:10. 1016/S0734-189X(87)80014-2. - .. bibliography:: ../../references.bib - :filter: citation_key == "carpenter1987massively" - - ART1 is exclusively for clustering binary data. """ diff --git a/artlib/elementary/ART2.py b/artlib/elementary/ART2.py index 8331bfd..3cb7ad6 100644 --- a/artlib/elementary/ART2.py +++ b/artlib/elementary/ART2.py @@ -34,6 +34,7 @@ class ART2A(BaseART): """ART2-A for Clustering. This module implements ART2-A as first published in: + :cite:`carpenter1987art`, :cite:`carpenter1991art` .. # Carpenter, G. A., & Grossberg, S. (1987b). @@ -46,11 +47,6 @@ class ART2A(BaseART): .. # recognition. .. # Neural Networks, 4, 493 – 504. doi:10.1016/0893-6080(91) 90045-7. - .. bibliography:: ../../references.bib - :filter: \ - (citation_key == "carpenter1987art" or \ - citation_key == "carpenter1991art") - ART2-A is similar to ART1 but designed for analog data. This method is implemented for historical purposes and is not recommended for use. From 0fb70025b8d6cf8ffefedf7ba0d57f5ad2a631d7 Mon Sep 17 00:00:00 2001 From: Niklas Melton Date: Thu, 17 Oct 2024 14:57:06 -0500 Subject: [PATCH 10/14] use comment block for citations --- artlib/common/VAT.py | 10 ++----- artlib/elementary/ART1.py | 14 ++++----- artlib/elementary/ART2.py | 38 +++++++++++-------------- artlib/elementary/BayesianART.py | 19 ++++--------- artlib/elementary/EllipsoidART.py | 33 +++++++-------------- artlib/elementary/FuzzyART.py | 19 ++++--------- artlib/elementary/GaussianART.py | 20 ++++--------- artlib/elementary/HypersphereART.py | 19 ++++--------- artlib/elementary/QuadraticNeuronART.py | 30 ++++++------------- artlib/fusion/FusionART.py | 23 ++++++--------- artlib/hierarchical/DeepARTMAP.py | 32 ++++++++------------- artlib/hierarchical/SMART.py | 23 +++++---------- artlib/reinforcement/FALCON.py | 32 +++++++-------------- artlib/supervised/ARTMAP.py | 21 ++++---------- artlib/supervised/SimpleARTMAP.py | 18 ++++-------- artlib/topological/DualVigilanceART.py | 19 ++++--------- artlib/topological/TopoART.py | 24 ++++++---------- 17 files changed, 132 insertions(+), 262 deletions(-) diff --git a/artlib/common/VAT.py b/artlib/common/VAT.py index 9e9d23f..17d8b79 100644 --- a/artlib/common/VAT.py +++ b/artlib/common/VAT.py @@ -1,12 +1,8 @@ """VAT. -.. # Bezdek, J. C., & Hathaway, R. J. (2002). -.. # VAT: A tool for visual assessment of cluster tendency. -.. # Proceedings of the 2002 International Joint Conference on Neural Networks. -.. # doi:10.1109/IJCNN.2002.1007487 - -.. bibliography:: ../../references.bib - :filter: citation_key == "bezdek2002vat" +.. # Bezdek, J. C., & Hathaway, R. J. (2002). .. # VAT: A tool for visual assessment of +cluster tendency. .. # Proceedings of the 2002 International Joint Conference on Neural +Networks. .. # doi:10.1109/IJCNN.2002.1007487 """ import numpy as np diff --git a/artlib/elementary/ART1.py b/artlib/elementary/ART1.py index 50e6ea0..bc6b1c2 100644 --- a/artlib/elementary/ART1.py +++ b/artlib/elementary/ART1.py @@ -1,10 +1,10 @@ -"""ART1 :cite:`carpenter1987massively`. +"""ART1 :cite:`carpenter1987massively`.""" -.. # Carpenter, G. A., & Grossberg, S. (1987a). .. # A massively parallel architecture -for a self-organizing neural pattern .. # recognition machine. .. # Computer Vision, -Graphics, and Image .. # Processing, 37, 54 – 115. doi:10. 1016/S0734-189X(87)80014-2. - -""" +# Carpenter, G. A., & Grossberg, S. (1987a). +# A massively parallel architecture for a self-organizing neural pattern +# recognition machine. +# Computer Vision, Graphics, and Image +# Processing, 37, 54 – 115. doi:10. 1016/S0734-189X(87)80014-2. import numpy as np from typing import Optional, List, Tuple, Union, Dict @@ -15,7 +15,7 @@ class ART1(BaseART): """ART1 for Binary Clustering. - This module implements ART1 as first published in :cite:`carpenter1987massively`. + This module implements ART1 as first published in: :cite:`carpenter1987massively`. .. # Carpenter, G. A., & Grossberg, S. (1987a). diff --git a/artlib/elementary/ART2.py b/artlib/elementary/ART2.py index 3cb7ad6..7f3b4b1 100644 --- a/artlib/elementary/ART2.py +++ b/artlib/elementary/ART2.py @@ -1,29 +1,25 @@ -"""ART2. +"""ART2 :cite:`carpenter1987art`, :cite:`carpenter1991art`. -.. # Carpenter, G. A., & Grossberg, S. (1987b). -.. # ART 2: self-organization of stable category recognition codes for analog input -.. # patterns. -.. # Appl. Opt., 26, 4919–4930. doi:10.1364/AO.26.004919. +:: + ================================================================== + DISCLAIMER: DO NOT USE ART2!!! + IT DOES NOT WORK + It is provided for completeness only. + Stephan Grossberg himself has said ART2 does not work. + ================================================================== -.. # Carpenter, G. A., Grossberg, S., & Rosen, D. B. (1991b). -.. # ART 2-A: An adaptive resonance algorithm for rapid category learning and -.. # recognition. -.. # Neural Networks, 4, 493 – 504. doi:10.1016/0893-6080(91) 90045-7. - -.. bibliography:: ../../references.bib - :filter: \ - (citation_key == "carpenter1987art" or \ - citation_key == "carpenter1991art") +""" +# Carpenter, G. A., & Grossberg, S. (1987b). +# ART 2: self-organization of stable category recognition codes for analog input +# patterns. +# Appl. Opt., 26, 4919–4930. doi:10.1364/AO.26.004919. -================================================================== -DISCLAIMER: DO NOT USE ART2!!! -IT DOES NOT WORK -It is provided for completeness only. -Stephan Grossberg himself has said ART2 does not work. -================================================================== +# Carpenter, G. A., Grossberg, S., & Rosen, D. B. (1991b). +# ART 2-A: An adaptive resonance algorithm for rapid category learning and +# recognition. +# Neural Networks, 4, 493 – 504. doi:10.1016/0893-6080(91) 90045-7. -""" import numpy as np from typing import Optional, List from warnings import warn diff --git a/artlib/elementary/BayesianART.py b/artlib/elementary/BayesianART.py index 879b1a6..3d8e3ad 100644 --- a/artlib/elementary/BayesianART.py +++ b/artlib/elementary/BayesianART.py @@ -1,14 +1,9 @@ -"""Bayesian ART. +"""Bayesian ART :cite:`vigdor2007bayesian`.""" +# Vigdor, B., & Lerner, B. (2007). +# The Bayesian ARTMAP. +# IEEE Transactions on Neural +# Networks, 18, 1628–1644. doi:10.1109/TNN.2007.900234. -.. # Vigdor, B., & Lerner, B. (2007). -.. # The Bayesian ARTMAP. -.. # IEEE Transactions on Neural -.. # Networks, 18, 1628–1644. doi:10.1109/TNN.2007.900234. - -.. bibliography:: ../../references.bib - :filter: citation_key == "vigdor2007bayesian" - -""" import numpy as np from typing import Optional, Iterable, List, Callable, Literal, Tuple, Union, Dict import operator @@ -21,15 +16,13 @@ class BayesianART(BaseART): """Bayesian ART for Clustering. This module implements Bayesian ART as first published in: + :cite:`vigdor2007bayesian`. .. # Vigdor, B., & Lerner, B. (2007). .. # The Bayesian ARTMAP. .. # IEEE Transactions on Neural .. # Networks, 18, 1628–1644. doi:10.1109/TNN.2007.900234. - .. bibliography:: ../../references.bib - :filter: citation_key == "vigdor2007bayesian" - Bayesian ART clusters data in Bayesian Distributions (Hyper-ellipsoids) and is similar to Gaussian ART but differs in that it allows arbitrary rotation of the hyper-ellipsoid. diff --git a/artlib/elementary/EllipsoidART.py b/artlib/elementary/EllipsoidART.py index 9baccc9..0c5b9d2 100644 --- a/artlib/elementary/EllipsoidART.py +++ b/artlib/elementary/EllipsoidART.py @@ -1,21 +1,14 @@ -"""Ellipsoid ART. +"""Ellipsoid ART :cite:`anagnostopoulos2001a`, :cite:`anagnostopoulos2001b`.""" +# Anagnostopoulos, G. C., & Georgiopoulos, M. (2001a). +# Ellipsoid ART and ARTMAP for incremental clustering and classification. +# In Proc. IEEE International Joint Conference on Neural Networks (IJCNN) +# (pp. 1221–1226). volume 2. doi:10.1109/IJCNN.2001.939535. -.. # Anagnostopoulos, G. C., & Georgiopoulos, M. (2001a). -.. # Ellipsoid ART and ARTMAP for incremental clustering and classification. -.. # In Proc. IEEE International Joint Conference on Neural Networks (IJCNN) -.. # (pp. 1221–1226). volume 2. doi:10.1109/IJCNN.2001.939535. +# Anagnostopoulos, G. C., & Georgiopoulos, M. (2001b). +# Ellipsoid ART and ARTMAP for incremental unsupervised and supervised learning. +# In Aerospace/Defense Sensing, Simulation, and Controls (pp. 293– 304). +# International Society for Optics and Photonics. doi:10.1117/12.421180. -.. # Anagnostopoulos, G. C., & Georgiopoulos, M. (2001b). -.. # Ellipsoid ART and ARTMAP for incremental unsupervised and supervised learning. -.. # In Aerospace/Defense Sensing, Simulation, and Controls (pp. 293– 304). -.. # International Society for Optics and Photonics. doi:10.1117/12.421180. - -.. bibliography:: ../../references.bib - :filter: \ - (citation_key == "anagnostopoulos2001a" or \ - citation_key == "anagnostopoulos2001b") - -""" import numpy as np from typing import Optional, List, Tuple, Union, Dict from matplotlib.axes import Axes @@ -27,8 +20,9 @@ class EllipsoidART(BaseART): """Ellipsoid ART for Clustering. This module implements Ellipsoid ART as first published in: + :cite:`anagnostopoulos2001a`, :cite:`anagnostopoulos2001b`. - .. # Anagnostopoulos, G. C., & Georgiopoulos, M. (2001a). + .. # Anagnostopoulos, G. C., & Georgiopoulos, M. (2001a). .. # Ellipsoid ART and ARTMAP for incremental clustering and classification. .. # In Proc. IEEE International Joint Conference on Neural Networks (IJCNN) .. # (pp. 1221–1226). volume 2. doi:10.1109/IJCNN.2001.939535. @@ -38,11 +32,6 @@ class EllipsoidART(BaseART): .. # In Aerospace/Defense Sensing, Simulation, and Controls (pp. 293– 304). .. # International Society for Optics and Photonics. doi:10.1117/12.421180. - .. bibliography:: ../../references.bib - :filter: \ - (citation_key == "anagnostopoulos2001a" or \ - citation_key == "anagnostopoulos2001b") - Ellipsoid ART clusters data in Hyper-ellipsoids. It is highly sensitive to sample presentation order as the second sample will determine the orientation of the principal axes. diff --git a/artlib/elementary/FuzzyART.py b/artlib/elementary/FuzzyART.py index 41ee2bb..5410b7e 100644 --- a/artlib/elementary/FuzzyART.py +++ b/artlib/elementary/FuzzyART.py @@ -1,14 +1,9 @@ -"""Fuzzy ART. +"""Fuzzy ART :cite:`carpenter1991fuzzy`.""" +# Carpenter, G. A., Grossberg, S., & Rosen, D. B. (1991c). +# Fuzzy ART: Fast stable learning and categorization of analog patterns by an +# adaptive resonance system. +# Neural Networks, 4, 759 – 771. doi:10.1016/0893-6080(91)90056-B. -.. # Carpenter, G. A., Grossberg, S., & Rosen, D. B. (1991c). -.. # Fuzzy ART: Fast stable learning and categorization of analog patterns by an -.. # adaptive resonance system. -.. # Neural Networks, 4, 759 – 771. doi:10.1016/0893-6080(91)90056-B. - -.. bibliography:: ../../references.bib - :filter: citation_key == "carpenter1991fuzzy" - -""" import numpy as np from typing import Optional, Iterable, List, Tuple, Union, Dict from matplotlib.axes import Axes @@ -62,15 +57,13 @@ class FuzzyART(BaseART): """Fuzzy ART for Clustering. This module implements Fuzzy ART as first published in: + :cite:`carpenter1991fuzzy`. .. # Carpenter, G. A., Grossberg, S., & Rosen, D. B. (1991c). .. # Fuzzy ART: Fast stable learning and categorization of analog patterns by an .. # adaptive resonance system. .. # Neural Networks, 4, 759 – 771. doi:10.1016/0893-6080(91)90056-B. - .. bibliography:: ../../references.bib - :filter: citation_key == "carpenter1991fuzzy" - Fuzzy ART is a hyper-box based clustering method that is exceptionally fast and explainable. diff --git a/artlib/elementary/GaussianART.py b/artlib/elementary/GaussianART.py index a2f6e7b..7380d0e 100644 --- a/artlib/elementary/GaussianART.py +++ b/artlib/elementary/GaussianART.py @@ -1,14 +1,8 @@ -"""Gaussian ART. - -.. # Williamson, J. R. (1996). -.. # Gaussian ARTMAP: A Neural Network for Fast Incremental Learning of Noisy -.. # Multidimensional Maps. -.. # Neural Networks, 9, 881 – 897. doi:10.1016/0893-6080(95)00115-8. - -.. bibliography:: ../../references.bib - :filter: citation_key == "williamson1996gaussian" - -""" +"""Gaussian ART :cite:`williamson1996gaussian`.""" +# Williamson, J. R. (1996). +# Gaussian ARTMAP: A Neural Network for Fast Incremental Learning of Noisy +# Multidimensional Maps. +# Neural Networks, 9, 881 – 897. doi:10.1016/0893-6080(95)00115-8. import numpy as np from typing import Optional, Iterable, List, Tuple, Union, Dict @@ -21,15 +15,13 @@ class GaussianART(BaseART): """Gaussian ART for Clustering. This module implements Gaussian ART as first published in: + :cite:`williamson1996gaussian`. .. # Williamson, J. R. (1996). .. # Gaussian ARTMAP: A Neural Network for Fast Incremental Learning of Noisy .. # Multidimensional Maps. .. # Neural Networks, 9, 881 – 897. doi:10.1016/0893-6080(95)00115-8. - .. bibliography:: ../../references.bib - :filter: citation_key == "williamson1996gaussian" - Guassian ART clusters data in Gaussian Distributions (Hyper-ellipsoids) and is similar to Bayesian ART but differs in that the hyper-ellipsoid always have their principal axes square to the coordinate frame. It is also faster than Bayesian ART. diff --git a/artlib/elementary/HypersphereART.py b/artlib/elementary/HypersphereART.py index e46b74d..73ff933 100644 --- a/artlib/elementary/HypersphereART.py +++ b/artlib/elementary/HypersphereART.py @@ -1,14 +1,9 @@ -"""Hyperpshere ART. +"""Hyperpshere ART :cite:`anagnostopoulos2000hypersphere`.""" +# Anagnostopoulos, G. C., & Georgiopulos, M. (2000). +# Hypersphere ART and ARTMAP for unsupervised and supervised, incremental learning. +# In Proc. IEEE International Joint Conference on Neural Networks (IJCNN) +# (pp. 59–64). volume 6. doi:10.1109/IJCNN.2000.859373. -.. # Anagnostopoulos, G. C., & Georgiopulos, M. (2000). -.. # Hypersphere ART and ARTMAP for unsupervised and supervised, incremental learning. -.. # In Proc. IEEE International Joint Conference on Neural Networks (IJCNN) -.. # (pp. 59–64). volume 6. doi:10.1109/IJCNN.2000.859373. - -.. bibliography:: ../../references.bib - :filter: citation_key == "anagnostopoulos2000hypersphere" - -""" import numpy as np from typing import Optional, Iterable, List from matplotlib.axes import Axes @@ -20,6 +15,7 @@ class HypersphereART(BaseART): """Hypersphere ART for Clustering. This module implements Ellipsoid ART as first published in: + :cite:`anagnostopoulos2000hypersphere`. .. # Anagnostopoulos, G. C., & Georgiopulos, M. (2000). .. # Hypersphere ART and ARTMAP for unsupervised and supervised, incremental @@ -27,9 +23,6 @@ class HypersphereART(BaseART): .. # In Proc. IEEE International Joint Conference on Neural Networks (IJCNN) .. # (pp. 59–64). volume 6. doi:10.1109/IJCNN.2000.859373. - .. bibliography:: ../../references.bib - :filter: citation_key == "anagnostopoulos2000hypersphere" - Hyperpshere ART clusters data in Hyper-spheres similar to k-means with a dynamic k. """ diff --git a/artlib/elementary/QuadraticNeuronART.py b/artlib/elementary/QuadraticNeuronART.py index cf5273c..1d0c6f7 100644 --- a/artlib/elementary/QuadraticNeuronART.py +++ b/artlib/elementary/QuadraticNeuronART.py @@ -1,19 +1,11 @@ -"""Quadratic Neuron ART. +"""Quadratic Neuron ART :cite:`su2001application`, :cite:`su2005new`.""" +# Su, M.-C., & Liu, T.-K. (2001). +# Application of neural networks using quadratic junctions in cluster analysis. +# Neurocomputing, 37, 165 – 175. doi:10.1016/S0925-2312(00)00343-X. -.. # Su, M.-C., & Liu, T.-K. (2001). -.. # Application of neural networks using quadratic junctions in cluster analysis. -.. # Neurocomputing, 37, 165 – 175. doi:10.1016/S0925-2312(00)00343-X. - -.. # Su, M.-C., & Liu, Y.-C. (2005). -.. # A new approach to clustering data with arbitrary shapes. -.. # Pattern Recognition, 38, 1887 – 1901. doi:10.1016/j.patcog.2005.04.010. - -.. bibliography:: ../../references.bib - :filter: \ - (citation_key == "su2001application" or \ - citation_key == "su2005new") - -""" +# Su, M.-C., & Liu, Y.-C. (2005). +# A new approach to clustering data with arbitrary shapes. +# Pattern Recognition, 38, 1887 – 1901. doi:10.1016/j.patcog.2005.04.010. import numpy as np from typing import Optional, Iterable, List, Tuple, Union, Dict @@ -27,8 +19,9 @@ class QuadraticNeuronART(BaseART): """Quadratic Neuron ART for Clustering. This module implements Quadratic Neuron ART as first published in: + :cite:`su2001application`, :cite:`su2005new`. - .. # Su, M.-C., & Liu, T.-K. (2001). + .. # Su, M.-C., & Liu, T.-K. (2001). .. # Application of neural networks using quadratic junctions in cluster analysis. .. # Neurocomputing, 37, 165 – 175. doi:10.1016/S0925-2312(00)00343-X. @@ -36,11 +29,6 @@ class QuadraticNeuronART(BaseART): .. # A new approach to clustering data with arbitrary shapes. .. # Pattern Recognition, 38, 1887 – 1901. doi:10.1016/j.patcog.2005.04.010. - .. bibliography:: ../../references.bib - :filter: \ - (citation_key == "su2001application" or \ - citation_key == "su2005new") - Quadratic Neuron ART clusters data in Hyper-ellipsoid by utilizing a quadratic neural network for activation and resonance. diff --git a/artlib/fusion/FusionART.py b/artlib/fusion/FusionART.py index ae43ffb..58449ef 100644 --- a/artlib/fusion/FusionART.py +++ b/artlib/fusion/FusionART.py @@ -1,16 +1,11 @@ -"""Fusion ART. +"""Fusion ART :cite:`tan2007intelligence`.""" +# Tan, A.-H., Carpenter, G. A., & Grossberg, S. (2007). +# Intelligence Through Interaction: Towards a Unified Theory for Learning. +# In D. Liu, S. Fei, Z.-G. Hou, H. Zhang, & C. Sun (Eds.), +# Advances in Neural Networks – ISNN 2007 (pp. 1094–1103). +# Berlin, Heidelberg: Springer Berlin Heidelberg. +# doi:10.1007/ 978-3-540-72383-7_128. -.. # Tan, A.-H., Carpenter, G. A., & Grossberg, S. (2007). -.. # Intelligence Through Interaction: Towards a Unified Theory for Learning. -.. # In D. Liu, S. Fei, Z.-G. Hou, H. Zhang, & C. Sun (Eds.), -.. # Advances in Neural Networks – ISNN 2007 (pp. 1094–1103). -.. # Berlin, Heidelberg: Springer Berlin Heidelberg. -.. # doi:10.1007/ 978-3-540-72383-7_128. - -.. bibliography:: ../../references.bib - :filter: citation_key == "tan2007intelligence" - -""" import numpy as np from typing import Optional, Union, Callable, List, Literal, Tuple, Dict from copy import deepcopy @@ -49,6 +44,7 @@ class FusionART(BaseART): """Fusion ART for Data Fusion and Regression. This module implements Fusion ART as first described in: + :cite:`tan2007intelligence`. .. # Tan, A.-H., Carpenter, G. A., & Grossberg, S. (2007). .. # Intelligence Through Interaction: Towards a Unified Theory for Learning. @@ -57,9 +53,6 @@ class FusionART(BaseART): .. # Berlin, Heidelberg: Springer Berlin Heidelberg. .. # doi:10.1007/ 978-3-540-72383-7_128. - .. bibliography:: ../../references.bib - :filter: citation_key == "tan2007intelligence" - Fusion ART accepts an arbitrary number of ART modules, each assigned a different data channel. The activation and match functions for all ART modules are then fused such that all modules must be simultaneously active and resonant in order for a diff --git a/artlib/hierarchical/DeepARTMAP.py b/artlib/hierarchical/DeepARTMAP.py index ae6c940..bcddacb 100644 --- a/artlib/hierarchical/DeepARTMAP.py +++ b/artlib/hierarchical/DeepARTMAP.py @@ -1,14 +1,8 @@ -"""Deep ARTMAP. - -.. # Carpenter, G. A., Grossberg, S., & Reynolds, J. H. (1991a). -.. # ARTMAP: Supervised real-time learning and classification of nonstationary data by a -.. # self-organizing neural network. -.. # Neural Networks, 4, 565 – 588. doi:10.1016/0893-6080(91)90012-T. - -.. bibliography:: ../../references.bib - :filter: citation_key == "carpenter1991artmap" - -""" +"""Deep ARTMAP :cite:`carpenter1991artmap`.""" +# Carpenter, G. A., Grossberg, S., & Reynolds, J. H. (1991a). +# ARTMAP: Supervised real-time learning and classification of nonstationary data by a +# self-organizing neural network. +# Neural Networks, 4, 565 – 588. doi:10.1016/0893-6080(91)90012-T. import numpy as np from sklearn.base import BaseEstimator, ClassifierMixin, ClusterMixin from typing import Optional, cast, Union, Literal, Tuple @@ -22,21 +16,19 @@ class DeepARTMAP(BaseEstimator, ClassifierMixin, ClusterMixin): """DeepARTMAP for Hierachical Supervised and Unsupervised Learning. - This module implements DeepARTMAP, a generalization of the ARTMAP class that allows - an arbitrary number of data channels to be divisively clustered. DeepARTMAP support - both supervised and unsupervised modes. If only two ART modules are provided, - DeepARTMAP reverts to standard ARTMAP where the first module is the A module and the - second module is the B module. DeepARTMAP does not currently have a direct citation - and is an original creation of this library. + This module implements DeepARTMAP, a generalization of the ARTMAP class + :cite:`carpenter1991artmap` that allows an arbitrary number of data channels to + be divisively clustered. DeepARTMAP support both supervised and unsupervised + modes. If only two ART modules are provided, DeepARTMAP reverts to standard + ARTMAP where the first module is the A module and the second module is the B + module. DeepARTMAP does not currently have a direct citation and is an original + creation of this library. .. # Carpenter, G. A., Grossberg, S., & Reynolds, J. H. (1991a). .. # ARTMAP: Supervised real-time learning and classification of nonstationary data .. # by a self-organizing neural network. .. # Neural Networks, 4, 565 – 588. doi:10.1016/0893-6080(91)90012-T. - .. bibliography:: ../../references.bib - :filter: citation_key == "carpenter1991artmap" - """ def __init__(self, modules: list[BaseART]): diff --git a/artlib/hierarchical/SMART.py b/artlib/hierarchical/SMART.py index 1f0a2ca..a00c979 100644 --- a/artlib/hierarchical/SMART.py +++ b/artlib/hierarchical/SMART.py @@ -1,15 +1,9 @@ -"""SMART. - -.. # Bartfai, G. (1994). -.. # Hierarchical clustering with ART neural networks. -.. # In Proc. IEEE International Conference on Neural Networks (ICNN) -.. # (pp. 940–944). volume 2. -.. # doi:10.1109/ICNN.1994.374307. - -.. bibliography:: ../../references.bib - :filter: citation_key == "bartfai1994hierarchical" - -""" +"""SMART :cite:`bartfai1994hierarchical`.""" +# Bartfai, G. (1994). +# Hierarchical clustering with ART neural networks. +# In Proc. IEEE International Conference on Neural Networks (ICNN) +# (pp. 940–944). volume 2. +# doi:10.1109/ICNN.1994.374307. import numpy as np from typing import Union, Type, Optional, Literal, Tuple @@ -22,7 +16,7 @@ class SMART(DeepARTMAP): """SMART for Hierachical Clustering. - This module implements SMART as first published in: + This module implements SMART as first published in: :cite:`bartfai1994hierarchical` .. # Bartfai, G. (1994). .. # Hierarchical clustering with ART neural networks. @@ -30,9 +24,6 @@ class SMART(DeepARTMAP): .. # (pp. 940–944). volume 2. .. # doi:10.1109/ICNN.1994.374307. - .. bibliography:: ../../references.bib - :filter: citation_key == "bartfai1994hierarchical" - SMART accepts an uninstantiated ART class and hierarchically clusters data in a divisive fashion by using a set of vigilance values that monotonically increase in their restrictiveness. SMART is a special case of DeepARTMAP, which forms the diff --git a/artlib/reinforcement/FALCON.py b/artlib/reinforcement/FALCON.py index e80c3a8..7895234 100644 --- a/artlib/reinforcement/FALCON.py +++ b/artlib/reinforcement/FALCON.py @@ -1,21 +1,13 @@ -"""FALCON. +"""FALCON :cite:`tan2004falcon`, :cite:`tan2008integrating`.""" +# Tan, A.-H. (2004). +# FALCON: a fusion architecture for learning, cognition, and navigation. +# In Proc. IEEE International Joint Conference on Neural Networks (IJCNN) +# (pp. 3297–3302). volume 4. doi:10.1109/ IJCNN.2004.1381208. -.. # Tan, A.-H. (2004). -.. # FALCON: a fusion architecture for learning, cognition, and navigation. -.. # In Proc. IEEE International Joint Conference on Neural Networks (IJCNN) -.. # (pp. 3297–3302). volume 4. doi:10.1109/ IJCNN.2004.1381208. - -.. # Tan, A.-H., Lu, N., & Xiao, D. (2008). -.. # Integrating Temporal Difference Methods and Self-Organizing Neural Networks for -.. # Reinforcement Learning With Delayed Evaluative Feedback. -.. # IEEE Transactions on Neural Networks, 19 , 230–244. doi:10.1109/TNN.2007.905839 - -.. bibliography:: ../../references.bib - :filter: \ - (citation_key == "tan2004falcon" or \ - citation_key == "tan2008integrating") - -""" +# Tan, A.-H., Lu, N., & Xiao, D. (2008). +# Integrating Temporal Difference Methods and Self-Organizing Neural Networks for +# Reinforcement Learning With Delayed Evaluative Feedback. +# IEEE Transactions on Neural Networks, 19 , 230–244. doi:10.1109/TNN.2007.905839 import numpy as np from typing import Optional, Literal, Tuple, Union, List @@ -28,6 +20,7 @@ class FALCON: """FALCON for Reinforcement Learning. This module implements the reactive FALCON as first described in: + :cite:`tan2004falcon`, :cite:`tan2008integrating`. .. # Tan, A.-H. (2004). .. # FALCON: a fusion architecture for learning, cognition, and navigation. @@ -39,11 +32,6 @@ class FALCON: .. # Reinforcement Learning With Delayed Evaluative Feedback. .. # IEEE Transactions on Neural Networks, 19 , 230–244. doi:10.1109/TNN.2007.905839 - .. bibliography:: ../../references.bib - :filter: \ - (citation_key == "tan2004falcon" or \ - citation_key == "tan2008integrating") - FALCON is based on a Fusion-ART backbone but only accepts 3 channels: State, Action, and Reward. Specific functions are implemented for getting optimal reward and action predictions. diff --git a/artlib/supervised/ARTMAP.py b/artlib/supervised/ARTMAP.py index 5e975a6..e719e7e 100644 --- a/artlib/supervised/ARTMAP.py +++ b/artlib/supervised/ARTMAP.py @@ -1,14 +1,8 @@ -"""ARTMAP. - -.. # Carpenter, G. A., Grossberg, S., & Reynolds, J. H. (1991a). -.. # ARTMAP: Supervised real-time learning and classification of nonstationary data by a -.. # self-organizing neural network. -.. # Neural Networks, 4, 565 – 588. doi:10.1016/0893-6080(91)90012-T. - -.. bibliography:: ../../references.bib - :filter: citation_key == "carpenter1991artmap" - -""" +"""ARTMAP :cite:`carpenter1991artmap`.""" +# Carpenter, G. A., Grossberg, S., & Reynolds, J. H. (1991a). +# ARTMAP: Supervised real-time learning and classification of nonstationary data by a +# self-organizing neural network. +# Neural Networks, 4, 565 – 588. doi:10.1016/0893-6080(91)90012-T. import numpy as np from typing import Literal, Tuple, Dict, Union, Optional from artlib.common.BaseART import BaseART @@ -19,16 +13,13 @@ class ARTMAP(SimpleARTMAP): """ARTMAP for Classification and Regression. - This module implements ARTMAP as first published in: + This module implements ARTMAP as first published in: :cite:`carpenter1991artmap`. .. # Carpenter, G. A., Grossberg, S., & Reynolds, J. H. (1991a). .. # ARTMAP: Supervised real-time learning and classification of nonstationary data .. # by a self-organizing neural network. .. # Neural Networks, 4, 565 – 588. doi:10.1016/0893-6080(91)90012-T. - .. bibliography:: ../../references.bib - :filter: citation_key == "carpenter1991artmap" - ARTMAP joins accepts two ART modules A and B which cluster the dependent channel (samples) and the independent channel (labels) respectively while linking them with a many-to-one mapping. If your labels are integers, use SimpleARTMAP for a faster diff --git a/artlib/supervised/SimpleARTMAP.py b/artlib/supervised/SimpleARTMAP.py index 18ef884..79e073f 100644 --- a/artlib/supervised/SimpleARTMAP.py +++ b/artlib/supervised/SimpleARTMAP.py @@ -1,13 +1,7 @@ -"""Simple ARTMAP. - -.. # Serrano-Gotarredona, T., Linares-Barranco, B., & Andreou, A. G. (1998). -.. # Adaptive Resonance Theory Microchips: Circuit Design Techniques. -.. # Norwell, MA, USA: Kluwer Academic Publishers. - -.. bibliography:: ../../references.bib - :filter: citation_key == "gotarredona1998adaptive" - -""" +"""Simple ARTMAP :cite:`gotarredona1998adaptive`.""" +# Serrano-Gotarredona, T., Linares-Barranco, B., & Andreou, A. G. (1998). +# Adaptive Resonance Theory Microchips: Circuit Design Techniques. +# Norwell, MA, USA: Kluwer Academic Publishers. import numpy as np from typing import Optional, Literal, Dict, Union, Tuple from matplotlib.axes import Axes @@ -22,14 +16,12 @@ class SimpleARTMAP(BaseARTMAP): """SimpleARTMAP for Classification. This module implements SimpleARTMAP as first published in: + :cite:`gotarredona1998adaptive`. .. # Serrano-Gotarredona, T., Linares-Barranco, B., & Andreou, A. G. (1998). .. # Adaptive Resonance Theory Microchips: Circuit Design Techniques. .. # Norwell, MA, USA: Kluwer Academic Publishers. - .. bibliography:: ../../references.bib - :filter: citation_key == "gotarredona1998adaptive" - SimpleARTMAP allows the clustering of data samples while enforcing a many-to-one mapping from sample clusters to labels. It accepts an instantiated ART module and dynamically adapts the vigilance function to prevent resonance when the many-to-one diff --git a/artlib/topological/DualVigilanceART.py b/artlib/topological/DualVigilanceART.py index 85cda9c..7a828cd 100644 --- a/artlib/topological/DualVigilanceART.py +++ b/artlib/topological/DualVigilanceART.py @@ -1,13 +1,7 @@ -"""Dual Vigilance ART. - -.. # Brito da Silva, L. E., Elnabarawy, I., & Wunsch II, D. C. (2019). -.. # Dual vigilance fuzzy adaptive resonance theory. -.. # Neural Networks, 109, 1–5. doi:10.1016/j.neunet.2018.09.015. - -.. bibliography:: ../../references.bib - :filter: citation_key == "da2019dual" - -""" +"""Dual Vigilance ART :cite:`da2019dual`.""" +# Brito da Silva, L. E., Elnabarawy, I., & Wunsch II, D. C. (2019). +# Dual vigilance fuzzy adaptive resonance theory. +# Neural Networks, 109, 1–5. doi:10.1016/j.neunet.2018.09.015. import numpy as np from typing import Optional, Callable, List, Literal, Union, Dict from warnings import warn @@ -20,15 +14,12 @@ class DualVigilanceART(BaseART): """Dual Vigilance ART for Clustering. - This module implements Dual Vigilance ART as first published in: + This module implements Dual Vigilance ART as first published in: :cite:`da2019dual`. .. # Brito da Silva, L. E., Elnabarawy, I., & Wunsch II, D. C. (2019). .. # Dual vigilance fuzzy adaptive resonance theory. .. # Neural Networks, 109, 1–5. doi:10.1016/j.neunet.2018.09.015. - .. bibliography:: ../../references.bib - :filter: citation_key == "da2019dual" - Dual Vigilance ART allows a base ART module to cluster with both an upper and lower vigilance value. The upper-vigilance value allows the base ART module to cluster normally, however, data is simultaneously clustered using the lower vigilance level diff --git a/artlib/topological/TopoART.py b/artlib/topological/TopoART.py index ea81bf2..4dd8ed3 100644 --- a/artlib/topological/TopoART.py +++ b/artlib/topological/TopoART.py @@ -1,16 +1,10 @@ -"""Topo ART. - -.. # Tscherepanow, M. (2010). -.. # TopoART: A Topology Learning Hierarchical ART Network. -.. # In K. Diamantaras, W. Duch, & L. S. Iliadis (Eds.), -.. # Artificial Neural Networks – ICANN 2010 (pp. 157–167). -.. # Berlin, Heidelberg: Springer Berlin Heidelberg. -.. # doi:10.1007/978-3-642-15825-4_21. - -.. bibliography:: ../../references.bib - :filter: citation_key == "tscherepanow2010topoart" - -""" +"""Topo ART :cite:`tscherepanow2010topoart`.""" +# Tscherepanow, M. (2010). +# TopoART: A Topology Learning Hierarchical ART Network. +# In K. Diamantaras, W. Duch, & L. S. Iliadis (Eds.), +# Artificial Neural Networks – ICANN 2010 (pp. 157–167). +# Berlin, Heidelberg: Springer Berlin Heidelberg. +# doi:10.1007/978-3-642-15825-4_21. import numpy as np from typing import Optional, Callable, List, Literal, Tuple, Union, Dict @@ -26,6 +20,7 @@ class TopoART(BaseART): """Topo ART for Topological Clustering. This module implements Topo ART as first published in: + :cite:`tscherepanow2010topoart`. .. # Tscherepanow, M. (2010). .. # TopoART: A Topology Learning Hierarchical ART Network. @@ -34,9 +29,6 @@ class TopoART(BaseART): .. # Berlin, Heidelberg: Springer Berlin Heidelberg. .. # doi:10.1007/978-3-642-15825-4_21. - .. bibliography:: ../../references.bib - :filter: citation_key == "tscherepanow2010topoart" - Topo ART clusters accepts an instatiated base ART module and generates a topological clustering by recording the first and second resonant cluster relationships in an adjacency matrix. Further, it updates the second resonant cluster with a lower From 791d52b179fd3eb23f118442df4d9eb46a4ee8db Mon Sep 17 00:00:00 2001 From: Niklas Melton Date: Thu, 17 Oct 2024 15:01:47 -0500 Subject: [PATCH 11/14] disclaimer --- artlib/elementary/ART2.py | 1 + 1 file changed, 1 insertion(+) diff --git a/artlib/elementary/ART2.py b/artlib/elementary/ART2.py index 7f3b4b1..2d20695 100644 --- a/artlib/elementary/ART2.py +++ b/artlib/elementary/ART2.py @@ -1,6 +1,7 @@ """ART2 :cite:`carpenter1987art`, :cite:`carpenter1991art`. :: + ================================================================== DISCLAIMER: DO NOT USE ART2!!! IT DOES NOT WORK From 26acdc590ef380d4c178b5b509bfb2513ff998d1 Mon Sep 17 00:00:00 2001 From: Niklas Melton Date: Thu, 17 Oct 2024 15:18:35 -0500 Subject: [PATCH 12/14] class cross references --- artlib/elementary/ART2.py | 4 ++-- artlib/elementary/BayesianART.py | 4 ++-- artlib/elementary/GaussianART.py | 5 +++-- artlib/hierarchical/DeepARTMAP.py | 6 ++--- artlib/hierarchical/SMART.py | 4 ++-- artlib/reinforcement/FALCON.py | 31 +++++++++++++------------- artlib/reinforcement/__init__.py | 1 + artlib/supervised/ARTMAP.py | 14 ++++++------ artlib/supervised/SimpleARTMAP.py | 11 ++++----- artlib/topological/DualVigilanceART.py | 15 +++++++------ artlib/topological/TopoART.py | 9 ++++---- artlib/topological/__init__.py | 10 ++++----- 12 files changed, 59 insertions(+), 55 deletions(-) diff --git a/artlib/elementary/ART2.py b/artlib/elementary/ART2.py index 2d20695..2b841ad 100644 --- a/artlib/elementary/ART2.py +++ b/artlib/elementary/ART2.py @@ -45,8 +45,8 @@ class ART2A(BaseART): .. # Neural Networks, 4, 493 – 504. doi:10.1016/0893-6080(91) 90045-7. - ART2-A is similar to ART1 but designed for analog data. This method is implemented - for historical purposes and is not recommended for use. + ART2-A is similar to :class:`ART1` but designed for analog data. This method is + implemented for historical purposes and is not recommended for use. """ diff --git a/artlib/elementary/BayesianART.py b/artlib/elementary/BayesianART.py index 3d8e3ad..a47a19a 100644 --- a/artlib/elementary/BayesianART.py +++ b/artlib/elementary/BayesianART.py @@ -24,8 +24,8 @@ class BayesianART(BaseART): .. # Networks, 18, 1628–1644. doi:10.1109/TNN.2007.900234. Bayesian ART clusters data in Bayesian Distributions (Hyper-ellipsoids) and is - similar to Gaussian ART but differs in that it allows arbitrary rotation of the - hyper-ellipsoid. + similar to :class:`GaussianART` but differs in that it allows arbitrary rotation of + the hyper-ellipsoid. """ diff --git a/artlib/elementary/GaussianART.py b/artlib/elementary/GaussianART.py index 7380d0e..89cfb9b 100644 --- a/artlib/elementary/GaussianART.py +++ b/artlib/elementary/GaussianART.py @@ -23,8 +23,9 @@ class GaussianART(BaseART): .. # Neural Networks, 9, 881 – 897. doi:10.1016/0893-6080(95)00115-8. Guassian ART clusters data in Gaussian Distributions (Hyper-ellipsoids) and is - similar to Bayesian ART but differs in that the hyper-ellipsoid always have their - principal axes square to the coordinate frame. It is also faster than Bayesian ART. + similar to :class:`BayesianART` but differs in that the hyper-ellipsoid always have + their principal axes square to the coordinate frame. It is also faster than + Bayesian ART. """ diff --git a/artlib/hierarchical/DeepARTMAP.py b/artlib/hierarchical/DeepARTMAP.py index bcddacb..116365b 100644 --- a/artlib/hierarchical/DeepARTMAP.py +++ b/artlib/hierarchical/DeepARTMAP.py @@ -16,12 +16,12 @@ class DeepARTMAP(BaseEstimator, ClassifierMixin, ClusterMixin): """DeepARTMAP for Hierachical Supervised and Unsupervised Learning. - This module implements DeepARTMAP, a generalization of the ARTMAP class + This module implements DeepARTMAP, a generalization of the :class:`ARTMAP` class :cite:`carpenter1991artmap` that allows an arbitrary number of data channels to be divisively clustered. DeepARTMAP support both supervised and unsupervised modes. If only two ART modules are provided, DeepARTMAP reverts to standard - ARTMAP where the first module is the A module and the second module is the B - module. DeepARTMAP does not currently have a direct citation and is an original + :class:`ARTMAP` where the first module is the A-module and the second module is the + B-module. DeepARTMAP does not currently have a direct citation and is an original creation of this library. .. # Carpenter, G. A., Grossberg, S., & Reynolds, J. H. (1991a). diff --git a/artlib/hierarchical/SMART.py b/artlib/hierarchical/SMART.py index a00c979..81188b9 100644 --- a/artlib/hierarchical/SMART.py +++ b/artlib/hierarchical/SMART.py @@ -26,8 +26,8 @@ class SMART(DeepARTMAP): SMART accepts an uninstantiated ART class and hierarchically clusters data in a divisive fashion by using a set of vigilance values that monotonically increase - in their restrictiveness. SMART is a special case of DeepARTMAP, which forms the - backbone of this class, where all channels receive the same data. + in their restrictiveness. SMART is a special case of :class:`DeepARTMAP`, which + forms the backbone of this class, where all channels receive the same data. """ diff --git a/artlib/reinforcement/FALCON.py b/artlib/reinforcement/FALCON.py index 7895234..e33a891 100644 --- a/artlib/reinforcement/FALCON.py +++ b/artlib/reinforcement/FALCON.py @@ -20,21 +20,16 @@ class FALCON: """FALCON for Reinforcement Learning. This module implements the reactive FALCON as first described in: - :cite:`tan2004falcon`, :cite:`tan2008integrating`. + :cite:`tan2004falcon`. .. # Tan, A.-H. (2004). .. # FALCON: a fusion architecture for learning, cognition, and navigation. .. # In Proc. IEEE International Joint Conference on Neural Networks (IJCNN) .. # (pp. 3297–3302). volume 4. doi:10.1109/ IJCNN.2004.1381208. - .. # Tan, A.-H., Lu, N., & Xiao, D. (2008). - .. # Integrating Temporal Difference Methods and Self-Organizing Neural Networks for - .. # Reinforcement Learning With Delayed Evaluative Feedback. - .. # IEEE Transactions on Neural Networks, 19 , 230–244. doi:10.1109/TNN.2007.905839 - - FALCON is based on a Fusion-ART backbone but only accepts 3 channels: State, Action, - and Reward. Specific functions are implemented for getting optimal reward and action - predictions. + FALCON is based on a :class:`FusionART` backbone but only accepts 3 channels: + State, Action, and Reward. Specific functions are implemented for getting optimal + reward and action predictions. """ @@ -297,13 +292,17 @@ def get_rewards(self, states: np.ndarray, actions: np.ndarray) -> np.ndarray: class TD_FALCON(FALCON): """TD-FALCON for Reinforcement Learning. - This module implements TD-FALCON as first described in Tan, A.-H., Lu, N., & Xiao, - D. (2008). Integrating Temporal Difference Methods and Self-Organizing Neural - Networks for Reinforcement Learning With Delayed Evaluative Feedback. IEEE - Transactions on Neural Networks, 19 , 230–244. doi:10.1109/TNN.2007.905839. TD- - FALCON is based on a FALCON backbone but includes specific function for temporal- - difference learning. Currently, only SARSA is implemented and only Fuzzy ART base - modules are supported. + This module implements TD-FALCON as first described in: + :cite:`tan2008integrating`. + + .. # Tan, A.-H., Lu, N., & Xiao, D. (2008). + .. # Integrating Temporal Difference Methods and Self-Organizing Neural Networks for + .. # Reinforcement Learning With Delayed Evaluative Feedback. + .. # IEEE Transactions on Neural Networks, 19 , 230–244. doi:10.1109/TNN.2007.905839 + + TD-FALCON is based on a :class:`FALCON` backbone but includes specific function for + temporal-difference learning. Currently, only SARSA is implemented and only + :class:`FuzzyART` base modules are supported. """ diff --git a/artlib/reinforcement/__init__.py b/artlib/reinforcement/__init__.py index 93dc41b..fb10e97 100644 --- a/artlib/reinforcement/__init__.py +++ b/artlib/reinforcement/__init__.py @@ -13,6 +13,7 @@ The modules herein only provide for reactive and SARSA style learning. `SARSA `_ + `Reactive agents `_ """ diff --git a/artlib/supervised/ARTMAP.py b/artlib/supervised/ARTMAP.py index e719e7e..d89b6fe 100644 --- a/artlib/supervised/ARTMAP.py +++ b/artlib/supervised/ARTMAP.py @@ -20,13 +20,13 @@ class ARTMAP(SimpleARTMAP): .. # by a self-organizing neural network. .. # Neural Networks, 4, 565 – 588. doi:10.1016/0893-6080(91)90012-T. - ARTMAP joins accepts two ART modules A and B which cluster the dependent channel - (samples) and the independent channel (labels) respectively while linking them with - a many-to-one mapping. If your labels are integers, use SimpleARTMAP for a faster - and more direct implementation. ARTMAP also provides the ability to fit a regression - model to data and specific functions have been implemented to allow this. However, - FusionART provides substantially better fit for regression problems which are not - monotonic. + ARTMAP accepts two :class:`BaseART` modules A and B which cluster the dependent + channel (samples) and the independent channel (labels) respectively while linking + them with a many-to-one mapping. If your labels are integers, + use :class:`SimpleARTMAP` for a faster and more direct implementation. ARTMAP + also provides the ability to fit a regression model to data and specific + functions have been implemented to allow this. However, :class:`FusionART` provides + substantially better fit for regression problems which are not monotonic. """ diff --git a/artlib/supervised/SimpleARTMAP.py b/artlib/supervised/SimpleARTMAP.py index 79e073f..4714035 100644 --- a/artlib/supervised/SimpleARTMAP.py +++ b/artlib/supervised/SimpleARTMAP.py @@ -22,11 +22,12 @@ class SimpleARTMAP(BaseARTMAP): .. # Adaptive Resonance Theory Microchips: Circuit Design Techniques. .. # Norwell, MA, USA: Kluwer Academic Publishers. - SimpleARTMAP allows the clustering of data samples while enforcing a many-to-one - mapping from sample clusters to labels. It accepts an instantiated ART module and - dynamically adapts the vigilance function to prevent resonance when the many-to-one - mapping is violated. This enables SimpleARTMAP to identify discrete clusters - belonging to each category label. + SimpleARTMAP is a special case of :class:`ARTMAP` specifically for + classification. It allows the clustering of data samples while enforcing a + many-to-one mapping from sample clusters to labels. It accepts an instantiated + :class:`BaseART` module and dynamically adapts the vigilance function to prevent + resonance when the many-to-one mapping is violated. This enables SimpleARTMAP to + identify discrete clusters belonging to each category label. """ diff --git a/artlib/topological/DualVigilanceART.py b/artlib/topological/DualVigilanceART.py index 7a828cd..a349a99 100644 --- a/artlib/topological/DualVigilanceART.py +++ b/artlib/topological/DualVigilanceART.py @@ -20,13 +20,14 @@ class DualVigilanceART(BaseART): .. # Dual vigilance fuzzy adaptive resonance theory. .. # Neural Networks, 109, 1–5. doi:10.1016/j.neunet.2018.09.015. - Dual Vigilance ART allows a base ART module to cluster with both an upper and lower - vigilance value. The upper-vigilance value allows the base ART module to cluster - normally, however, data is simultaneously clustered using the lower vigilance level - to combine multiple base ART categories into a single abstracted category. This - permits clusters to be combined to form arbitrary shapes. For example if the base - ART module is fuzzy ART, a Dual Vigilance Fuzzy ART clustering result would look - like a series of hyper-boxes forming an arbitrary geometry. + Dual Vigilance ART allows a :class:`BaseART` module to cluster with both an upper + and lower vigilance value. The upper-vigilance value allows the base ART module + to cluster normally, however, data is simultaneously clustered using the lower + vigilance level to combine multiple base ART categories into a single abstracted + category. This permits clusters to be combined to form arbitrary shapes. For + example if the base ART module is :class:`FuzzyART`, a Dual Vigilance Fuzzy ART + clustering result would look like a series of hyper-boxes forming an arbitrary + geometry. """ diff --git a/artlib/topological/TopoART.py b/artlib/topological/TopoART.py index 4dd8ed3..1e2932b 100644 --- a/artlib/topological/TopoART.py +++ b/artlib/topological/TopoART.py @@ -29,10 +29,11 @@ class TopoART(BaseART): .. # Berlin, Heidelberg: Springer Berlin Heidelberg. .. # doi:10.1007/978-3-642-15825-4_21. - Topo ART clusters accepts an instatiated base ART module and generates a topological - clustering by recording the first and second resonant cluster relationships in an - adjacency matrix. Further, it updates the second resonant cluster with a lower - learning rate than the first, providing for a distributed learning model. + Topo ART clusters accepts an instatiated :class:`BaseART` module and generates a + topological clustering by recording the first and second resonant cluster + relationships in an adjacency matrix. Further, it updates the second resonant + cluster with a lower learning rate than the first, providing for a distributed + learning model. """ diff --git a/artlib/topological/__init__.py b/artlib/topological/__init__.py index 72f9273..4e2d9d0 100644 --- a/artlib/topological/__init__.py +++ b/artlib/topological/__init__.py @@ -5,11 +5,11 @@ geometry of the data. Topological clustering techniques, such as hierarchical clustering and Mapper, are often used in fields like data analysis and computational topology. -The two modules herein provide contrasting advantages. TopoART allows for the creation -of an adjacency matrix which can be useful when clusters overlap or are in close -proximity. Dual Vigilance ART allows for the abstract merging of many smaller clusters -and is well suited to problems where the clusters take-on complex geometries where other -clustering approaches would fail. +The two modules herein provide contrasting advantages. :class:`TopoART` allows for the +creation of an adjacency matrix which can be useful when clusters overlap or are in +close proximity. :class:`DualVigilanceART` allows for the abstract merging of many +smaller clusters and is well suited to problems where the clusters take-on complex +geometries where other clustering approaches would fail. `Topological clustering `_ From 3523314d47224b341c2747f57d1023fbfa863ce6 Mon Sep 17 00:00:00 2001 From: Niklas Melton Date: Thu, 17 Oct 2024 15:36:14 -0500 Subject: [PATCH 13/14] class cross references --- artlib/elementary/ART2.py | 5 +++-- artlib/elementary/BayesianART.py | 4 ++-- artlib/elementary/GaussianART.py | 6 +++--- artlib/hierarchical/DeepARTMAP.py | 15 ++++++++------- artlib/hierarchical/SMART.py | 9 +++++---- artlib/reinforcement/FALCON.py | 6 +++--- artlib/supervised/ARTMAP.py | 9 +++++---- artlib/supervised/SimpleARTMAP.py | 13 +++++++------ artlib/topological/DualVigilanceART.py | 14 ++++++++------ artlib/topological/TopoART.py | 10 +++++----- artlib/topological/__init__.py | 7 ++++--- 11 files changed, 53 insertions(+), 45 deletions(-) diff --git a/artlib/elementary/ART2.py b/artlib/elementary/ART2.py index 2b841ad..f23f5d5 100644 --- a/artlib/elementary/ART2.py +++ b/artlib/elementary/ART2.py @@ -45,8 +45,9 @@ class ART2A(BaseART): .. # Neural Networks, 4, 493 – 504. doi:10.1016/0893-6080(91) 90045-7. - ART2-A is similar to :class:`ART1` but designed for analog data. This method is - implemented for historical purposes and is not recommended for use. + ART2-A is similar to :class:`artlib.elementary.ART1.ART1` but designed for analog + data. This method is implemented for historical purposes and is not recommended + for use. """ diff --git a/artlib/elementary/BayesianART.py b/artlib/elementary/BayesianART.py index a47a19a..14ce695 100644 --- a/artlib/elementary/BayesianART.py +++ b/artlib/elementary/BayesianART.py @@ -24,8 +24,8 @@ class BayesianART(BaseART): .. # Networks, 18, 1628–1644. doi:10.1109/TNN.2007.900234. Bayesian ART clusters data in Bayesian Distributions (Hyper-ellipsoids) and is - similar to :class:`GaussianART` but differs in that it allows arbitrary rotation of - the hyper-ellipsoid. + similar to :class:`artlib.elementary.GaussianART.GaussianART` but differs in that it + allows arbitrary rotation of the hyper-ellipsoid. """ diff --git a/artlib/elementary/GaussianART.py b/artlib/elementary/GaussianART.py index 89cfb9b..e3b5960 100644 --- a/artlib/elementary/GaussianART.py +++ b/artlib/elementary/GaussianART.py @@ -23,9 +23,9 @@ class GaussianART(BaseART): .. # Neural Networks, 9, 881 – 897. doi:10.1016/0893-6080(95)00115-8. Guassian ART clusters data in Gaussian Distributions (Hyper-ellipsoids) and is - similar to :class:`BayesianART` but differs in that the hyper-ellipsoid always have - their principal axes square to the coordinate frame. It is also faster than - Bayesian ART. + similar to :class:`artlib.elementary.BayesianART.BayesianART` but differs in that + the hyper-ellipsoid always have their principal axes square to the coordinate + frame. It is also faster than :class:`artlib.elementary.BayesianART.BayesianART`. """ diff --git a/artlib/hierarchical/DeepARTMAP.py b/artlib/hierarchical/DeepARTMAP.py index 116365b..4d90983 100644 --- a/artlib/hierarchical/DeepARTMAP.py +++ b/artlib/hierarchical/DeepARTMAP.py @@ -16,13 +16,14 @@ class DeepARTMAP(BaseEstimator, ClassifierMixin, ClusterMixin): """DeepARTMAP for Hierachical Supervised and Unsupervised Learning. - This module implements DeepARTMAP, a generalization of the :class:`ARTMAP` class - :cite:`carpenter1991artmap` that allows an arbitrary number of data channels to - be divisively clustered. DeepARTMAP support both supervised and unsupervised - modes. If only two ART modules are provided, DeepARTMAP reverts to standard - :class:`ARTMAP` where the first module is the A-module and the second module is the - B-module. DeepARTMAP does not currently have a direct citation and is an original - creation of this library. + This module implements DeepARTMAP, a generalization of the + :class:`artlib.supervised.ARTMAP.ARTMAP` class :cite:`carpenter1991artmap` that + allows an arbitrary number of data channels to be divisively clustered. DeepARTMAP + support both supervised and unsupervised modes. If only two ART modules are + provided, DeepARTMAP reverts to standard :class:`artlib.supervised.ARTMAP.ARTMAP` + where the first module is the A-module and the second module is the B-module. + DeepARTMAP does not currently have a direct citation and is an original creation + of this library. .. # Carpenter, G. A., Grossberg, S., & Reynolds, J. H. (1991a). .. # ARTMAP: Supervised real-time learning and classification of nonstationary data diff --git a/artlib/hierarchical/SMART.py b/artlib/hierarchical/SMART.py index 81188b9..28db2e1 100644 --- a/artlib/hierarchical/SMART.py +++ b/artlib/hierarchical/SMART.py @@ -24,10 +24,11 @@ class SMART(DeepARTMAP): .. # (pp. 940–944). volume 2. .. # doi:10.1109/ICNN.1994.374307. - SMART accepts an uninstantiated ART class and hierarchically clusters data in a - divisive fashion by using a set of vigilance values that monotonically increase - in their restrictiveness. SMART is a special case of :class:`DeepARTMAP`, which - forms the backbone of this class, where all channels receive the same data. + SMART accepts an uninstantiated :class:`artlib.common.BaseART.BaseART` class and + hierarchically clusters data in a divisive fashion by using a set of vigilance + values that monotonically increase in their restrictiveness. SMART is a special + case of :class:`artlib.hierarchical.DeepARTMAP.DeepARTMAP`, which forms the backbone + of this class, where all channels receive the same data. """ diff --git a/artlib/reinforcement/FALCON.py b/artlib/reinforcement/FALCON.py index e33a891..b8fbd48 100644 --- a/artlib/reinforcement/FALCON.py +++ b/artlib/reinforcement/FALCON.py @@ -27,9 +27,9 @@ class FALCON: .. # In Proc. IEEE International Joint Conference on Neural Networks (IJCNN) .. # (pp. 3297–3302). volume 4. doi:10.1109/ IJCNN.2004.1381208. - FALCON is based on a :class:`FusionART` backbone but only accepts 3 channels: - State, Action, and Reward. Specific functions are implemented for getting optimal - reward and action predictions. + FALCON is based on a :class:`artlib.fusion.FusionART.FusionART` backbone but only + accepts 3 channels: State, Action, and Reward. Specific functions are implemented + for getting optimal reward and action predictions. """ diff --git a/artlib/supervised/ARTMAP.py b/artlib/supervised/ARTMAP.py index d89b6fe..999a9b1 100644 --- a/artlib/supervised/ARTMAP.py +++ b/artlib/supervised/ARTMAP.py @@ -23,10 +23,11 @@ class ARTMAP(SimpleARTMAP): ARTMAP accepts two :class:`BaseART` modules A and B which cluster the dependent channel (samples) and the independent channel (labels) respectively while linking them with a many-to-one mapping. If your labels are integers, - use :class:`SimpleARTMAP` for a faster and more direct implementation. ARTMAP - also provides the ability to fit a regression model to data and specific - functions have been implemented to allow this. However, :class:`FusionART` provides - substantially better fit for regression problems which are not monotonic. + use :class:`artlib.supervised.SimpleARTMAP.SimpleARTMAP` for a faster and more + direct implementation. ARTMAP also provides the ability to fit a regression model to + data and specific functions have been implemented to allow this. However, + :class:`artlib.fusion.FusionART.FusionART` provides substantially better fit for + regression problems which are not monotonic. """ diff --git a/artlib/supervised/SimpleARTMAP.py b/artlib/supervised/SimpleARTMAP.py index 4714035..66a1017 100644 --- a/artlib/supervised/SimpleARTMAP.py +++ b/artlib/supervised/SimpleARTMAP.py @@ -22,12 +22,13 @@ class SimpleARTMAP(BaseARTMAP): .. # Adaptive Resonance Theory Microchips: Circuit Design Techniques. .. # Norwell, MA, USA: Kluwer Academic Publishers. - SimpleARTMAP is a special case of :class:`ARTMAP` specifically for - classification. It allows the clustering of data samples while enforcing a - many-to-one mapping from sample clusters to labels. It accepts an instantiated - :class:`BaseART` module and dynamically adapts the vigilance function to prevent - resonance when the many-to-one mapping is violated. This enables SimpleARTMAP to - identify discrete clusters belonging to each category label. + SimpleARTMAP is a special case of :class:`artlib.supervised.ARTMAP.ARTMAP` + specifically for classification. It allows the clustering of data samples while + enforcing a many-to-one mapping from sample clusters to labels. It accepts an + instantiated :class:`artlib.common.BaseART.BaseART` module and dynamically adapts + the vigilance function to preventresonance when the many-to-one mapping is + violated. This enables SimpleARTMAP to identify discrete clusters belonging to + each category label. """ diff --git a/artlib/topological/DualVigilanceART.py b/artlib/topological/DualVigilanceART.py index a349a99..df9fb6f 100644 --- a/artlib/topological/DualVigilanceART.py +++ b/artlib/topological/DualVigilanceART.py @@ -20,12 +20,14 @@ class DualVigilanceART(BaseART): .. # Dual vigilance fuzzy adaptive resonance theory. .. # Neural Networks, 109, 1–5. doi:10.1016/j.neunet.2018.09.015. - Dual Vigilance ART allows a :class:`BaseART` module to cluster with both an upper - and lower vigilance value. The upper-vigilance value allows the base ART module - to cluster normally, however, data is simultaneously clustered using the lower - vigilance level to combine multiple base ART categories into a single abstracted - category. This permits clusters to be combined to form arbitrary shapes. For - example if the base ART module is :class:`FuzzyART`, a Dual Vigilance Fuzzy ART + Dual Vigilance ART allows a :class:`artlib.common.BaseART.BaseART` module to + cluster with both an upper and lower vigilance value. The upper-vigilance value + allows the :class:`artlib.common.BaseART.BaseART` module to cluster normally, + however, data is simultaneously clustered using the lower vigilance level to + combine multiple base ART categories into a single abstracted category. This + permits clusters to be combined to form arbitrary shapes. For example if the + :class:`artlib.common.BaseART.BaseART` module is + :class:`artlib.elementary.FuzzyART.FuzzyART`, a Dual Vigilance Fuzzy ART clustering result would look like a series of hyper-boxes forming an arbitrary geometry. diff --git a/artlib/topological/TopoART.py b/artlib/topological/TopoART.py index 1e2932b..0be2368 100644 --- a/artlib/topological/TopoART.py +++ b/artlib/topological/TopoART.py @@ -29,11 +29,11 @@ class TopoART(BaseART): .. # Berlin, Heidelberg: Springer Berlin Heidelberg. .. # doi:10.1007/978-3-642-15825-4_21. - Topo ART clusters accepts an instatiated :class:`BaseART` module and generates a - topological clustering by recording the first and second resonant cluster - relationships in an adjacency matrix. Further, it updates the second resonant - cluster with a lower learning rate than the first, providing for a distributed - learning model. + Topo ART clusters accepts an instantiated :class:`artlib.common.BaseART.BaseART` + module and generates a topological clustering by recording the first and second + resonant cluster relationships in an adjacency matrix. Further, it updates the + second resonant cluster with a lower learning rate than the first, providing for + a distributed learning model. """ diff --git a/artlib/topological/__init__.py b/artlib/topological/__init__.py index 4e2d9d0..0866df7 100644 --- a/artlib/topological/__init__.py +++ b/artlib/topological/__init__.py @@ -5,9 +5,10 @@ geometry of the data. Topological clustering techniques, such as hierarchical clustering and Mapper, are often used in fields like data analysis and computational topology. -The two modules herein provide contrasting advantages. :class:`TopoART` allows for the -creation of an adjacency matrix which can be useful when clusters overlap or are in -close proximity. :class:`DualVigilanceART` allows for the abstract merging of many +The two modules herein provide contrasting advantages. +:class:`artlib.topological.TopoART` allows for the creation of an adjacency matrix +which can be useful when clusters overlap or are in close proximity. +:class:`artlib.topological.DualVigilanceART` allows for the abstract merging of many smaller clusters and is well suited to problems where the clusters take-on complex geometries where other clustering approaches would fail. From 78992702a55d29ca6af7d97890d43ef663684f42 Mon Sep 17 00:00:00 2001 From: Niklas Melton Date: Thu, 17 Oct 2024 15:41:25 -0500 Subject: [PATCH 14/14] class cross references --- artlib/elementary/ART2.py | 2 +- artlib/elementary/BayesianART.py | 4 ++-- artlib/elementary/GaussianART.py | 4 ++-- artlib/hierarchical/DeepARTMAP.py | 4 ++-- artlib/hierarchical/SMART.py | 6 +++--- artlib/reinforcement/FALCON.py | 4 ++-- artlib/supervised/ARTMAP.py | 7 ++++--- artlib/supervised/SimpleARTMAP.py | 6 +++--- artlib/topological/DualVigilanceART.py | 8 ++++---- artlib/topological/TopoART.py | 2 +- artlib/topological/__init__.py | 10 +++++----- 11 files changed, 29 insertions(+), 28 deletions(-) diff --git a/artlib/elementary/ART2.py b/artlib/elementary/ART2.py index f23f5d5..e734410 100644 --- a/artlib/elementary/ART2.py +++ b/artlib/elementary/ART2.py @@ -45,7 +45,7 @@ class ART2A(BaseART): .. # Neural Networks, 4, 493 – 504. doi:10.1016/0893-6080(91) 90045-7. - ART2-A is similar to :class:`artlib.elementary.ART1.ART1` but designed for analog + ART2-A is similar to :class:`~artlib.elementary.ART1.ART1` but designed for analog data. This method is implemented for historical purposes and is not recommended for use. diff --git a/artlib/elementary/BayesianART.py b/artlib/elementary/BayesianART.py index 14ce695..6b19f9b 100644 --- a/artlib/elementary/BayesianART.py +++ b/artlib/elementary/BayesianART.py @@ -24,8 +24,8 @@ class BayesianART(BaseART): .. # Networks, 18, 1628–1644. doi:10.1109/TNN.2007.900234. Bayesian ART clusters data in Bayesian Distributions (Hyper-ellipsoids) and is - similar to :class:`artlib.elementary.GaussianART.GaussianART` but differs in that it - allows arbitrary rotation of the hyper-ellipsoid. + similar to :class:`~artlib.elementary.GaussianART.GaussianART` but differs in that + it allows arbitrary rotation of the hyper-ellipsoid. """ diff --git a/artlib/elementary/GaussianART.py b/artlib/elementary/GaussianART.py index e3b5960..34a917b 100644 --- a/artlib/elementary/GaussianART.py +++ b/artlib/elementary/GaussianART.py @@ -23,9 +23,9 @@ class GaussianART(BaseART): .. # Neural Networks, 9, 881 – 897. doi:10.1016/0893-6080(95)00115-8. Guassian ART clusters data in Gaussian Distributions (Hyper-ellipsoids) and is - similar to :class:`artlib.elementary.BayesianART.BayesianART` but differs in that + similar to :class:`~artlib.elementary.BayesianART.BayesianART` but differs in that the hyper-ellipsoid always have their principal axes square to the coordinate - frame. It is also faster than :class:`artlib.elementary.BayesianART.BayesianART`. + frame. It is also faster than :class:`~artlib.elementary.BayesianART.BayesianART`. """ diff --git a/artlib/hierarchical/DeepARTMAP.py b/artlib/hierarchical/DeepARTMAP.py index 4d90983..b11475a 100644 --- a/artlib/hierarchical/DeepARTMAP.py +++ b/artlib/hierarchical/DeepARTMAP.py @@ -17,10 +17,10 @@ class DeepARTMAP(BaseEstimator, ClassifierMixin, ClusterMixin): """DeepARTMAP for Hierachical Supervised and Unsupervised Learning. This module implements DeepARTMAP, a generalization of the - :class:`artlib.supervised.ARTMAP.ARTMAP` class :cite:`carpenter1991artmap` that + :class:`~artlib.supervised.ARTMAP.ARTMAP` class :cite:`carpenter1991artmap` that allows an arbitrary number of data channels to be divisively clustered. DeepARTMAP support both supervised and unsupervised modes. If only two ART modules are - provided, DeepARTMAP reverts to standard :class:`artlib.supervised.ARTMAP.ARTMAP` + provided, DeepARTMAP reverts to standard :class:`~artlib.supervised.ARTMAP.ARTMAP` where the first module is the A-module and the second module is the B-module. DeepARTMAP does not currently have a direct citation and is an original creation of this library. diff --git a/artlib/hierarchical/SMART.py b/artlib/hierarchical/SMART.py index 28db2e1..8952607 100644 --- a/artlib/hierarchical/SMART.py +++ b/artlib/hierarchical/SMART.py @@ -24,11 +24,11 @@ class SMART(DeepARTMAP): .. # (pp. 940–944). volume 2. .. # doi:10.1109/ICNN.1994.374307. - SMART accepts an uninstantiated :class:`artlib.common.BaseART.BaseART` class and + SMART accepts an uninstantiated :class:`~artlib.common.BaseART.BaseART` class and hierarchically clusters data in a divisive fashion by using a set of vigilance values that monotonically increase in their restrictiveness. SMART is a special - case of :class:`artlib.hierarchical.DeepARTMAP.DeepARTMAP`, which forms the backbone - of this class, where all channels receive the same data. + case of :class:`~artlib.hierarchical.DeepARTMAP.DeepARTMAP`, which forms the + backbone of this class, where all channels receive the same data. """ diff --git a/artlib/reinforcement/FALCON.py b/artlib/reinforcement/FALCON.py index b8fbd48..8946ffb 100644 --- a/artlib/reinforcement/FALCON.py +++ b/artlib/reinforcement/FALCON.py @@ -27,7 +27,7 @@ class FALCON: .. # In Proc. IEEE International Joint Conference on Neural Networks (IJCNN) .. # (pp. 3297–3302). volume 4. doi:10.1109/ IJCNN.2004.1381208. - FALCON is based on a :class:`artlib.fusion.FusionART.FusionART` backbone but only + FALCON is based on a :class:`~artlib.fusion.FusionART.FusionART` backbone but only accepts 3 channels: State, Action, and Reward. Specific functions are implemented for getting optimal reward and action predictions. @@ -302,7 +302,7 @@ class TD_FALCON(FALCON): TD-FALCON is based on a :class:`FALCON` backbone but includes specific function for temporal-difference learning. Currently, only SARSA is implemented and only - :class:`FuzzyART` base modules are supported. + :class:`~artlib.elementary.FuzzyART.FuzzyART` base modules are supported. """ diff --git a/artlib/supervised/ARTMAP.py b/artlib/supervised/ARTMAP.py index 999a9b1..a24a389 100644 --- a/artlib/supervised/ARTMAP.py +++ b/artlib/supervised/ARTMAP.py @@ -20,13 +20,14 @@ class ARTMAP(SimpleARTMAP): .. # by a self-organizing neural network. .. # Neural Networks, 4, 565 – 588. doi:10.1016/0893-6080(91)90012-T. - ARTMAP accepts two :class:`BaseART` modules A and B which cluster the dependent + ARTMAP accepts two :class:`~artlib.common.BaseART.BaseART` modules A and B which + cluster the dependent channel (samples) and the independent channel (labels) respectively while linking them with a many-to-one mapping. If your labels are integers, - use :class:`artlib.supervised.SimpleARTMAP.SimpleARTMAP` for a faster and more + use :class:`~artlib.supervised.SimpleARTMAP.SimpleARTMAP` for a faster and more direct implementation. ARTMAP also provides the ability to fit a regression model to data and specific functions have been implemented to allow this. However, - :class:`artlib.fusion.FusionART.FusionART` provides substantially better fit for + :class:`~artlib.fusion.FusionART.FusionART` provides substantially better fit for regression problems which are not monotonic. """ diff --git a/artlib/supervised/SimpleARTMAP.py b/artlib/supervised/SimpleARTMAP.py index 66a1017..f77eff0 100644 --- a/artlib/supervised/SimpleARTMAP.py +++ b/artlib/supervised/SimpleARTMAP.py @@ -22,11 +22,11 @@ class SimpleARTMAP(BaseARTMAP): .. # Adaptive Resonance Theory Microchips: Circuit Design Techniques. .. # Norwell, MA, USA: Kluwer Academic Publishers. - SimpleARTMAP is a special case of :class:`artlib.supervised.ARTMAP.ARTMAP` + SimpleARTMAP is a special case of :class:`~artlib.supervised.ARTMAP.ARTMAP` specifically for classification. It allows the clustering of data samples while enforcing a many-to-one mapping from sample clusters to labels. It accepts an - instantiated :class:`artlib.common.BaseART.BaseART` module and dynamically adapts - the vigilance function to preventresonance when the many-to-one mapping is + instantiated :class:`~artlib.common.BaseART.BaseART` module and dynamically adapts + the vigilance function to prevent resonance when the many-to-one mapping is violated. This enables SimpleARTMAP to identify discrete clusters belonging to each category label. diff --git a/artlib/topological/DualVigilanceART.py b/artlib/topological/DualVigilanceART.py index df9fb6f..29ea422 100644 --- a/artlib/topological/DualVigilanceART.py +++ b/artlib/topological/DualVigilanceART.py @@ -20,14 +20,14 @@ class DualVigilanceART(BaseART): .. # Dual vigilance fuzzy adaptive resonance theory. .. # Neural Networks, 109, 1–5. doi:10.1016/j.neunet.2018.09.015. - Dual Vigilance ART allows a :class:`artlib.common.BaseART.BaseART` module to + Dual Vigilance ART allows a :class:`~artlib.common.BaseART.BaseART` module to cluster with both an upper and lower vigilance value. The upper-vigilance value - allows the :class:`artlib.common.BaseART.BaseART` module to cluster normally, + allows the :class:`~artlib.common.BaseART.BaseART` module to cluster normally, however, data is simultaneously clustered using the lower vigilance level to combine multiple base ART categories into a single abstracted category. This permits clusters to be combined to form arbitrary shapes. For example if the - :class:`artlib.common.BaseART.BaseART` module is - :class:`artlib.elementary.FuzzyART.FuzzyART`, a Dual Vigilance Fuzzy ART + :class:`~artlib.common.BaseART.BaseART` module is + :class:`~artlib.elementary.FuzzyART.FuzzyART`, a Dual Vigilance Fuzzy ART clustering result would look like a series of hyper-boxes forming an arbitrary geometry. diff --git a/artlib/topological/TopoART.py b/artlib/topological/TopoART.py index 0be2368..35efe23 100644 --- a/artlib/topological/TopoART.py +++ b/artlib/topological/TopoART.py @@ -29,7 +29,7 @@ class TopoART(BaseART): .. # Berlin, Heidelberg: Springer Berlin Heidelberg. .. # doi:10.1007/978-3-642-15825-4_21. - Topo ART clusters accepts an instantiated :class:`artlib.common.BaseART.BaseART` + Topo ART clusters accepts an instantiated :class:`~artlib.common.BaseART.BaseART` module and generates a topological clustering by recording the first and second resonant cluster relationships in an adjacency matrix. Further, it updates the second resonant cluster with a lower learning rate than the first, providing for diff --git a/artlib/topological/__init__.py b/artlib/topological/__init__.py index 0866df7..e8e583a 100644 --- a/artlib/topological/__init__.py +++ b/artlib/topological/__init__.py @@ -6,11 +6,11 @@ and Mapper, are often used in fields like data analysis and computational topology. The two modules herein provide contrasting advantages. -:class:`artlib.topological.TopoART` allows for the creation of an adjacency matrix -which can be useful when clusters overlap or are in close proximity. -:class:`artlib.topological.DualVigilanceART` allows for the abstract merging of many -smaller clusters and is well suited to problems where the clusters take-on complex -geometries where other clustering approaches would fail. +:class:`~artlib.topological.TopoART.TopoART` allows for the creation of an adjacency +matrix which can be useful when clusters overlap or are in close proximity. +:class:`~artlib.topological.DualVigilanceART.DualVigilanceART` allows for the abstract +merging of many smaller clusters and is well suited to problems where the clusters +take-on complex geometries where other clustering approaches would fail. `Topological clustering `_