J'utilise l'outil libsvm ( http://www.csie.ntu.edu.tw/~cjlin/libsvm/ ) pour prendre en charge la classification des vecteurs. Cependant, je suis confus quant au format des données d'entrée.
Du README:
Le format du fichier de données de formation et de test est:
<label> <index1>:<value1> <index2>:<value2> ... . . .
Chaque ligne contient une instance et se termine par un caractère '\ n'. Pour la classification,
<label>
est un entier indiquant le libellé de la classe (plusieurs classes sont prises en charge). Pour la régression,<label>
est la valeur cible qui peut être n'importe quel nombre réel. Pour le SVM à une classe, il n'est pas utilisé, il peut donc être n'importe quel nombre. La paire<index>:<value>
donne une valeur de caractéristique (attribut):<index>
est un entier à partir de 1 et<value>
est un nombre réel. La seule exception est le noyau précalculé, où<index>
commence à partir de 0; voir la section des noyaux précalculés. Les indices doivent être dans l'ordre ASCENDANT. Les étiquettes du fichier de test ne sont utilisées que pour calculer la précision ou les erreurs. S'ils sont inconnus, remplissez simplement la première colonne de n'importe quel nombre.
J'ai les questions suivantes:
- À quoi sert le
<index>
? A quoi est-ce que ça sert? - Existe-t-il une correspondance entre les mêmes valeurs d'index de différentes instances de données?
- Et si je manque / saute un index entre les deux?
Je demande parce que le fichier de données * heart_scale * qui est inclus dans le paquet pour libsvm, à la ligne 12, l'index commence à partir de 2. L' <value>
index 1 est-il pris comme inconnu / manquant? Remarque: l'outil tools / checkdata.py fourni avec le package indique que le fichier * heart_scale * est correct.