Ce înseamnă fiecare element în svmLight Format (Programare, Python, Format, Svm, Svmlight)

Chasinggoal a intrebat.

Sunt foarte confuz cu privire la ceea ce înseamnă fiecare parte într-un format de date svmLight. de exemplu:

(etichetă/țintă, [(caracteristică, valoare), …], queryid)

Eticheta înseamnă rangul datelor și queryid este id-ul obiectului?

De exemplu:pentru următorul element:

2 qid:1 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 înseamnă rangul/valoarea țintă a obiectului? Atunci ce înseamnă qid sau docid pentru fișier?

Vă mulțumim!

1 răspunsuri
Oliver W.

Numărul principal este într-adevăr „ținta” acestui obiect. Adresa qid:1 parte este utilizată în constrângerea diferenței de pereche între astfel de obiecte. La docidsau, mai degrabă, tot ceea ce urmează după finalul # este un șir de informații care

poate fi utilizat pentru a transmite informații suplimentare către kernel (de exemplu, date care nu sunt date ale vectorului de caracteristici).

(sursa).

Formatul general pentru fiecare obiect este prezentat în sursa oficială, la rubrica „How to use”:

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

Rețineți că formatul pe care îl specificați

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

este cel al pysvmlight, o legătură Python pentru biblioteca SVM-Light pentru mașini vectoriale de suport SVM-Light realizată de Thorsten Joachims, pe care am citat-o mai devreme. Va trebui să scrieți un parser pentru a analiza fișierele de date native pentru svmlight în formatul pe care îl folosește pysvmlight. Există cel puțin un exemplu pe StackOverflow, chiar dacă nu ia în considerare qid, dar nu ar trebui să fie prea dificil de adăugat atunci când citiți codul acelui parser.

Comentarii

  • Vă mulțumim! Acest lucru este foarte util! –  > Por Chasinggoal.