Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am interested in learning what software exists for land classification using machine learning algorithms (e.g. k-NN, Random Forest, decision trees, etc.) I am aware of the randomForest package in R and MILK and SPy in Python.

What open-source or commercial machine learning algorithms exist that are suited for land cover classification?

share|improve this question
up vote 25 down vote accepted

I would have to say that the most complete software environment for Machine Learning and nonparametric modeling is R. This is a big field in statistics, spanning K-NN, Kernel smoothing, General Additive Models, weak learners, support vectors, neural nets, semi-parametric spline regression, imputation, etc... I would highly recommend reading: Hastie, T., R. Tibshirani, J. Friedman (2009) The Elements of Statistical Learning: Data Mining, Inference and Prediction. Springer Series in Statistics.

Besides R, commercial software by Salford Systems has Random Forests, Multivariate Adaptive Regression Splines, CART and Gradient Boosting (TreeNet) available in a GUI environment. RuleQuest is still selling See5/C5 which is an updated version of the C4/ID3 CART algorithm. The University of Waikato's Weka 3 is an open source GUI/Commandline Java effort with a large number of models available.

share|improve this answer
@Aaron FYI, Falk Hutterman and myself are teaching a workshop at the US-IALE (Landscape Ecology) 2013 meeting in Austin, TX. Our focus will be on using R for machine learning and nonparametric modeling. I will also provide an introduction to using spatial objects in R for data preparation and specification of models. – Jeffrey Evans Feb 7 '13 at 16:00

I'd strongly recommend scikits-learn for Python. It supports supervised and unsupervised classification and the documentation is excellent (particularly check out the Machine Learning for Astronomical Data Analysis tutorial and the accompanying YouTube video (note: this is 3 hours long)).

The project is under active development, with the last version being 0.12 which was released in September.

As for what the package is capable of, see Nearest Neighbours, Random Forest (under Ensembe Methods), and Decision Trees to use the examples you gave.

Unfortunately no GUI unless you want to devote time to building one, but I'd recommend the iPython IDE as an excellent interactive scripting environment, including inline plots with matplotlib in the QT console.

share|improve this answer
(+1) This is great! thanks for sharing – A.R Feb 6 '13 at 10:34

A good overview of machine learning techniques in R is the machine learning taskview. It offers a host of different algorithms, recommended by the experts.

share|improve this answer

Your question assumes that machine learning algorithms for land classification are somehow distinct from software used for other machine learning applications. There are some applications that require special treatment because of unusual characteristics, but there is no reason I know of to think that land use needs special treatment. If land use data can be put into a standard comma delimited form, existing tools such as R should do just fine. Now there may or may not be Land Use software that uses models discovered from machine learning techniques, but that's a different question.

Edited after the first response. -> Most of the major packages for machine learning do have some tools for spacial visualization, although of course they may not meet your particular needs. For example, are you familiar with the sp library for R which is intended for spacial data visualization? Let's see if I can find an appropriate link that gives the flavor of what you can do with it. For a more extensive listing of tools useful for spacial analysis in R you may want to look at as this includes tools for Geostatistics, ecological analysis, and the like.

share|improve this answer

There is a group out of Duke University that have developed some interesting script tools for ArcGIS, including random forest models.

Marine Geospatial Ecology Tools

enter image description here

share|improve this answer
The MGET toolbox is just a wrapper for R. If you have the capacity to use R you can avoid a considerable headache calling R through ArcGIS, through Python (Rpy2). You also have no flexibility in using other tools in R that can be applied to the resulting RF, GAM, regression or CART model(s) objects. – Jeffrey Evans Apr 8 '13 at 2:24

Did you have a look at eCognition? With their new Version (8.9) they provide Random Forests algorithm within a GUI environment. You can create nice process trees and include object features. enter image description here

share|improve this answer
+1 Thanks for the advice. I was not aware eCognition is now using a RF classifier. – Aaron Sep 15 '13 at 11:27

You can also do land classification with DTclassifier (Decision Tree classifier) plugin for QGIS. It provides simple interface for classification of raster data using decision trees, to perform within QGIS.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.