Unsupervised Classification

Unsupervised classification is a type of classification where the data is not labeled. This means that the algorithm does not know the different classes, and it has to figure them out on its own. It is the opposite process of supervised classification. Spectral classes are grouped first and then categorized into clusters. 

One way to do unsupervised classification is to use a clusterer algorithm. A clusterer algorithm takes a set of data and tries to find groups of data points that are similar to each other. Once the clusterer has found these groups, it can assign labels to them. In Earth Engine, these classifiers are ee.Clusterer objects. These are “self-taught” algorithms that do not use a set of labeled training data (i.e., they are “unsupervised”).  There are many different clusterer algorithms, but some of the most common ones include k-means, hierarchical clustering, and DBSCAN.

To better understand unsupervised classification, you can think of it as performing a task you have not experienced before, starting by gathering as much information as possible. For example, imagine learning a new language without knowing the basic grammar, learning only by watching a TV series in that language, listening to examples, and finding patterns. 

Similar to the supervised classification, unsupervised classification in Earth Engine has this workflow:

  1. Assemble features with numeric properties in which to find clusters (training data).
  2. Select and instantiate a clusterer.
  3. Train the clusterer with the training data.
  4. Apply the clusterer to the scene (classification).
  5. Label the clusters.