When you create a helper function like this, even if it is internal, it is important that you give it a name that tells the reader why it is there.

I find that it helps to think about why the creation of the helper function was important. Here it seems to me that what is important is to deal with the case of precomputed kernel (correct me if I am wrong). Thus, I could suggest naming the helper function '_split_with_kernel', and in the docstring explain that it "creates a subset of the dataset, catering for the presence of a kernel in the estimator".