I got such values of importance in GEE, using such code

var variable_importance = ee.Feature(null, ee.Dictionary(trained.explain()).get('importance'));

What formula does GEE use for calculation it? How I can understand better and interpret this parameter?

It was strange that bands B1 and B9 with the lowest resolution of Sentinel-2 (60 m) have the biggest importance values, especially because ROIs of different classes in these bands have the closest spectral characteristic.

importance: Object (20 properties)
B1: 2682.795703225982
B11: 2315.5398199914976
B12: 2185.84515419957
B2: 1969.4475177332397
B3: 1935.6989506713057
B4: 1958.7955232848474
B5: 2332.9632154142287
B6: 2111.0172238346317
B7: 2065.7232825789947
B8: 1715.2832277984007
B8A: 2106.327600990918
B9: 2663.665760951093
EVI: 1698.4509109957194
GCI: 1906.9268330311568
GNDVI: 1886.222022424371
LAI: 1655.6410891039452
NBR: 1927.2979888936623
NDII: 1901.8728648529388
NDVI: 2045.8936411291775
SAVI: 1717.1674506330432

1 Answer 1


As I recall that one issue with the GEE implementation of Random Forests is that it returns the non-permuted Decrease in Gini impurity index, which is quite incorrect to base inference on. One should be using the permuted Decrease in Accuracy importance as it stabilizes the inherent stochasticity of the model. I beleive that GEE returns the summed index whereas common Python and R implementations return the mean. See line #126 of the smile source code as additional support of the assertion of the Gini importance implementation. The annotation also explains how importance is derived. For DecreaseAccuracy, it is much the same but, n parameters (mtry) are randomly selected for this evaluation of node error.

Now, that said, I would not bother with leveraging importance as a means of reducing parameter space in a classification model using remote sensing data, there is really no need. When you have a large number of parameters, some of which may contain considerable random variation, then parameter selection becomes much more relevant. In the case of spectral data, there will be some degree of signal in every parameter and any random variation will have minimal effect on the estimates.

Also, please do not go with model defaults in GEE. These model parameters have a notable effect on the model. The default number of Bootstraps is woefully inadequate and the depth of trees should never be constrained. Number of Bootstraps should be based on the size of the problem and error convergence. Unfortunately, GEE does not provide diagnostics to evaluate error convergence but, you can brute force it and at least look at different sizes in relation to OOB performance, making sure that you are looking an not just global performance but also optimizing class-level performance. Please read the Breiman (2001) source literature to understand the algorithm that you are using.


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.