Я использую 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