【发布时间】:2014-04-15 07:27:42
【问题描述】:
我使用自己定义的内核函数创建了一个 SVM 实例。当我尝试在创建的模型上运行交叉验证时,我收到以下错误:
ValueError: X 应该是一个方核矩阵
追溯:
分数 = 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 行,在 cross_val_score
对于火车,在 cv 中测试)
调用中的文件“C:\Python27\lib\site-packages\scikit_learn-0.14.1-py2.7-win32.egg\sklearn\externals\joblib\parallel.py”,第 517 行
self.dispatch(function, args, kwargs)
文件“C:\Python27\lib\site-packages\scikit_learn-0.14.1-py2.7-win32.egg\sklearn\externals\joblib\parallel.py”,第 312 行,在调度中
job = ImmediateApply(func, args, kwargs)
init 中的文件“C:\Python27\lib\site-packages\scikit_learn-0.14.1-py2.7-win32.egg\sklearn\externals\joblib\parallel.py”,第 136 行
self.results = func(*args, **kwargs)
文件“C:\Python27\lib\site-packages\scikit_learn-0.14.1-py2.7-win32.egg\sklearn\cross_validation.py”,第 1047 行,在 _cross_val_score
raise ValueError("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)
【问题讨论】:
标签: python scikit-learn