Liblinear требует того же формата ввода, что и LibSVM.И, из их файла README,
Формат файла данных обучения и тестирования:
<label> <index1>:<value1> <index2>:<value2> ...
Каждая строка содержит экземпляр и заканчиваетсясимвол \ nДля классификации <label>
является целым числом, обозначающим метку класса (поддерживается мультикласс).Для регрессии <label>
является целевым значением, которое может быть любым действительным числом.Для одноклассного SVM он не используется, поэтому может быть любым числом.Пара <index>:<value>
дает значение признака (атрибута): <index>
- целое число, начинающееся с 1, а <value>
- действительное число.Единственным исключением является предварительно вычисленное ядро, где <index>
начинается с 0;см. раздел предварительно вычисленных ядер.Индексы должны быть в порядке возрастания.
Поскольку у нас нет всего файла, лучший ответ, который мы можем предоставить, - убедиться, что все эти инструкции выполняются.Например, там нет табуляции вместо пробела, нет \ r \ n вместо \ n и т. Д. Хороший способ отладки состоит в том, чтобы взять несколько строк и продолжать добавлять, пока не появится ошибка.
head -10 <yourfile> > tmp10
head -20 <yourfile> > tmp20
и т. Д.И посмотрите, где всплывает ошибка.