Saya pikir Anda mencoba memulai dari akhir yang buruk. Apa yang harus diketahui tentang SVM untuk menggunakannya adalah hanya bahwa algoritma ini menemukan hyperplane di hyperspace atribut yang memisahkan dua kelas terbaik, di mana cara terbaik dengan margin terbesar di antara kelas (pengetahuan bagaimana hal itu dilakukan adalah musuh Anda di sini, karena itu mengaburkan gambar keseluruhan), seperti yang diilustrasikan oleh gambar terkenal seperti ini:
Sekarang, ada beberapa masalah yang tersisa.
Pertama-tama, apa yang harus dilakukan dengan outlier jahat yang berbaring tanpa malu di tengah awan titik-titik kelas yang berbeda?
Untuk tujuan ini, kami mengizinkan pengoptimal untuk membiarkan sampel tertentu salah dimasukkan, namun menghukum masing-masing contoh tersebut. Untuk menghindari opimisasi multi-tujuan, hukuman untuk kasus mislabelled digabung dengan ukuran margin dengan menggunakan parameter C tambahan yang mengontrol keseimbangan di antara tujuan tersebut.
Selanjutnya, kadang-kadang masalahnya tidak linier dan tidak ada hyperplane yang baik dapat ditemukan. Di sini, kami memperkenalkan trik kernel - kami hanya memproyeksikan ruang asli, nonlinier ke dimensi yang lebih tinggi dengan beberapa transformasi nonlinier, tentu saja ditentukan oleh sekelompok parameter tambahan, berharap bahwa di ruang yang dihasilkan masalah akan cocok untuk dataran SVM:
Sekali lagi, dengan beberapa matematika dan kita dapat melihat bahwa seluruh prosedur transformasi ini dapat disembunyikan secara elegan dengan memodifikasi fungsi tujuan dengan mengganti produk titik dari objek dengan apa yang disebut fungsi kernel.
Akhirnya, ini semua berfungsi untuk 2 kelas, dan Anda memiliki 3; apa yang harus dilakukan dengan itu Di sini kita membuat 3 pengklasifikasi 2-kelas (duduk - tidak duduk, berdiri - tidak berdiri, berjalan - tidak berjalan) dan dalam klasifikasi menggabungkan mereka dengan pemungutan suara.
Ok, jadi masalah tampaknya terpecahkan, tetapi kita harus memilih kernel (di sini kita berkonsultasi dengan intuisi kita dan memilih RBF) dan memasukkan setidaknya beberapa parameter (C + kernel). Dan kita harus memiliki fungsi obyektif yang aman untuknya, misalnya perkiraan kesalahan dari validasi silang. Jadi kami membiarkan komputer bekerja pada itu, pergi untuk minum kopi, kembali dan melihat bahwa ada beberapa parameter optimal. Bagus! Sekarang kita baru saja mulai validasi silang bersarang untuk mendapatkan aproksimasi kesalahan dan voila.
Alur kerja singkat ini tentu saja terlalu disederhanakan untuk sepenuhnya benar, tetapi menunjukkan alasan mengapa saya pikir Anda harus terlebih dahulu mencoba dengan hutan acak , yang hampir parameter-independen, multiclass asli, memberikan perkiraan kesalahan yang tidak bias dan melakukan hampir sama baiknya serta dilengkapi SVM .