SVM 自定义 RBF 内核 IndexError
Posted
技术标签:
【中文标题】SVM 自定义 RBF 内核 IndexError【英文标题】:SVM custom RBF kernel IndexError 【发布时间】:2018-03-07 16:35:42 【问题描述】:我想为我的非线性可分数据实现 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: 元组索引超出范围
如何解决?
【问题讨论】:
可以打印va
和vb
的形状吗?
va 为 100x2,vb 为 100x1
【参考方案1】:
va
和 vb
的形状不匹配。它们需要具有相同的形状。
rbf kernel 的语法格式如下:
def rbf(va,vb) ,其中
va
是样本的特征,比如X,vb
是样本的特征,比如X`。
va 和 vb 不是特征和标签。
您可以查看this link on Github 以获得类似的实现。您可以看到他将所有样本对传递给 rbf 内核,而不是样本的特征和标签。转到行号。 95.
【讨论】:
以上是关于SVM 自定义 RBF 内核 IndexError的主要内容,如果未能解决你的问题,请参考以下文章