Random Forest vs CART vs SVM for Land Cover Classification
Every land cover classification workflow starts with the same choice: which classifier to train. The three most common options in remote sensing — Random Forest, CART, and SVM — solve the same basic problem (assign each pixel to a class based on its spectral values) in genuinely different ways, and the differences matter more than most tutorials let on.
What all three have in common
Each of these is a supervised classifier: you give it labeled training points (pixels you've identified as "Water," "Forest," "Built-up," and so on), it learns the spectral pattern associated with each label, and then it applies that pattern to every pixel in your study area. None of them do anything meaningful without good training data — a classifier is only as good as the samples it learns from, regardless of which of the three you pick.
CART (Classification and Regression Trees)
CART builds a single decision tree: a sequence of yes/no splits on your input bands (e.g. "Is NIR reflectance above 0.3? If yes, is Red below 0.15?") that eventually sorts each pixel into a class. It's the simplest of the three, and the easiest to interpret — you can literally trace the decision path for any given pixel.
The tradeoff is that a single tree tends to overfit — it can carve out very specific rules that fit the training data closely but generalize poorly to pixels it hasn't seen, especially with noisy or limited training samples.
Random Forest
Random Forest is, structurally, hundreds of CART trees trained on random subsets of the training data and random subsets of the input bands, with the final classification decided by majority vote across all trees. This "ensemble" approach directly addresses CART's overfitting problem — individual trees may still overfit their particular subset, but averaging across hundreds of them smooths out those idiosyncrasies.
In practice, Random Forest is the most commonly used classifier in remote sensing today, for a specific reason: it handles high-dimensional data well (many spectral bands plus derived indices like NDVI and NDWI), needs relatively little parameter tuning to get reasonable results, and its majority-vote mechanism naturally produces a usable measure of per-pixel confidence — how many of the trees agreed.
SVM (Support Vector Machine)
SVM takes a different approach entirely: instead of building rules, it looks for the boundary — a line, or in higher dimensions a plane — that separates classes with the widest possible margin between them. For classes with genuinely distinct, separable spectral signatures, SVM can outperform tree-based methods, particularly with smaller training sets.
The tradeoff is sensitivity to parameter choices (kernel type, cost, gamma) and weaker native support for multi-class probability outputs compared to Random Forest — which matters if you need a per-pixel confidence map, not just a hard classification.
A practical comparison
| Factor | CART | Random Forest | SVM |
|---|---|---|---|
| Overfitting risk | High | Low | Moderate |
| Parameter tuning needed | Minimal | Minimal | Significant |
| Confidence/probability output | Weak | Strong (vote share) | Limited |
| Performance with small training sets | Poor | Moderate | Often strong |
| Interpretability | High | Moderate | Low |
| Typical default choice | Rarely | Most common | Specific use cases |
Why the classifier matters less than your validation method
Here's the part most tutorials skip: whichever classifier you pick, the accuracy number you report is only meaningful if it's computed on data the classifier never saw during training.
The common mistake: computing accuracy on the same points used for training (sometimes called "resubstitution accuracy"). This number is almost always inflated — the classifier has effectively memorized those exact points — and it doesn't tell you how the model will perform on the rest of your study area. A classifier can show 98% training accuracy and still perform poorly across the broader landscape.
The standard fix is a train/test split: hold out roughly 30% of your labeled points before training, train only on the remaining 70%, and compute accuracy and kappa by classifying the held-out 30% and comparing predictions to their known labels. This gives you a number that actually estimates real-world performance — though it requires enough training points to begin with (a common rule of thumb is at least 20–30 points per class before a held-out split becomes statistically meaningful).
A reasonable default
If you're not sure which to start with: Random Forest is the reasonable default for most land cover work — it tolerates noisy or moderately-sized training sets, requires little tuning, and gives you a natural confidence map for free. Reach for CART when interpretability of the exact decision rules matters more than raw accuracy, and consider SVM when your classes have genuinely well-separated spectral signatures and your training set is small.
References
- Breiman, L., Friedman, J.H., Olshen, R.A., & Stone, C.J. (1984). Classification and Regression Trees. Wadsworth International Group, Belmont, CA.
- Breiman, L. (2001). Random forests. Machine Learning, 45(1), 5–32.
- Cortes, C., & Vapnik, V. (1995). Support-vector networks. Machine Learning, 20(3), 273–297.
- Pal, M. (2005). Random forest classifier for remote sensing classification. International Journal of Remote Sensing, 26(1), 217–222.
- Mountrakis, G., Im, J., & Ogole, C. (2011). Support vector machines in remote sensing: A review. ISPRS Journal of Photogrammetry and Remote Sensing, 66(3), 247–259.
Train and validate a classifier on your own boundary
Spatial Research Suite supports Random Forest, CART, and SVM, with a held-out validation split (not resubstitution accuracy) computed automatically, plus a per-pixel confidence map for Random Forest and CART.
Launch the app →