现在要用SVM来做辨识
他要喂的资料有点麻烦
是这样的
Label ATTR1 ATTR2 ATTR3 ...
1 1:0 2:0.5 3:0.4 ... <- index:value
2
3
...
也就是我会需要
一个 int -> 纪录label数量
一个 int[] -> 纪录label对应顺序
一个 double[][] -> 纪录每个label对应的attr(index:value)
前两个没什么问题,在第三个不太晓得要怎么实作
使用
Vector vx = new Vector();
svm_node[] x = new svm_node[3];
x[0] = new svm_node();
x[0].index = color_r;
x[0].value = 15.0;
x[1] = new svm_node();
x[1].index = color_g;
x[1].value = 163.0;
x[2] = new svm_node();
x[2].index = color_b;
x[2].value = 15.0;
vx.addElement(x);
x[0].value = 255.0;
x[1].value = 42.0;
x[2].value = 0.0;
vx.addElement(x);
这样的话,会变成原本15,163,15那组不见了,变成两组都是255,42,0
我在http://www.interinfo.com.tw/edoc/ch20/frontline.htm
看到的意思,认为他是推叠上去的,但实作起来又会被盖掉
还请各位大大指导一下以纠正错误的观念,非常感谢!
参考的是这篇
http://function1122.blogspot.tw/2011/01/javalibsvm-144.html