2016-06-01 15 views
1

Ich bin sehr verwirrt darüber, was jedes Teil in einem SvmLight-Datenformat bedeutet. Zum Beispiel:Was bedeutet jedes Element in SVMLight Format

(Label/Ziel, [(Merkmal, Wert), ...], queryid)

Hat bedeutet, dass das Etikett der Rang der Daten und queryid die ID des Objekts?

Zum Beispiel: für folgende Artikel:

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: 10842279 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

Bedeutet 2 den Rang/den Zielwert des Objekts? Was bedeutet qid oder docid für die Datei?

Vielen Dank!

Antwort

0

Die führende Nummer ist in der Tat das "Ziel" dieses Objekts. Der qid:1 Teil wird verwendet, um die paarweise Differenz zwischen solchen Objekten zu beschränken. Das docid oder vielmehr alles nach den letzten # ist ein Info-String,

kann zusätzliche Informationen zum Kernel (zum Beispiel nicht Merkmalsvektordaten)

(source) zu übergeben verwendet werden.

Das allgemeine Format für jedes Objekt in der offiziellen Quelle angegeben wird, unter der Überschrift "How to use":

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

Beachten Sie, dass das Format geben Sie

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

dass die pysvmlight sind , eine Python-Bindung an die von Thorsten Joachims zitierte SVM-Light-Support-Vektor-Maschinenbibliothek, die ich bereits zitiert habe. Sie müssen einen Parser schreiben, um die nativen Datendateien von svmlight in das von pysvmlight verwendete Format zu zerlegen. Es gibt mindestens one example auf StackOverflow, obwohl es die qid nicht berücksichtigt, aber es sollte nicht zu schwierig sein, hinzuzufügen, wenn Sie diesen Parser-Code lesen.

+0

Vielen Dank! Das ist sehr hilfreich! – Chasinggoal