Geometric Methods in Machine Learning

Projects (due May 5th 19th, by email)

You can choose either of the projects below. You can complete this assignment alone or as a group of two, but I will grade them accordingly (I will have higher expectations for an assignment completed jointly by two students). Please send me, in an email to, a zip file containing your repord in pdf (not a .doc) and code in whatever format (you can send a notebook).

Studying Time Series using Dynamic Time Warping

Download the Epileptic Seizure Recognition dataset. You will recover 11,500 time series with 5 labels. Alternatively, you can also download any other dataset of your liking, with the same type, i.e. labelled time series, with a few hundreds or thousands of time series of moderate length.

  • Implement the dynamic time warping distance in your programming language of choice. Using a train set consisting in the first 7,000 few examples, measure the performance of a simple 3-NN classifier on the remaining 3,500 a few remaining examples.

  • Choose 2,000 300 examples at random, making sure each class is selected at least 300 30 times. Compute their dynamic time warping distance matrix and try to embed these points in 2 dimensions using MMDS, t-SNE and Isomap (you can use a publicly available implementation). Display the results in 3 separate plots, using a different color to display points in each of the 5 classes.

  • In order to visualize representative examples for each class in these samples, we consider time series averaging. We will compute an average for each class in the 2,000 300 examples selected for the previous question. Code to compute such averages is available in R or Python. Plot these averages and compare them with the usual Euclidean averaging you would obtain by simply summing these time-series.

Poincaré Embeddings

Read, summarize and implement the findings provided in a recent paper on Poincaré embeddings, a nice idea published very recently to visualize datapoints endowed with a hierarchical structure. There is a lot of material available online that you can use for inspiration and guidance (for instance here) but I ask that you code everything by yourself.

Low rank factorization of kernel matrices

Read, summarize the method (not the theorertical guarantees) and implement the approach presented in this paper to carry out low-rank factorization of kernel matrices. Compare the method proposed by the authors with one baseline, the Nyström method, on the ijcnn1 dataset.