Я думаю, ти намагаєшся почати з поганого кінця. Що слід знати про SVM, щоб це використовувати, це лише те, що цей алгоритм знаходить гіперплан у гіперпросторі атрибутів, який найкраще розділяє два класи, де найкраще означає з найбільшим запасом між класами (знання про те, як це робиться, - твій ворог тут, бо це розмиває загальну картину), як це проілюстровано відомим малюнком на зразок цього:
Тепер залишилися деякі проблеми.
Перш за все, що з тими недобрими людьми безсоромно лежати в центрі хмари точок іншого класу?
З цією метою ми дозволяємо оптимізатору залишити певні зразки неправильно маркованими, але покараємо кожен із таких прикладів. Щоб уникнути мультиоб'єктивної оптимізації, штрафні санкції за неправильно розмічені випадки об'єднуються з розміром маржі з використанням додаткового параметра C, який контролює рівновагу між цими цілями.
Далі, іноді проблема просто не лінійна, і хорошої гіперплани не знайти. Тут ми вводимо хитрість ядра - ми просто проектуємо оригінальний, нелінійний простір у вищий розмірний з деяким нелінійним перетворенням, звичайно визначеним купою додаткових параметрів, сподіваючись, що в отриманому просторі проблема буде придатною для простої SVM:
Знову ж таки, з деякою математикою і ми можемо побачити, що всю цю процедуру перетворення можна елегантно приховати, змінивши цільову функцію, замінивши крапковий добуток об’єктів на так звану функцію ядра.
Нарешті, це все працює для 2 класу, а у вас є 3; що з цим робити? Тут ми створюємо 3 класи 2 класу (сидячи - не сидіти, стоячи - не стоячи, ходити - не ходити) і класифікацію поєднуємо з голосуванням.
Гаразд, такі проблеми здаються вирішеними, але нам потрібно вибрати ядро (тут ми радимося зі своєю інтуїцією та виберемо RBF) та підходимо принаймні до кількох параметрів (ядро C +). І ми повинні мати для нього надмірно безпечну цільову функцію, наприклад, наближення помилок від перехресної перевірки. Тож ми залишаємо комп’ютер, який працює над цим, йдемо на каву, повертаємось і бачимо, що є якісь оптимальні параметри. Чудово! Тепер ми просто починаємо вкладені перехресні перевірки, щоб мати наближення помилок та вуаля.
Цей короткий робочий процес, звичайно, занадто спрощений, щоб бути повністю коректним, але показує причини, які, на мою думку, слід спершу спробувати з випадковим лісом , який майже не залежить від параметрів, як правило, багатокласовий, забезпечує об'єктивну оцінку помилок і виконує майже такі ж хороші, як і добре встановлені SVM .