Преобразуйте входной файл в Matlab, добавив значения или заменив и сохранив его в другой файл - PullRequest
1 голос
/ 22 февраля 2011

Я использую libsvm и хотел бы обучить некоторые данные, проблема здесь в том, что libsvm задает шаблоны ввода в специальном формате.

Позвольте быть моим файлом:

    72,0,5.6431,28.19,34.398,0.00662,3.38005,0.00401,0.00317,0.01204,0.02565,1
    58,0,5.8600,77.7 ,19.317,0.00793,6.39105,0.00379,0.00385,0.01136,0.03751,2

Где

  • последний '1' (последний столбец) в первой строке представляет класс
  • последний '2' (последний столбец) во второй строке представляет другой класс

Позвольте быть форматом, который запрашивает libsvm (взят из файла примера heart_scale):

+1 1:0.708333 2:1  3:1            4:-0.320755 5:-0.105023 6:-1 7:1   8:-0.419847 9:-1 10:-0.225806 12:1   13:-1 
-1 1:0.583333 2:-1 3:0.333333     4:-0.603774 5:1         6:-1 7:1   8:0.358779  9:-1 10:-0.483871 12:-1  13:1 
+1 1:0.166667 2:1  3:-0.333333    4:-0.433962 5:-0.383562 6:-1 7:-1  8:0.0687023 9:-1 10:-0.903226 11:-1  12:-1 13:1 

Как вы можете загрузить или поместить в libsvm формат входного файла? или же изменить последний столбец для первого ?, изменив ',' для номера столбца и ':' ?? Я забыл сказать, что для libsvm первый столбец представляет класс ...

1 Ответ

1 голос
/ 08 ноября 2013

Libsvm предоставляет код на C, который вы можете скомпилировать и использовать для простого преобразования ваших функций в формат libsvm.(ссылка для скачивания: http://www.csie.ntu.edu.tw/~cjlin/libsvm/faqfiles/convert.c) В вашем случае, однако, вы должны сначала поместить идентификатор класса (1-2) в начало каждого файла. Каждая строка входного текстового файла должна выглядеть следующим образом: 0, -6.5012, -2.874

Первое значение - это метка класса, а остальные - значения функций.

. / Convert_compiled feat.txt> svm_format_feat.txt

соответствующий выводстрока будет:

0 1: -6.501200 2: -2.874000

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...