加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – scikit-learn OpenMP libsvm

发布时间:2020-12-20 12:21:16 所属栏目:Python 来源:网络整理
导读:我正在使用scikit-learn SVC来分类一些数据.我想提高培训效果. clf = svm.SVC(cache_size=4000,probability=True,verbose=True) 由于与libsvm和libsvm的sckikit-learn接口使用OpenMp,我希望: export OMP_NUM_THREADS=16 将在多个核心上运行. 不幸的是,这没
我正在使用scikit-learn SVC来分类一些数据.我想提高培训效果.

clf = svm.SVC(cache_size=4000,probability=True,verbose=True)

由于与libsvm和libsvm的sckikit-learn接口使用OpenMp,我希望:

export OMP_NUM_THREADS=16

将在多个核心上运行.
不幸的是,这没有帮助.

有任何想法吗?

谢谢

解决方法

scikit-learn中libsvm的当前绑定中没有OpenMP支持.但是,如果您遇到sklearn.svm.SVC的性能问题,则很可能会使用更具可伸缩性的模型.

如果您的数据是高维的,它可能是线性可分的.在这种情况下,建议首先尝试更简单的模型,如朴素贝叶斯模型或sklearn.linear_model.Perceptron,这些模型已知非常快速的训练.您还可以尝试sklearn.linear_model.LogisticRegression和sklearn.svm.LinearSVC两者都使用比libsvm更具可扩展性的liblinear实现,尽管内存效率低于scikit-learn中的其他线性模型.

如果您的数据不是线性可分的,您可以尝试sklearn.ensemble.ExtraTreesClassifier(调整n_estimators参数以权衡训练速度与预测准确性).

或者,您可以尝试使用scikit的RBFSampler变换器来近似RBF内核 – 学习在输出上拟合线性模型:

http://scikit-learn.org/dev/modules/kernel_approximation.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读