Home

Awesome

Statistical Computing in Clojure: Functional Approaches to Unsupervised Learning

Author: Jaryt Salvo
Course: CS 7300 Unsupervised Learning
Term: Fall 2024


Project Documentation and Results

Project Overview

This work implements fundamental statistical algorithms using functional programming paradigms. The implementation leverages Clojure's immutable data structures and pure functions to develop a mathematically rigorous framework for numerical computing. Our approach emphasizes computational efficiency while maintaining mathematical precision through careful algorithm selection and implementation.

Core Implementation

The project consists of three primary computational modules:

1. Statistical Foundations

2. Eigenvalue Decomposition

3. Principal Component Analysis

Technical Implementation

The codebase utilizes modern Clojure libraries and practices:

Development Environment

The project uses containerized development environments to ensure computational reproducibility across systems. This approach eliminates environment-specific issues and maintains consistent behavior across different operating systems.

System Requirements

Environment Setup

  1. Install the required software:

  2. Clone and initialize the repository:

    git clone https://github.com/adabwana/f24-cs7300-final-project.git
    cd f24-cs7300-final-project
    code .
    
  3. Select development environment:

    • Primary Container: Clojure environment for core implementation
    • Validation Container: Python environment for comparative analysis

The container configuration automatically:

This containerized approach ensures that all computational results are reproducible and that the development environment remains consistent across different systems and users.