/Uni-Bonn-Pattern-Recognition

Code from the Pattern Recognition (1) at University of Bonn (SS 19): Normal Distribution fitting, MLE, Fractal Dimensions, Bayesian Regression NN, kDTrees, k-mean & spectral clustering, PCA, LDA

Primary LanguageJupyter NotebookApache License 2.0Apache-2.0

University of Bonn: Pattern Recognition (1) SS 2019

Code from the Pattern Recognition (1) lecture at University of Bonn (SS19). A lot of algorithms were implemented in Python during the lecture without the usage of libraries like scikit-learn (atleast too often). The focus during coding was vectorized implementations instead of the heavy use of iterations.

The practical part of the lecture consisted of 3 projects which involved the implementation of a breadth of machine learning and pattern recognition algorithms.

Project 1

  1. Matplotlib visualization of 1D data
  2. Fitting 1D Gaussian distribution to data
  3. Maximum likelihood estimate of Weibull Distribution
  4. Drawing unit circles with different distance metrics
  5. Estimating dimensions of Fractal objects in an image

Project 2

  1. Least Squares Regression for missing value prediction
  2. Conditional Expectation for missing value prediction
  3. Bayesian regression for missing value prediction
  4. Boolean functions and boolean Fourier transform
  5. Nearest neighbour classifier
  6. Nearest neighbour search using KD-Trees

Project 3

  1. k-means clustering
  2. Spectral clustering
  3. Dimensionality reduction using PCA and multiclass-LDA
  4. Non-monotonous activation units for XOR problem using a single neuron
  5. Exploring numerical instabilities with polynomial regression and normalization techniques