交叉验证,scikit-learn,并行速度较慢



我正在学习如何使用scikit-learn。

测试交叉验证函数时,如果我使用

cross_validation.cross_val_score(svc, X_digits, y_digits, cv=kfold, n_jobs=-1)

结果比我使用

cross_validation.cross_val_score(svc, X_digits, y_digits, cv=kfold, n_jobs=1)

我怎样才能阻止这种情况?

我在64位Windows 7机器上使用PyDev,Anacondas 3.3。 从任务管理器来看,性能下降似乎是由许多 Python 启动和停止实例引起的。 为什么他们不开始,而是继续开始?

为什么他们不开始,而是继续开始?

因为这不是Python中multiprocessing模块目前的工作方式,而这正是scikit-learn内部使用的。在Python 3.4中,至少对于POSIX(Linux,Mac OS X)平台,这将得到修复。我不相信CPython开发人员也打算为Windows解决这个问题。scikit-learn的轻量级并行处理正在开发中,但发布还需要一段时间。

您可以尝试使用算法的加速实现 - 例如scikit-learn-intelex - https://github.com/intel/scikit-learn-intelex

对于

SVM,您肯定能够获得更高的计算效率,但对于如此大的数据集,这仍然很明显。

首次安装包

pip install scikit-learn-intelex

然后添加你的 python 脚本

from sklearnex import patch_sklearn
patch_sklearn()

相关内容

  • 没有找到相关文章

最新更新