# Training a Support Vector Machine classifier on a satellite image using python

I am new to the concept of supervised classification technique. I am trying to use an SVM classifier for classifying Sea Ice types in the Arctic using satellite image. All the tutorials I have read for performing a supervised SVM classification use data that comes with labels. For instance, if we have a table which is populated with different crops (trying to predict the crop type), each row of the table corresponds to a label (crop type). Then. the procedure for classifying these data is straightforward.

In my case, I have acquired a satellite image over my area of interest. A satellite image has x,y coordinates and two bands (channels). To train my model (using scikit-learn), I have to provide the SVM classifier with training and target data (which is the label data). In my case, I have no label data.

According to my understanding, I have to create label data somehow out of my whole dataset? Is that right? I am trying to get my head around that problem. Is there any automatic method in python where it trains the model without providing label data? I have not managed to find a solution so far

• Unlabelled/unsupervised learning encompasses different techniques (and problems) than supervised learning. If you want "correct" classification (such as trying to predict crop types) then you'll generally need examples of that (otherwise, how do you know if you're doing better at being correct?). If you just want to identify differences (what's unlike what and how) that's the unsupervised type of problem -- it will find you "kinds" of things without anyone knowing what the "kinds" are; these might not correspond to the way humans see it. – Glen_b Apr 13 '17 at 0:53
• .... the point being you should clarify what you want your model to actually be giving you. If you want to spot known types - let's call them I, II and III - that's supervised (tell it what those look like). If you want it to say "well I found these nine kinds that look alike within their kinds and look different between them" (i.e. they "cluster"), that's unsupervised and you don't need labels (though you might be able to invent names for those clusters post hoc) – Glen_b Apr 13 '17 at 0:58

To answer your question, to train a classifier, yes, you're going to need some labels. Unsupervised techniques like clustering ($k$-means, for example) might also be useful for studying your data.