【发布时间】:2014-05-08 02:01:28
【问题描述】:
我需要在sklearn 中实现一个自定义内核。
这将是一个自定义线性内核:
def my_kernel(x, y):
return np.dot(x, y.T)
但是我在做 RBF 内核之类的事情时遇到了麻烦。是否可以在 sklearn 自定义内核中做到这一点?
我试过这个:
def my_kernel(x, y):
gamma = 0.01
return np.exp((gamma* np.power(np.linalg.norm(x-y),2)))`
但是没有用。
(我知道有RBF的预实现,但是需要手动实现,因为需要添加一些参数)
【问题讨论】:
-
您在 gamma 之前缺少减号。查看正态分布方程。
-
试过了,同样的问题
-
另外,内核函数应该使用 MATRIX X 和 MATRIX Y 并返回内核值的 MATRIX(gram 矩阵),而不仅仅是一个元素。
-
“但是没有用。”为了获得更多帮助,我们必须知道 what 没有工作 - 它没有执行,没有产生预期的行为,预期的行为是什么。正如@lennon310 提到的——文档中有一个很好的例子。你试过吗?什么不起作用?
标签: python machine-learning scikit-learn kernel svm