Skip to content

A2 - Clustering

  • In this assignment, you shall implement clustering on the blogs dataset containing 99 blogs.
  • You can use any programming language you like.
  • You shall present your application and code at an oral examination.

See the Deadlines and Submissions page.

GradeRequirements
E
  • Implement K-means Clustering with Pearson similarity.
  • Run the algorithm on the blog data dataset (see Datasets page) with five clusters.
  • The iteration shall stop after a specified number of iterations.
  • Present the result as a list of clusters and their assignments.
  • Implement the system using a REST web service where:

    1. client sends a request to a server.
    2. the server responds with json data.
    3. the json data is decoded and presented in a client GUI.
C-D
  • Instead of stopping after a specified number of iterations, you shall implement functionality for stopping when no new assignments are made.
  • Each cluster must keep track of the previous assignment, and a check is made if the new cluster assignment matches the previous one.
A-B
  • Implement Hierarchical Clustering with Pearson similarity.
  • Run the algorithm on the blog data dataset.
  • Present the result as an interactive tree in the client GUI (it shall be possible to expand/collapse branches).

K-means is not deterministic (the results differ between runs), but you usually find related blogs such as the Google and search engine blogs in one cluster as shown here:

A K-means cluster containing the Google and search engine blogs

Hierarchical clustering always gives the same result. The tree is too large to show here, but if you get the branch shown below, it most likely works correctly:

A branch of the hierarchical clustering tree
CCBY