Supervised Learning is applied when we have got labeled/defined target class and their respective values, and unsupervised learning is applied when we dont have predefined classes.
In case of unsupervised learning the number of classes to be created are variable and undefined while in case of supervised learning we would already have pre-defined classes to classify into or the target variable values to create a logic input output function.
Hope this helps.