libsvm 中的 eps 是什么?
What is `eps` in libsvm?
svm-train
可执行文件有参数 e
,允许设置一些 epsilon
。描述只说
set tolerance of termination criterion (default 0.001)
我觉得信息量不够,在网上也找不到相关的解释。也许,它是一些众所周知的通用SVM参数,但我对通用SVM还不够熟悉。
我指的是分类中使用的 epsilon,而不是回归中使用的 epsilon ("in loss function of epsilon-SVR"),并使用选项 -p
指定给 libsvm
。
SVM 的解是使用数值优化求解的。求解器是迭代的,并且可能会永远重复迭代,直到误差正好为零 - 找到问题的精确解(由于浮点舍入误差,这永远不会真正发生)。在这种情况下,epsilon
是在我们停止求解器的 运行 次迭代之前解需要接近零的容差。 0.001 通常是一个很好的值。较小的值将需要更长的时间来训练(需要更多的迭代),但不太可能导致较低的错误率,因为解决方案已经足够接近了。 0.01 也很常见,这需要更少的训练时间(更少的迭代),但有时测试数据的错误率更高,而不是更精确的解决方案。
svm-train
可执行文件有参数 e
,允许设置一些 epsilon
。描述只说
set tolerance of termination criterion (default 0.001)
我觉得信息量不够,在网上也找不到相关的解释。也许,它是一些众所周知的通用SVM参数,但我对通用SVM还不够熟悉。
我指的是分类中使用的 epsilon,而不是回归中使用的 epsilon ("in loss function of epsilon-SVR"),并使用选项 -p
指定给 libsvm
。
SVM 的解是使用数值优化求解的。求解器是迭代的,并且可能会永远重复迭代,直到误差正好为零 - 找到问题的精确解(由于浮点舍入误差,这永远不会真正发生)。在这种情况下,epsilon
是在我们停止求解器的 运行 次迭代之前解需要接近零的容差。 0.001 通常是一个很好的值。较小的值将需要更长的时间来训练(需要更多的迭代),但不太可能导致较低的错误率,因为解决方案已经足够接近了。 0.01 也很常见,这需要更少的训练时间(更少的迭代),但有时测试数据的错误率更高,而不是更精确的解决方案。