Algorithms for clustering: Kmeans, Hierarchical and other methods