在 Python 上使用 OpenCV 选择最佳 SVM 内核类型和参数
Choosing the best SVM kernel type and parameters using OpenCV on Python
我正在尝试找到更适合我的数据的 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)
...
我正在尝试找到更适合我的数据的 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)
...