Я знаю, что это было задано некоторое время назад, но я хотел бы ответить на него, поскольку вы можете найти мой ответ полезным.
Как уже упоминалось, вы можете рассмотреть возможность использования разных весов для классов меньшинства или с использованием разных штрафных санкций. Однако есть более умный способ борьбы с несбалансированными наборами данных.
Вы можете использовать поражали (S ynthetic M inority О вер дискретизации Те chnique) алгоритм для генерации синтезированных данных для класса меньшинства. Это простой алгоритм, который очень хорошо справляется с некоторыми наборами данных дисбаланса.
На каждой итерации алгоритма SMOTE рассматривает два случайных экземпляра класса меньшинства и добавляет искусственный пример того же класса где-то посередине. Алгоритм продолжает вводить набор данных с образцами до тех пор, пока два класса не станут сбалансированными или некоторые другие критерии (например, добавьте определенное количество примеров). Ниже вы можете найти изображение, описывающее алгоритм для простого набора данных в пространстве 2D-объектов.
Связанный вес с классом меньшинства является частным случаем этого алгоритма. Когда вы связываете вес $ w_i $ с экземпляром i, вы в основном добавляете дополнительные $ w_i - 1 $ экземпляры поверх экземпляра i!
Что вам нужно сделать, это увеличить свой первоначальный набор данных образцов, созданных этим алгоритмом, и обучить SVM с этим новым набором данных. Вы также можете найти множество реализаций онлайн на разных языках, таких как Python и Matlab.
Были и другие расширения этого алгоритма, я могу указать вам на большее количество материалов, если вы хотите.
Чтобы проверить классификатор, что нужно разделить набор данных в тест и поезд, добавьте синтетические экземпляры в набор поезда (не добавляйте к испытательному комплекту), натренировать модель на съемочной площадке поезда, и, наконец, проверьте его на тестовом наборе. Если вы рассматриваете сгенерированные экземпляры при тестировании, вы получите пристрастную (и смехотворно более высокую) точность и отзыв.
есть аналогичный вопрос на странице FAQ, который может помогает: Q: Мои данные несбалансированные. Может ли libsvm справиться с такими проблемами? http://www.csie.ntu.edu.tw/~cjlin/libsvm/faq.html#f410 – McKelvin