The difference is that in supervised learning the 'categories' are known. In unsupervised learning, they are not, and the learning process attempts to find appropriate 'categories'. In both kinds of learning all parameters are considered to determine which are most appropriate to perform the classification.
Whether you chose supervised or unsupervised should be based on whether or not you know what the 'categories' of your data are. If you know, use supervised learning. If you do not know, then use unsupervised.