Skip to content

Implementation of a dynamic hard clustering algorithm based on multiple dissimilarity matrices

Notifications You must be signed in to change notification settings

Trakton/hard-clustering

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hard Clustering Algorithm

This repository implements in c++ a dynamic hard clustering algorithm based on multiple dissimilarity matrices, calculating relevance weights for each one.

How to Run

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:

  1. You can just run make in terminal to compile
  2. Run it with bin/main.o

On Windows:

  1. Compile it with g++ -std=c++11 src/main.cpp -o bin/main.o
  2. Run it with ./bin/main.o

The Algorithm

It is described in the section 2.2.2 of the "Partitioning Hard Clustering Algorithms Based On Multiple Dissimilarity Matrices" paper, avaiable here.

Testing

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.

Results

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

About

Implementation of a dynamic hard clustering algorithm based on multiple dissimilarity matrices

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published