Skip to content

JonasSchaub/ART2a-Clustering-for-Java

Repository files navigation

DOI Javadoc License: MIT Maintenance build GitHub issues GitHub contributors GitHub release Maven Central Quality Gate Status

ART2a-Clustering-for-Java

Implementation of the ART 2-A fingerprint clustering algorithm in Java.

Description

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.

Example initialization and usage of ART2a-Clustering-for-Java

See the wiki of this repository.

JavaDoc

The JavaDoc of this library can be found here.

Installation

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.

Contents of this repository

Sources

The "src" subfolder contains all source code files including JUnit tests.

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.

Test resources

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.

Dependencies for local installation

Needs to be pre-installed:

Managed by Gradle:

References and useful links

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