Локальный запуск на ноутбуке Jupyter и использование набора данных MNIST (28 000 записей, 28 x 28 пикселей на изображение, для следующего требуется 27 секунд .
from sklearn.neighbors import KNeighborsClassifier
knn_clf = KNeighborsClassifier(n_jobs=1)
knn_clf.fit(pixels, labels)
Однако следующее занимает 1722 секунд , другими словами ~ в 64 раза длиннее :
from sklearn.model_selection import cross_val_predict
y_train_pred = cross_val_predict(knn_clf, pixels, labels, cv = 3, n_jobs=1)
Мое наивное понимание состоит в том, что cross_val_predict с cv = 3 выполняет 3-кратную перекрестную проверку, поэтому я ожидаю, что она будет соответствовать модели 3 раза, и поэтому потребуется как минимум ~ 3 раза дольше, но я не вижу почему это заняло бы 64x!
Чтобы проверить, было ли это что-то специфическое для моей среды, я запустил то же самое в ноутбуке Colab - разница была менее экстремальной ( 15x ), но все же намного выше ~ 3х я ожидал:
Чего мне не хватает? Почему cross_val_predict намного медленнее, чем просто подгонка модели?
Если это имеет значение, я запускаю scikit-learn 0.20.2.