在Python上使用OpenCV选择最佳的SVM内核类型和参数

时间:2015-03-18 16:54:48

标签: python opencv kernel svm cross-validation

我试图找到更适合我的数据的SVM内核类型和参数。我在Python上使用OpenCV,我发现函数cv2.SVM.train_auto来实现这一点,但我没有找到一个如何使用它的明确示例。

有人可以指导我找到最好的内核或者给我一个如何使用cv2.SVM.train_auto的解释吗?

1 个答案:

答案 0 :(得分:1)

我也在查找该信息,但您可以查看digits_adjust.py示例,它使用train()代替train_auto(),并演示了如何迭代C和伽玛参数试图找到最佳组合。

有趣的功能是:

...
def cross_validate(model_class, params, samples, labels, kfold = 3, pool = None):
...
    def adjust_SVM(self):
        Cs = np.logspace(0, 10, 15, base=2)
        gammas = np.logspace(-7, 4, 15, base=2)
...
            params = dict(C = Cs[i], gamma=gammas[j])
            score = cross_validate(SVM, params, samples, labels)
...