I'm building a random forest model that is designed to predict tree canopy cover. I'm using an R software environment and satellite remote sensing data as my predictors.

I'm okay with under or over estimating the tree canopy % where there are actually trees, but it's extremely important that my model can assess a tree canopy value of 0 when it is 0. I don't want predictions that give me a 10% tree canopy cover on a highway.

How can I tune my model to place a higher emphasis on 0 values?


1 Answer 1


Currently you predict a single Y scalar value, in the unit interval, for each pixel.

higher emphasis on 0 values?

You're describing your Loss function, and saying that in the Business Domain a ten percent error for "half covered" regions is of less consequence than a ten percent error for an open "highway" region. The RF model is trying to minimize that function. So appropriately guide it by offering it skewed loss values.

Here's an alternative setup that you may find simpler. Predict a Y vector of (cover, is_open), a real and a boolean. Combine them to produce a single loss value, with is_open errors weighted by whatever factor $k$ that you wish. When interactively viewing a map of cover errors the error effect will be continuous and may be somewhat subtle. But interactively viewing the is_open errors should yield visually glaring errors that help you to focus on the kinds of terrain the model struggles with. This is the first step to diagnosing and repairing the trouble.

The world has structure, it does not look like TV static or like a chess board of alternating {tree, open, tree, open} regions. Due to weathering and erosion, terrain for the most part tends to be smoothly differentiable, cliffs excepted, and this governs how water flows, water that's needed for growth. Tree canopy tends to occur in clumps.

Highways are not produced by a natural process, but they certainly do have structure. Predicting a 3 sq. km region of road would be an error, it couldn't even be a parking lot. Predicting 1 km of road, a 1 km break, and then 1 km of road would also be an error in most cases, as a highway gains value only by continuously connecting regions. Highways soak up solar radiation during the day and re-radiate it at dusk, differently from how canopied regions perform. Highways will sometimes rapidly change from a snowy white appearance to a plowed black appearance. People make maps of where highways are located.

You definitely want to train a highway model that knows about their structure. You will certainly have Ground Truth data for how some highway maps match up with your pixels. Even if you want to support doing canopy inference on a region for which maps are unavailable, you might still insist that all training data shall be accompanied by accurate map (lat, long)'s.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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