用户可以预告计算好核心数值并将它们作为训练和测试文件输入。这样支持向量机工具包就不需要原始的训练/测试数据集了。
假设有L个训练实例,x1,…,xL。设K(x,y)为实例x与y的内核值。则输入数据格式为:
xi的新训练实例:
<label>0:I 1:K(xi,x1)…L:K(xi,xL)
x的新测试实例:
<label>0:?1:K(x,x1)…L:K(x,xL)
也就是说,在训练文件中,第一列必须是xi的“ID”。在测试实例中,?表示任意值。
包括“±0”在内的所有内核数值都必须明确给定。训练/测试文件的任何排列或随机子集都是合法的(见下面的例子)。
注意:与支持向量机工具包的早期发行版本中工具的预先计算好核心集的格式略有不同
示例:
假设原始训练数据有三个实例,每个实例有四种属性,而测试数据有一个实例:
15 1:1 2:1 3:1 4:1
45 2:3 4:3
25 3:1
15 1:1 3:1
如果使用线性核心,那么我们会得到如下的训练与测试集合:
15 0:1 1:4 2:6 3:1
45 0:2 1:6 2:18 3:0
25 0:3 1:1 2:0 3:1
15 0:? 1:2 2:0 3:1
? 表示任意值
以上训练文件中的任意子集也都是合法的。例如:
25 0:3 1:1 2:0 3:1
45 0:2 1:6 2:18 3:0
意味着核心矩阵是
[K(2,2) K(2,3)] = [18 0]
[K(3,2) K(3,3)] = [0 1]