2017-02-01 2 views
0

Я использую libsvm для создания классификатора 2-классов. Я хочу, чтобы извлечь коэффициент/вес каждой функции, используемой модели, порожденную ./svm-train training.training model.modelКоэффициенты/весы из файла модели libsvm

model.model файл выглядит следующим образом:

svm_type c_svc 
kernel_type rbf 
gamma 8 
nr_class 2 
total_sv 442 
rho 21 
label 1 -1 
nr_sv 188 254 
SV 
7080.357768871263 0:0 1:0.00643 2:0.01046 3:0.00963 4:0.02777 5:0.04338 19:0.04468 
528.7111702760092 0:0 1:0.00058 3:0.00086 6:0.01158 7:0.0028 9:0.08991 13:0.0096 
... 
391.7649705739246 0:0 1:0.00055 3:0.00082 5:0.04615 7:0.06374 21:0.00374 31:0.00339 33:0.00395 38:0.16343 
... 
-564.1329424321915 0:0 1:0.00709 2:0.00384 3:0.00709 5:0.00399 9:0.01457 10:0.01244 11:0.0206 17:0.02124 20:0.00565 23:0.00846 27:0.04692 33:0.04271 35:0.02389 36:0.00859 39:0.02014 

Как я могу узнать, какие коэффициенты/веса будут использоваться svm-predict [options] test.test model.model out.out? Те из последней строки?

Благодаря, М.

ответ

2

Файл модели генерируется LIBSVM состоит, в соответствии с OFFICAL FAQ entry, следующую информацию:

В файле модели, после параметров и другой информации, таких как Этикетки, каждая строка представляет собой вектор поддержки. Поддерживаемые векторы перечислены в порядке показанных ранее «меток». (т. е. из первого класса класса сгруппированы в список «ярлыки» и т. д.). Если k - это общее количество классов, то перед опорным вектором в классе j есть k-1 коэффициенты y * alpha, где альфа - это двойное решение следующих двух задач класса: 1 vs j, 2 vs j, ..., j-1 vs j, j vs j + 1, j vs j + 2, .. ., j vs k и y = 1 в первых коэффициентах j-1, y = -1 в остальных коэффициентов kj. Например, если есть 4 класса, файл выглядит следующим образом:

+-+-+-+--------------------+ 
|1|1|1|     | 
|v|v|v| SVs from class 1 | 
|2|3|4|     | 
+-+-+-+--------------------+ 
|1|2|2|     | 
|v|v|v| SVs from class 2 | 
|2|3|4|     | 
+-+-+-+--------------------+ 
|1|2|3|     | 
|v|v|v| SVs from class 3 | 
|3|3|4|     | 
+-+-+-+--------------------+ 
|1|2|3|     | 
|v|v|v| SVs from class 4 | 
|4|4|4|     | 
+-+-+-+--------------------+ 

Существует также example как читать эти данные для того, чтобы вычислить w для бинарного классификатора.

Смежные вопросы