BUG: fix explained variance

backport fix from https://github.com/scikit-learn/scikit-learn/pull/2664 manually.

Tested, results make sense (more components than before for 0.90.)