如何确定libsvm中最佳的C/Gamma参数?

我正在使用libsvm对具有大量特征/属性(每个项目约5800个)的数据集进行多类分类。我希望选择比我目前使用的默认值更好的C和Gamma参数。

我已经尝试运行easy.py,但对于我使用的数据集,估计的时间几乎是无限的(在20、50、100和200个数据样本上运行easy.py,得到了一个超线性回归,预测我需要的运行时间将以年计算)。

有没有办法比默认值更快地找到更好的C和Gamma值?我使用的是Java库,如果这有什么不同的话。


回答:

这是可以不通过网格搜索来实现的,我认为easy.py就是这样做的。

看看Trevor Hastie等人发表的这篇论文:支持向量机的整个正则化路径(PDF)。一次”SVM运行”可以一次性计算所有”C”值的损失,因此您可以看到它如何影响您的SVM性能。

他们有一个这个算法的实现,您可以通过R中的svmpath包来使用。

我认为该算法的核心是用Fortran编写的,但被包装在R中。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注