Странное явление с SVM: негативные примеры оцениваются выше

Я использую VL-Feat и LIBLINEAR для классификации двух категорий. #(-)/#(+) для обучающего набора составляет 35,01, а размерность каждого вектора признаков составляет 3,6e5. У меня около 15000 примеров.

Я установил вес положительных примеров равным 35,01, а отрицательных примеров равным 1 по умолчанию. Но я получаю крайне низкую производительность на тестовом наборе данных.

Поэтому, чтобы выяснить причину, я поставил обучающие примеры в качестве входных данных. Что я вижу, так это то, что отрицательные примеры получают несколько более высокие значения решения, чем положительные. Это действительно странно, правда? Я проверил ввод, чтобы убедиться, что не ошибся с примерами. Я выполнил нормализацию векторов гистограммы.

Кто-нибудь встречал эту ситуацию раньше?

Вот параметры обученной модели. Я могу чувствовать себя странно в отношении таких параметров, как смещение, регуляризатор и двойственность Gap, потому что они настолько малы, что могут легко потерять точность.

model.info = 
            solver: 'sdca'
            lambda: 0.0100
    biasMultiplier: 1
              bias: -1.6573e-14
         objective: 1.9439
       regularizer: 6.1651e-04
              loss: 1.9432
     dualObjective: 1.9439
          dualLoss: 1.9445
        dualityGap: -2.6645e-15
         iteration: 43868
             epoch: 2
       elapsedTime: 228.9374

person Peiyun    schedule 23.01.2014    source источник


Ответы (1)


Одна вещь, которая может произойти, заключается в том, что LIBSVM принимает первый пример в наборе данных как положительный класс, а отрицательный класс — тот, который не является первым примером в наборе данных. Так что может случиться так, что, поскольку у вас в 35 раз больше отрицательных, чем положительных, ваш первый пример отрицательный, и ваши классы инвертируются. Как это проверить? Убедитесь, что первая точка данных в обучающем наборе относится к положительному классу.

Я проверил часто задаваемые вопросы LIBLINEAR, и кажется, что это происходит и в LIBLINEAR (я не так хорошо знаком с LIBLINEAR): http://www.csie.ntu.edu.tw/~cjlin/liblinear/FAQ.html (ищите наоборот)

person carlosdc    schedule 24.01.2014