Skip to content

thanstavridis/PCA-Clustering

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

PCA-Clustering

This Python script implements dimensionality reduction and unsupervised clustering from scratch using NumPy, SciPy, and scikit-learn for synthetic data generation.

Features

  • Implements PCA via both Eigen Decomposition and Singular Value Decomposition (SVD).

  • Visualizes explained variance and scree plots to assist in dimensionality selection.

  • Allows projection of high-dimensional data onto a reduced subspace.

  • Custom implementation of K-Means Clustering with support for:

    • Euclidean

    • Manhattan (City Block)

    • Mahalanobis distances.

  • Silhouette score calculation for cluster evaluation.

  • Adjusted Rand Index (ARI) for clustering quality based on ground-truth labels.

  • Visualization of clustering results in 2D.

  • Full EM algorithm implementation for Mixture of Gaussians:

    • E-Step: Computes posterior probabilities.

    • M-Step: Updates means, covariances, and mixing coefficients.

    • Supports random or K-Means-based initialization.

  • Log-likelihood convergence monitoring.

About

Implementation of dimensionality reduction using PCA and of various clustering techniques including K-Means (with different distance metrics) and Gaussian Mixture Models (MoG).

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages