Parameters LIBSVM参数选择

Parameters LIBSVM参数选择,parameters,svm,libsvm,Parameters,Svm,Libsvm,我正在开发一个系统,可以同时优化支持向量机(LIBSVM工具箱)的参数和最佳特征(输入)。我的优化技术是和声搜索或遗传算法。我在将数据插入系统(Maxmin或whitening)之前规范化了数据,所以你们知道我必须设置 -g gamma : set gamma in kernel function -c cost : set the parameter C of C-SVC, epsilon-SVR, and nu-SVR 我有一个金融数据库的二进制分类问题。除此之外,有时我会使用降维技术,

我正在开发一个系统,可以同时优化支持向量机(LIBSVM工具箱)的参数和最佳特征(输入)。我的优化技术是和声搜索或遗传算法。我在将数据插入系统(Maxmin或whitening)之前规范化了数据,所以你们知道我必须设置

-g gamma : set gamma in kernel function 
-c cost : set the parameter C of C-SVC, epsilon-SVR, and nu-SVR
我有一个金融数据库的二进制分类问题。除此之外,有时我会使用降维技术,如“PCA”和其他技术

那么,您建议的gamma和成本参数搜索间隔是多少

第二个问题:你认为我应该用我的优化技术优化LIBSVM的哪些其他参数

谢谢

PS.我的核函数是“RBF”

那么,您建议的gamma和成本参数搜索间隔是多少

基本上,您应该通过对网格单元大小进行一些有根据的猜测来进行启发式网格搜索,希望找到一个好的最优值。查看LIBSVM包中的Grid.py文件。它会给你一些关于这些值的提示。有更先进的技术可以做到这一点,但这是第一件值得尝试的事情

第二个问题:你认为我应该用我的优化技术优化LIBSVM的哪些其他参数

这取决于您选择的内核。请注意,gamma不会影响所有内核类型(例如,线性类型)。可能还有其他的事情你可以尝试调整,但从这两个开始,看看它是如何进行的

那么,您建议的gamma和成本参数搜索间隔是多少

基本上,您应该通过对网格单元大小进行一些有根据的猜测来进行启发式网格搜索,希望找到一个好的最优值。查看LIBSVM包中的Grid.py文件。它会给你一些关于这些值的提示。有更先进的技术可以做到这一点,但这是第一件值得尝试的事情

第二个问题:你认为我应该用我的优化技术优化LIBSVM的哪些其他参数



这取决于您选择的内核。请注意,gamma不会影响所有内核类型(例如,线性类型)。你可以尝试调整其他方面,但从这两个方面开始,看看它是如何进行的。

我建议你看看林博士提供的教程。除非您有非常充分的理由使用特定的内核,否则请尝试使用所有可用的内核。同样,我也会尝试使用非标准化/非标度数据进行训练/测试。请记住,这些(缩放)是启发式的,没有人知道您的需求的参数集是什么。探索一切

我建议你看看林博士提供的教程。除非您有非常充分的理由使用特定的内核,否则请尝试使用所有可用的内核。同样,我也会尝试使用非标准化/非标度数据进行训练/测试。请记住,这些(缩放)是启发式的,没有人知道您的需求的参数集是什么。探索一切

谢谢你的回答。你能简要介绍一下网格搜索吗?我对它不熟悉。在优化算法中,我应该只为每个参数间隔设置两个值(下限和上限)。谢谢。“请注意,C和/或gamma不会影响所有内核类型”看起来是个糟糕的措辞。C影响每个“内核类型”,因为它是一个SVM参数,而不是内核参数。@leilot这是真的lejlot。我应该在主要问题中提到这一点。我的核函数是“RBF”。我想我有更高的分类精度。@lejlot事实上,C是一个SVM参数。我更正了我的答案。@user2991243如果您查看Grid.py,您将看到它为gamma生成一个值数组,为C生成一个值数组,然后它尝试每个值的组合,以查看哪一对具有最佳精度。如果需要,有一个扩展允许您使用其他标准。我不知道他们是如何选择这些特定值的,但我认为它们在大多数情况下都能给出很好的结果。Andrew Ng还提供了一些关于如何在他的演讲中选择这些价值的直觉。谢谢你的回答。你能简要介绍一下网格搜索吗?我对它不熟悉。在优化算法中,我应该只为每个参数间隔设置两个值(下限和上限)。谢谢。“请注意,C和/或gamma不会影响所有内核类型”看起来是个糟糕的措辞。C影响每个“内核类型”,因为它是一个SVM参数,而不是内核参数。@leilot这是真的lejlot。我应该在主要问题中提到这一点。我的核函数是“RBF”。我想我有更高的分类精度。@lejlot事实上,C是一个SVM参数。我更正了我的答案。@user2991243如果您查看Grid.py,您将看到它为gamma生成一个值数组,为C生成一个值数组,然后它尝试每个值的组合,以查看哪一对具有最佳精度。如果需要,有一个扩展允许您使用其他标准。我不知道他们是如何选择这些特定值的,但我认为它们在大多数情况下都能给出很好的结果。Andrew Ng还提供了一些关于如何在他的演讲中选择这些价值的直觉。谢谢你的回答。我在林博士的文档中发现,他用{-2^14 2^14}表示C,但因为线性核,我们在代码中没有“RBF”的西格玛。那么您对此参数有何建议?@user2991243请尝试从10^-1到10^5,以10的倍数为单位。为什么您的范围更大?为什么没有选择[10^(-5)10^5]?另一个问题。我可以按10的倍数进行搜索。我的算法搜索这两个数字之间的所有值。正如你们所知,算法的趋势是C和Sigma的最佳组合。谢谢。@user2991243那是个打字错误。我的意思是10^5到10^5.)谢谢你的回复。我在林博士的文档中发现,他用{-2^14 2^14}表示C,但因为线性核,我们在代码中没有“RBF”的西格玛。那么您对此参数有何建议?@user2991243请尝试fr