Implementation of the ART 2-A fingerprint clustering algorithm in Java.
Implementation of the ART 2-A count and bit fingerprint clustering algorithm in Java for fast, stable unsupervised clustering for open categorical problems in double or single machine precision. ART stands for "Adaptive Resonance Theory" and represents a family of neural models. ART 2-A is a special form of ART that enables rapid convergence in clustering. ART is able to adapt to changing environments. For clustering, this means that after each assignment of an input to a cluster, the model adapts the cluster to the new input.
See the wiki of this repository.
The JavaDoc of this library can be found here.
ART2a-Clustering-for-Java is hosted as a package/artifact on the sonatype maven central repository. See the
artifact page for installation
guidelines using build tools like maven or gradle.
To install ART2a-Clustering-for-Java via its JAR archive, you can get it from the
releases. Note that other dependencies
will need to be installed via JAR archives as well this way.
In order to open the project locally, e.g. to extend it, download or clone the repository and
open it in a Gradle-supporting IDE (e.g. IntelliJ) as a Gradle project and execute the build.gradle file.
Gradle will then take care of installing all dependencies. A Java Development Kit (JDK) of version 17 or higher must also
be pre-installed.
The "src" subfolder contains all source code files including JUnit tests.
The test class Art2aDoubleClusteringTest tests the functionalities of Art-2a in double machine precision and the test class Art2aFloatClusteringTest in single machine precision. Methods for the clustering results are also tested.
The test "resources" subfolder contains two text files. The text file named "Bit_Fingerprints.txt" contains 10 bit fingerprints, where each line represents one bit fingerprint. And the file named "Count_Fingerprints.txt" contains 6 count fingerprints, where each line represents one count fingerprint.
Needs to be pre-installed:
- Java Development Kit (JDK) version 17
- Adoptium OpenJDK (as one possible source of the JDK)
- Gradle version 7.3
Managed by Gradle:
- JUnit Jupiter version 5.9.1
- JUnit
- License: Eclipse Public License - v 2.0
- Spotless version 6.19
- Spotless GitHub repository
- License: Apache-2.0 license
- Javadoc-publisher version 2.4
- Javadoc-publisher GitHub repository
- License: Apache-2.0 license
ART 2-A: An adaptive resonance algorithm for rapid category learning and recognition
An adaptive resonance theory based artificial neural network (ART-2a) for rapid identification of airborne particle shapes from their scanning electron microscopy images