Я використовую інструмент libsvm ( http://www.csie.ntu.edu.tw/~cjlin/libsvm/ ) для класифікації вектора підтримки. Однак я збентежений щодо формату вхідних даних.
З ПРОЧИТАННЯ:
Формат файлу даних про навчання та тестування:
<label> <index1>:<value1> <index2>:<value2> ... . . .
Кожен рядок містить екземпляр і закінчується символом '\ n'. Для класифікації
<label>
- це ціле число, що вказує мітку класу (підтримується багатокласний). Для регресії<label>
- цільове значення, яке може бути будь-яким реальним числом. Для однокласного SVM він не використовується, тому може бути будь-яке число. Пара<index>:<value>
дає значення (атрибут) значення:<index>
це ціле число, починаючи з 1 і<value>
є реальним числом. Єдиний виняток - попередньо обчислене ядро, яке<index>
починається від 0; див. розділ попередньо обчислених ядер. Індекси повинні бути в порядку ЗБОРУВАННЯ. Мітки у файлі тестування використовуються лише для обчислення точності або помилок. Якщо вони невідомі, просто заповніть перший стовпець будь-якими цифрами.
У мене є такі питання:
- Яке використання
<index>
? Якій цілі він служить? - Чи існує відповідність між однаковими значеннями індексу різних примірників даних?
- Що робити, якщо пропустити / пропустити індекс між ними?
Я запитую, тому що файл даних * heart_scale *, який входить до пакету для libsvm, у рядку 12, індекс починається від 2. Чи є <value>
для індексу 1 прийнятим / невідомим? Примітка: інструмент / checkdata.py, що постачається з пакетом, говорить про те, що файл * heart_scale * правильний.