2015-04-17 3 views
1

мне было интересно, почему libSVM дает разные результаты точности, если я предсказываю с или без вероятностей и я нашел справку на this page, который говоритlibSVM другой результат с/без вероятностей

Q: Why using svm-predict -b 0 and -b 1 gives different accuracy values? 

Let's just consider two-class classification here. After 
probability information is obtained in training, we do not have 
prob > = 0.5 if and only if decision value >= 0. 
So predictions may be different with -b 0 and 1. 

Я читал и перечитывал его десятки раз, но до сих пор этого не понимают. Может ли кто-нибудь объяснить это более четко?

ответ

3

А «нормальная» модель SVM вычисляет значение решения для каждой данной точки данных, которая в основном является расстоянием указанной точки от разделительной гиперплоскости. Все с одной стороны гиперплоскости (dec_value> = 0) прогнозируется как класс A, все с другой стороны (dec_value < 0) как класс B.

Если вы сейчас вычислите вероятности классов, то может быть точка с значением решения (например) 0,1, что сделало бы его классом A. Но вычисление вероятности для класса A может составлять 45%, а для класса B - 55%, поэтому алгоритм теперь будет прогнозировать его как B.

Возможные алгоритмы расчета вероятностей классов описаны в разделе their paper, раздел 8.

Приведенное предложение

После информации вероятности получается в процессе обучения, мы не имеем Prob> = 0,5, если и только если значение решения> = 0. Поэтому прогнозы могут быть разными -b 0 и 1.

В основном говорится: «Значение решения> = 0 не означает probA> probB или наоборот.

+0

Очень хороший ответ: спасибо! – minomic

0

Я думаю, это связано с тем, что вероятность вычисляется с использованием перекрестной проверки (at least in python, но поскольку она использует libSvm за сценой, она может ответить на ваш вопрос).

Кроме того, в документации они указывают, что эта операция перекрестной проверки может приводить к тому, что оценка вероятности не согласуется с оценками.

Излишне говорить, что кросс-валидация, связанная с масштабированием Platt, является дорогостоящей операцией для больших наборов данных. Кроме того, оценки вероятностей могут быть несовместимы с оценками, в том смысле, что «Argmax» из оценки не может быть Argmax вероятностей