在 Jupyter 笔记本上本地运行并使用 MNIST 数据集(28k 条目,每个图像 28x28 像素,以下内容为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
with cv=3
正在进行 3 倍交叉验证,因此我希望它能够拟合模型 3 次,因此至少需要大约 3 倍的时间,但我不明白为什么需要 64 倍!
为了检查它是否特定于我的环境,我在Colab笔记本 https://colab.research.google.com/drive/1QsY4vbHfyb7mBcFGHjeUdnVQZetNT3g-- 差异没有那么极端(15x),但仍远高于我预期的 3 倍:
我缺少什么?为什么 cross_val_predict 比拟合模型慢得多?
如果重要的话,我正在运行 scikit-learn 0.20.2。