Hyperspectral images are images with hundreds of channels with values spanning the electromagnetic spectrum, unlike regular RGB images which have only three channels. These images can provide spatial and spectral information of a scanned area, such as surfaces and mineral elements, which can be used for identifying elements in satellite images or object detection of minerals. Our goal is to classify and identify different components of these images by applying both supervised and unsupervised machine learning algorithms. Supervised learning methods use training data in order to fit a model to predict values for the test data, whereas unsupervised methods attempt to cluster similar pixels together to produce categories, without the use of training data. We will apply methods including k-means, hierarchical clustering, and neural networks and then compare the accuracies and computation time of these methods and supervised vs. unsupervised learning methods in general. We will optimize the hyperparameters of the algorithms for various data sets to achieve the most accurate results possible. These same algorithms, in addition to recurrent neural networks, will be applied to text data in order to classify sentences or groups of words into categories based on topic. We will examine how the accuracy for text data compares with the accuracy obtained using the hyperspectral image data.