A Semi-Supervised Self-Organizing Map for Clustering and Classification