This repository implements in c++ a dynamic hard clustering algorithm based on multiple dissimilarity matrices, calculating relevance weights for each one.
In order to run the program you will need the g++ compiler for c++11. Firt, git clone the repository and then travel to it's project folder via terminal cd
command. Then:
On Linux:
- You can just run
make
in terminal to compile - Run it with
bin/main.o
On Windows:
- Compile it with
g++ -std=c++11 src/main.cpp -o bin/main.o
- Run it with
./bin/main.o
It is described in the section 2.2.2 of the "Partitioning Hard Clustering Algorithms Based On Multiple Dissimilarity Matrices" paper, avaiable here.
For evaluating the algorithms performace, the "Image Segmentation" repository from the uci machine learning website was used. It is avaiable here
The table "segmentation.test" contains 2100 objects divided in 7 classes. The objects are described by 19 variables splitted in 2 views:
- Shape View: the first 9 variables
- RGB View: the last 10 variables
Two dissimilarity matrices were computed, one for each view.
The results evaluated for this dataset utilizes the Adjusted Rand Index to compare it's results with other known hard clustering algorithms.
The highest Adjusted Rand Index achieved by the algorithm was: 0.4972