我正在尝试使用接受 3 个参数的自定义内核,以及 sk-learn 中的 SVM:
def k_gaussian(_x1, _x2, _sigma):
normsq = np.square(np.linalg.norm(_x1-_x2))
return np.exp(- normsq/(2 * np.square(sigma)))
根据文档,自定义内核必须只有两个参数,svm.SVC类将使用给定的输入数据自动处理。我们被告知以如下形式传递自定义内核:
clf = svm.SVC(kernel=my_kernel)
但是,我正在处理一项任务,该任务要求我们对不同值的 SVM 性能进行实验_sigma。
在这种情况下,我怎样才能做到这一点?我可以传递类似的东西吗?:
clf = svm.SVC(kernel=k_gaussian(_sigma=2))
装饰器之类的东西会在这里帮助我吗?