从 scikit-learn 训练 SVC 表明使用 -h 0 可能更快?

Posted

技术标签:

【中文标题】从 scikit-learn 训练 SVC 表明使用 -h 0 可能更快?【英文标题】:Training SVC from scikit-learn shows that using -h 0 may be faster? 【发布时间】:2020-01-24 04:58:35 【问题描述】:

我正在一个大型数据集上训练一个 SVC 模型,并且由于我设置了verbose=True,它显示了一个Warning: using -h 0 may be faster

我有两个问题:

这个警告是什么?我们如何设置警告中提到的 libsvm 的任何选项? sklearn.svm.SVC参数设置中缓存的大小会影响训练速度吗?我已将其设置为 cache_size=2000

感谢您的专家观点

【问题讨论】:

【参考方案1】:

-h参数控制收缩:是否使用收缩启发式,0或1(默认1)

您可以使用 shrinking 参数在 SVC 构造函数中设置它。收缩是加速优化问题的启发式方法。

检查Original Paper 和 Similar Quesiton on shrinking

缓存是一种减少分解方法计算时间的技术,分解方法是训练的一部分。此大小通过cache_size 参数控制。

我强烈建议阅读原始 libsm 论文,尤其是第 5 节。

【讨论】:

以上是关于从 scikit-learn 训练 SVC 表明使用 -h 0 可能更快?的主要内容,如果未能解决你的问题,请参考以下文章

如何获取 Scikit-learn 的 svm 中的训练误差?

从 scikit-learn SVC decision_function 预测概率,decision_function_shape='ovo'

用我自己的语料库用 scikit-learn 理解 accuracy_score?

将 scikit-learn SVM 模型转换为 LibSVM

scikit-learn 中的 SVC 和 LinearSVC 在啥参数下是等效的?

为啥带有铰链损失的 SGDClassifier 比 scikit-learn 中的 SVC 实现更快