Thursday, 5 December 2013

A little teaser for using scikit learn for classification of remotesensing images

I work with classification of remote sensing images a lot both with supervised as well as unsupervised classification. Unsupervised classifications don’t need any external input where as supervised classifications need samples or training areas for an algorithm to learn. For processing remote sensing images, there are many proprietary software like ENVI, ERDAS, PCI Geomatica, Global Mapper, eCognition and many more. Even after paying thousands of Euros, classifications algorithm available in Costs-off-the-self (COTS) software is far from satisfactory.

  • Software
  • Available Algorithms
  • eCognition 8.7

  • (cost >1000 Euros/year)

  • KNN

  • Decision Tree DT

  • SVM (no Y and C parameters available for tunning, no way to perform grid search for optimal determination of Y and C, Only linear and rbf kernel available)

  • Random Forest  RF (only available in 8.8
  • ENVI

  • (cost >1000 Euros/year)

  • Maximum Likelihood (ML)

  • SVM (no way to perform grid search for optima, unless you get your hands dirty with IDL programming

  • Neural Network NN ( Numbers of hidden nodes cannot be assigned)

  • Some otheralgorithms more suitable for Hyperspectral imagesy

  • SAM, SID, Spectral Unmixing.
  • Scikit learn

  • Free

  • Opensoure

  • Neighrest Neigbour (NN)

  • Decision Tree (DT)

  • SVM ( Grid search, cross validation flexibility)

  • Random Forest RF

  • AdaBoost

  • Naives Bayes

  • Linear Discriminant Analysis (LDA)

  • Quadratic Discriminant Analysis (QDA)


Here is the little teaser of classification accuracy with many algorithms that are available in scikit-learn for a remote sensing imagery. In near future, I will blog with more illustration and with code. Till then go and make your hands dirty with Python and Scikit-Learn. Make that your new year resolution and trust me, you will thank me for that.

Accuracy1

Here, algorithms hyperparameters were not optimally tuned hence superior machine learning algorithms like SVM has very low accuracy for test samples which are not seen by trained model.

No comments:

Post a Comment