Classification of hyperspectral remote sensing images

Final assignment for my course on Machine Learning 1, at Data Science Master on Universitat de València, developed in colaboration with my colleague Sergio Conde. We implement all the methods covered by this course using scikit-learn on Jupyter Notebook. You can find the necessary dataset on my data release.

We use the main methods on data pre-processing (scaling, PCA, feature selection); unsupervised learning (k-means, spectral clustering, Gaussian mixture), supervised learning (decission tree, k-NN, SVM) and ensemble methods (Random Forest, Adaboost); in order to classify the pixels in an hiperspectral (224 channels) image, given 16 different classes. We compare the performance of the different methods using different metrics (confussion matrix, Cohen kappa coefficient) achieving a very high accuracy. You can read the file 'conclusions.md' for more information on our results.