A type of classification algorithm that determines which class amongst a number of predetermined classes that given data fits into. Applications of this type of classification include object recognition, handwriting recognition, recommendation systems, and other applications that need to determine which of a predetermined set of groups the data belongs to.