SVM自定义RBF内核IndexError

时间:2017-09-26 12:32:26

标签: python numpy machine-learning scikit-learn svm

我想为我的非线性可分数据实现SVM RBF内核。我将我的内核定义为:

def rbf(va, vb):
    gamma = 0.7
    return exp(-gamma * linalg.norm(va - vb) ** 2)
clf = svm.SVC(kernel=rbf)
clf.fit(va, vb)

显示错误:

  

如果X.shape [0]!= X.shape [1]:   IndexError:元组索引超出范围

如何解决?

1 个答案:

答案 0 :(得分:1)

vavb的形状不匹配。它们需要具有相同的形状。 rbf内核的语法应该是以下形式:

  

def rbf(va,vb),其中va是样本的特征,比如说X和vb是样本说X`的特征。

va和vb不是功能和标签。

您可以检查this link on Github是否有类似的实施方式。您可以看到他将所有样本对传递给rbf内核,而不是样本的特征和标签。去行号。 95.