Estoy usando la herramienta libsvm ( http://www.csie.ntu.edu.tw/~cjlin/libsvm/ ) para la clasificación de vectores de soporte. Sin embargo, estoy confundido sobre el formato de los datos de entrada.
Desde el archivo Léame:
El formato del archivo de datos de entrenamiento y prueba es:
<label> <index1>:<value1> <index2>:<value2> ... . . .
Cada línea contiene una instancia y termina con un carácter '\ n'. Para la clasificación,
<label>
es un número entero que indica la etiqueta de la clase (admite varias clases). Para la regresión,<label>
es el valor objetivo que puede ser cualquier número real. Para SVM de una clase, no se usa, por lo que puede ser cualquier número. El par<index>:<value>
proporciona un valor de característica (atributo):<index>
es un número entero que comienza en 1 y<value>
es un número real. La única excepción es el núcleo precalculado, donde<index>
comienza desde 0; vea la sección de núcleos precalculados. Los índices deben estar en orden ASCENDENTE. Las etiquetas en el archivo de prueba solo se utilizan para calcular la precisión o los errores. Si no se conocen, simplemente complete la primera columna con cualquier número.
Tengo las siguientes preguntas:
- ¿De qué sirve el
<index>
? ¿Para qué sirve? - ¿Existe una correspondencia entre los mismos valores de índice de diferentes instancias de datos?
- ¿Qué sucede si pierdo / omito un índice intermedio?
Pregunto porque el archivo de datos * heart_scale * que se incluye en el paquete para libsvm, en la línea 12, el índice comienza desde 2. ¿ <value>
Se toma como desconocido para el índice 1? Nota: la herramienta tools / checkdata.py proporcionada con el paquete dice que el archivo * heart_scale * es correcto.