2

我对每个部分在 svmLight 数据格式中的含义感到非常困惑。例如:

(标签/目标,[(特征,值),...],查询ID)

标签是否表示数据的排名,而queryid是对象的id?

例如:对于以下项目:

2 qid:1 1:4.000000 2:2.772589 3:0.266667 4:0.258154 5:37.330565 6:11.431241 7:37.307017 8:1.213630 9:21.342267 10:10.842279 11:15.634736 12:2.749495 13:-39.467448 14:-37.791635 15: -38.002289 16:14.000000 17:5.634790 18:0.063927 19:0.063290 20:28.303065 21:9.340024 22:24.809801 23:0.231553 24:52.396216 25:1.692954 26:16.619600 27:2.810583 28:-45.733775 29:-44.612550 30:-44.823263 31:18.000000 32:6.579251 33:0.076923 34:0.076079 35:27.701632 36:9.139690 37:23.819476 38:0.277200 39:67.283604 40:1.847508 41:19.559974 42:2.973485 43:-44.687666 44:-43.467574 45:-43.302044 #docid = 346319

2 是否表示对象的等级/目标值?那么qid或docid对文件意味着什么?

谢谢!

4

1 回答 1

3

领先的数字确实是这个对象的“目标”。该qid:1部分用于约束此类对象之间的成对差异。,docid或者更确切地说,final 之后的所有内容#都是一个信息字符串,

可用于向内核传递附加信息(例如非特征向量数据)

来源)。

每个对象的一般格式在官方来源中给出,在“如何使用”标题下:

<line> .=. <target> <feature>:<value> <feature>:<value> ... <feature>:<value> # <info>
<target> .=. +1 | -1 | 0 | <float> 
<feature> .=. <integer> | "qid"
<value> .=. <float>
<info> .=. <string> 

请注意您指定的格式

(label/target, [(feature, value), ...], queryid)

pysvmlight的,它是一个 Python 绑定到由 Thorsten Joachims 制作的 SVM-Light 支持向量机库,我之前引用过。您需要编写一个解析器来将 svmlight 的原生数据文件解析为 pysvmlight 使用的格式。StackOverflow上至少有一个示例,尽管它没有考虑到qid,但是当您阅读该解析器的代码时添加它应该不会太难。

于 2016-06-02T10:49:40.013 回答