Існує маса методів багатокласової класифікації. Два класичні варіанти, які не є специфічними для SVM:
Класифікація "Один проти всіх" (ОВА):
Припустимо, у вас класи A, B, C та D. Замість того, щоб робити чотиристоронні класифікації, підготуйте чотири двійкові класифікатори: A проти не-A, B проти не-B , C проти не-C, і D проти не-D. Потім виберіть будь-який позитивний клас, який є "найкращим" (наприклад, найдаліший від поля на всіх чотирьох пробігах). Якщо жодна з класифікацій не є позитивною (тобто всі вони не є X), виберіть «протилежний» клас, який є найгіршим (наприклад, найближчим до поля).
Усі проти всіх:
Тренуйте всі можливі пари класифікацій. Класуйте класи за деяким фактором (наприклад, кількість вибраних разів) та виберіть найкращий.
Найкраще, що найкраще працює, було суперечливим:
Дуан та Керті провели емпіричне дослідження, яке передбачає конкретний метод "все проти всіх", тоді як Ріфкін і Клаутау стверджують, що існує схема "проти всіх". Існують навіть схеми, де замість самих міток навчаються коди з виправленням помилок, що описують мітки класу.
Удачі!
Редагувати: Чому ви дійсно хочете, особливо для OVA, це задня ймовірність кожного класу. Для деяких методів, як, наприклад, Наївний Байєс, це неприємно. SVM, як правило, не надають вам ймовірностей, але існують способи їх обчислення. Дивіться статтю Джона Платта 1999 року "Імовірнісні результати для векторних машин підтримки ..."
classes
в коді? Це здається марним.