我正在使用 libsvm ( http://www.csie.ntu.edu.tw/~cjlin/libsvm/ ) 工具进行支持向量分类。但是,我对输入数据的格式感到困惑。
从自述文件:
训练和测试数据文件格式为:
<label> <index1>:<value1> <index2>:<value2> ... . . .
每行包含一个实例,并以“\n”字符结尾。对于分类,
<label>
是一个表示类标签的整数(支持多类)。对于回归,<label>
是可以是任何实数的目标值。对于一类 SVM,它没有被使用,所以可以是任何数字。该对<index>:<value>
给出一个特征(属性)值:<index>
是一个从 1 开始的整数,<value>
是一个实数。唯一的例外是预计算内核,<index>
从 0 开始;请参阅预计算内核部分。指数必须按升序排列。测试文件中的标签仅用于计算准确性或错误。如果它们未知,只需在第一列中填写任意数字即可。
我有以下问题:
- 有什么用
<index>
?它的用途是什么? - 不同数据实例的相同索引值之间是否存在对应关系?
- 如果我错过/跳过两者之间的索引怎么办?
我问是因为 libsvm 包中包含的数据文件 *heart_scale* 在第 12 行,索引从 2 开始。<value>
索引 1 是否被视为未知/缺失?注意:随包提供的 tools/checkdata.py 工具表明 *heart_scale* 文件是正确的。