功能:

格式: SVMSetKernelData(svm, y, x1x2)

svm : 由{SVMCreate<矩阵运算\SVMCreate>}创建的SVM对象
y   : 矩阵变量存储的样本输出值. 这里面的数值为1或者-1
x1x2: 一个列数为3的矩阵变量, 第1、2列分别存储样本索引值, 第3列存储对应核函数作用结果.

说明:
1. 设置成功返回1, 失败返回0
2. 本函数主要作用是, 对于本程序未提供的核函数, 可以先在外部计算好对应核函数数值, 然后进行设置, 进行求解即可。即可自定义核函数进行计算。
3. 假如x1x2某一行的值为[i, j, v], 那么其表示 Kernel(x[i], x[j]) = v ,这里x表示对应样本输入, Kernel为外部自己定义的核函数, 本程序里的i,j索引从1开始
4. x1x2的数值中, 必须保证Kernel(x[i], x[j])存在, 这里i = 1,2,...,n; j >=i 其中n为y的个数
5. 使用本函数设置的SVM只用于求解对应系数, 而不能直接进行预测。要预测, 直接获取优化系数后在外部进行预测。

例子:

//1. 一般会这样使用进行计算
svm = {SVMCreate<矩阵运算\SVMCreate>}();
SVMSetKernelData(svm, y, x1x2);//这里假如y, x1x2已经计算好
{SVMSetPenalty<矩阵运算\SVMSetPenalty>}(svm, 1e4);
{SVMSolve<矩阵运算\SVMSolve>}(svm);

//2. 训练好后取出对应参数a, b, 这里a,b对应核优化中的变量
[a, b] = {SVMGetParam<矩阵运算\SVMGetParam>}(svm);