Unsupervised Clustering Using Semi-Algebraic Data Structures