libsvm数据格式说明
关于libsvm
LibSVM是台湾林智仁(Chih-Jen Lin)教授2001年开发的一套支持向量机的库,这套库运算速度还是挺快的,可以很方便的对数据做分类或回归。由于libSVM程序小,运用灵活,输入参数少,并且是开源的,易于扩展,因此成为目前国内应用最多的SVM的库。
数据格式
[label] [index1]:[value1] [index2]:[value2] …
[label] [index1]:[value1] [index2]:[value2] …
Label 就是说 class (属于哪一类) , 就是类别的标识。你可以自己随意定,比如-10,0,15。在分类问题里通常为[0,1]或是[-1,+1]。++当然,如果是回归问题,这是目标值,就要实事求是了。++
index 是有順序的索引,通常是连续的整数。就是指特征编号,必须按照升序排列
value 就是特征值,用来 train 的数据,通常是一堆实数组成。
目标值 第一维特征编号:第一维特征值 第二维特征编号:第二维特征值 …
目标值 第一维特征编号:第一维特征值 第二维特征编号:第二维特征值 …
……
目标值 第一维特征编号:第一维特征值 第二维特征编号:第二维特征值 …
++需要注意的是,如果特征值为0,特征冒号前面的(姑且称做序号)可以不连续。++
如:-15 1:0.708 3:-0.3333
表明第2个特征值为0,从编程的角度来说,这样做可以减少内存的使用,并提高做矩阵内积时的运算速度。