错误 - 使用Scikit -Learn中的SVM自定义内核



我创建了一个具有我自己定义的内核函数的SVM实例。当我尝试在创建模型上运行交叉验证时,我会收到以下错误:

valueerror:x应该是一个方形内核矩阵
追溯:

scores = cross_val_score(型号,x,y,cv = 10)

文件" c: python27 lib site-packages scikit_learn-0.14.1-py2.7-win32.egg sklearn cross_validation.py",第1152行,in Cross_val_score
对于火车,在CV)中进行测试

文件" C: Python27 lib lib site-packages scikit_learn-0.14.1-py2.7-win32.egg sklearn external externals joblib parally.py",第517行

self.dispatch(功能,args,kwargs)

文件" C: Python27 lib lib site-packages scikit_learn-0.14.1-py2.7-win32.egg sklearn externals externals joblib parally.py",第312行,在dispatch



job = aggioneapply(func,args,kwargs)

文件" C: Python27 lib lib site-packages scikit_learn-0.14.1-py2.7- win32.egg sklearn external externals joblib parally.py",第136行

self.results = func(*args,** kwargs)

文件" c: python27 lib lib site-packages scikit_learn-0.14.1-py2.7-win32.egg sklearn cross_validation.py",第1047行,in _CROSS_VAL_SCORE





提高价值Error(" X应该是平方内核矩阵")

这是我的代码:

def hist_intersection(x, y):
    return np.sum(np.array([min(xi,yi) for xi,yi in zip(x,y)]))
model = svm.SVC(kernel = hist_intersection)
scores = cross_val_score(model, X, y, cv=10)

我有一个快速的外观,而SVC类(和交叉验证工具)似乎都希望内核可呼叫物一次从Full-Data矩阵中立即计算整个内核矩阵(这使得我同意此功能非常有限)。请查看测试以获取更多详细信息:

https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/svm/svm/tests/testrongvm.py#l124

相关内容

  • 没有找到相关文章

最新更新