Популярним підходом до вирішення проблем дисбалансу класу є зміщення класифікатора, щоб він приділяв більше уваги позитивним випадкам. Це можна зробити, наприклад, шляхом збільшення штрафу, пов’язаного з неправильною класифікацією позитивного класу щодо негативного класу. Інший підхід полягає в попередній обробці даних шляхом пересистемизації мажоритарного класу або недосимплексації класу меншості з метою створення збалансованого набору даних.
Однак у вашому випадку незбалансованість класів не здається проблемою. Можливо, це питання налаштування параметрів, оскільки пошук оптимальних параметрів для класифікатора SVM може бути досить втомливим процесом. Наприклад, в ядрі RBF є два параметри:С і γ. Заздалегідь невідомо, якийС і γнайкращі для даної проблеми; отже, слід зробити якийсь вибір моделі (пошук параметрів).
На етапі попередньої обробки даних пам’ятайте, що SVM вимагає, щоб кожен екземпляр даних був представлений як вектор реальних чисел. Отже, якщо є категоричні атрибути, рекомендується перетворювати їх у числові дані, використовуючи m числа для представлення атрибуту m-категорії (або замінюючи його новими m бінарними змінними).
Також масштабування змінних перед застосуванням SVM має вирішальне значення, щоб уникнути атрибутів у більших числових діапазонах, що домінують над меншими діапазонами чисел.
Ознайомтеся з цим документом .
Якщо ви працюєте в R, перевірте функцію настройки (пакет e1071), щоб настроїти гіперпараметри за допомогою пошуку в сітці за наданими діапазонами параметрів. Потім, використовуючи plot.tune , ви зможете візуально побачити, який набір значень дає менший показник помилок.
Існує ярлик навколо пошуку трудомістких параметрів. Існує пакет R під назвою "svmpath", який обчислює весь шлях регуляризації для 2-класового класифікатора SVM за один раз. Ось посилання на документ, що описує, що він робить.
PS Ви також можете вважати цей документ цікавим: Отримання каліброваних оцінок ймовірностей