Removing columns with low variance I'd like to learn a model from many features.
As a pre-processing step, I will remove constant features.
I'd like to remove almost constant features as well, i.e. I'd like to set a low variance filter.
Would you have any guidance on how to implement this filter?
My concern is that some features are around 100 (in which case a variance of 0.1 is very small) and some other features are around 0 (in which case a variance of 0.1 is not small).

Some of the trouble with this is that variance has units, even though we often just look at the number. If you use the right units, you can make that number as small as you want. For instance, if you are doing measurements of how wide DNA is, measure in light years ($\approx10^{13}$km). You'll make all of the DNA width measurements be really small numbers that have a small variance. If you measure in nanometers, then you'll wind up with a larger numerical value of variance, even though it is equal to the variance measured in light years (really squared light years, since variance is squared).
However, if you suspect that DNA width influences your outcome variable of interest, then you've discarded a pertinent variable.
Even if you measure in reasonable units and wind up with a tiny value for variance, it could be that small changes in that variable result in large changes in the outcome. This reminds me of a Jerry Seinfeld routine about not liking to stay with friends when he travels.

I don't like using other people's showers. I don't know the ratio on the dial. It could be that a sixteenth of an inch is a thousand degrees!

It might sounds like a sixteenth of an inch is a small distance, but the result is that you heat the water/steam quite a bit! In other words, that small change in the position of the shower dial had a huge impact on the temperature.
