Кажется, иногда вводит в заблуждение то, что метод predict() возвращает 0 и 1, неявным образом используя порог в P=0.5
По большому счету, моделирование заканчивается на стадии получения вероятностей — а дальше уже принятие решения, выбор нужного трешхолда)
Помню, кто-то на stats.stackexchange даже предлагал оставить только predict_proba(), чтобы не было ощущения, что классификация — это нолики и единички)