cache_size 对 SVC 处理时间的影响

And*_*y S 6 performance scikit-learn

我已经完成了交叉验证的 SVC 分析。阅读 svc 的 scikit-learn 文档,我看到了这一点:

“内核缓存大小:对于 SVC、SVR、nuSVC 和 NuSVR,内核缓存的大小对较大问题的运行时间有很大影响。如果您有足够的可用 RAM,建议将 cache_size 设置为比默认为 200(MB),例如 500(MB) 或 1000(MB)。”

http://scikit-learn.org/stable/modules/svm.html

因此,我多次重新运行分析,并使用几个不同的 cache_size 值(50、100、200、800、1200、2000、4000、8000)对结果进行计时。

我的完整分析在cache_size低于2000时大约需要11.2秒,当cache_size大于2000时时间跳到40秒。

分析在具有 16 GB 内存的现代计算机上进行。

我想知道是否有人知道为什么对于低于 2000 的任何缓存值,处理时间根本不会改变,以及为什么处理时间会随着值的增加而变。同样,计算机有 16 GB 内存,并且在任何 cache_size 值下都没有出现任何速度减慢的迹象。

谢谢大家的想法。

dol*_*hin 5

您注意到缓存 > 2000 MB 的速度下降可能是此错误的结果:https://github.com/scikit-learn/scikit-learn/issues/8012(有符号的 32 位整数溢出)。