Combinatorial and Machine Learning Approaches in Clustering Microarray Data