I'm worried about having this much code in a ``try``...``except`` block.  It makes it all the more likely that we'll catch an exception which we're not expecting to catch.  Am I understanding correctly that this exception is meant to catch the case where ``estimator`` lacks either ``predict_proba`` or ``classes_``?  If that's the case, I think an explicit check for these attributes using ``hasattr()`` would be preferable.