Compare a number of clustering algorithms


Job Description

Implement a number of clustering algorithms, and run some predefined experiments to evaluate their accuracy/performance based on predefined

The clustering algorithms are:
1)Connected Components
2)Randomized Connected Components
3)Hierarchical Agglomerative Clustering
4)Randomized Hierarchical Agglomerative Clustering
5)Balanced Connected Components
6)Spectral Clustering with negative edges
7)Spectral Clustering with negative edges - k cuts
8)Conditional random field (CRF) energy clustering.

Algorithms 1-5 are already implemented in java and will be explained in detail to the contractor. Algorithms 6,7,8 are quite more complex, are not implemented, and will be explained in a high level to the contractor. However, for algorithms 6-8 the contractor must be willing to read and understand the 4 technical papers describing the details.

The experiments will try to cluster nodes based on YES/NO edges between them. Each YES/NO edge has also a probability of being correct( > 50%).
These YES/NO answers will be generated based on a simple simulation process that will be explained in person. Our objective is to find out how different algorithms perform on different distributions of generated answers. In addition, the contractor will have to figure out, through the experiments, which are the factors that affect the algorithms' performance, and distinguish the cases where different algorithms perform clearly better than others.

The experiments, metrics and outcome will be explained in detail in person.

Please mention your experience in experimental evaluation of algorithms, and your mathematical background

Other open jobs by this client