Semi-Supervised Machine Learning: a Homological Approach