4 projects in c and python. Main purpose- Implementation of k-means algorithm.
Assignment_0
Base conventer- get familiar with C.
Assignment_1
In this assignment, the K-means algorithm was implemented, a widely-used clustering method that partitions a set of N unlabeled observations into K distinct clusters, with K being a user-defined parameter. The implementation was carried out in both Python and C.
The K-means algorithm involves an iterative process of assigning data points to clusters based on their proximity to cluster centroids, followed by updating the centroids to minimize the overall intra-cluster variance. The Python implementation leverages the language's expressive syntax and ease of use, while the C implementation emphasizes efficiency and low-level control over computational resources.
Assignment_2
The assignment involved implementing the K-means++ algorithm in Python to determine initial centroids for the K-means algorithm. This implementation was then integrated with the K-means algorithm from Assignment_1, which was ported to a C extension using the C API.
The assignment's objectives were met through: Porting the existing C extension using the C API. Gaining hands-on experience with external packages like Numpy, Pandas, and others.
Project
A clustering algorithm based on symmetric Non-negative Matrix Factorization (symNMF) was implemented in this project. Furthermore, the algorithm was compared to the K-means algorithm.