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

标签 python opencv kernel svm cross-validation

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

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

最佳答案

我也在寻找该信息,但您可以查看 digits_adjust.py例如,它使用 train() 而不是 train_auto() 并展示了如何迭代 C 和 gamma 参数以尝试找到最佳组合。

有趣的函数是:

...
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)
...

关于python - 在 Python 上使用 OpenCV 选择最佳 SVM 内核类型和参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29128074/

相关文章:

python - 将键添加到字典列表中

c++ - OpenCV 1.x 后端

kernel - 构建核心图像最小图像时如何运行Yocto的ksize.py工具?

linux - 使用 distcc 编译内核以创建 debian 包

python - 在 Python 中使用大字典优化性能

Python 和 opencv : how do I convert the ALL of the background of this image to one colour or transparent

python - 内置函数 sum 对 sum(list, []) 有什么作用?

c++ - findHomography 在 OpenCV 3.0 中不起作用

ios - 保存高质量图像,进行实时处理——什么是最好的方法?

c - VDSO(7) 和 SYSCALL(2) 之间有什么关系?