Я пытаюсь построить модель предсказания с SVM на довольно несбалансированных данных. Мои метки / выходные данные имеют три класса, положительный, нейтральный и отрицательный. Я бы сказал, что положительный пример составляет около 10–20% моих данных, нейтральный - около 50–60%, а отрицательный - около 30–40%. Я пытаюсь сбалансировать классы, поскольку стоимость, связанная с неправильными прогнозами среди классов, не одинакова. Одним из методов была повторная выборка обучающих данных и создание одинаково сбалансированного набора данных, который был больше исходного. Интересно, что когда я это делаю, я склонен получать более точные прогнозы для другого класса (например, когда я уравновешивал данные, я увеличивал количество примеров для положительного класса, но в случае выборочных прогнозов отрицательный класс работал лучше). Кто-нибудь может объяснить вообще, почему это происходит? Если бы я увеличил число примеров для отрицательного класса, получу ли я что-то подобное для положительного класса из выборочных прогнозов (например, более качественных прогнозов)?
Также очень открыты для других мыслей о том, как я могу справиться с несбалансированными данными либо путем введения различных затрат на неправильную классификацию, либо с использованием весов классов в LibSVM (хотя не знаю, как правильно их выбрать / настроить).