我试图找到更适合我的数据的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/