An open API service indexing awesome lists of open source software.

https://github.com/ronmondshein/symnmf

Implementation of ML models, including the k-means algorithm and symNMF, in both C and Python 💻.
https://github.com/ronmondshein/symnmf

c k-means python symnmf

Last synced: 7 months ago
JSON representation

Implementation of ML models, including the k-means algorithm and symNMF, in both C and Python 💻.

Awesome Lists containing this project

README

          

# Software_Project
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.