I would refactor split_and_score in the following way: make ``partial_train`` a boolean, and incorporate the ``partial_train`` indices into ``train``. Then set a variable ``fit_function`` to ``estimator.fit`` or ``estimator.partial_fit`` depending on ``partial_train``. Then you don't need to factor out so much and the code becomes much shorter.