SVM, interaksi variabel dan data pelatihan sesuai

12

Saya punya 2 pertanyaan teoretis umum / lebih.

1) Saya ingin tahu bagaimana SVM menangani interaksi variabel ketika membangun model prediksi. Misalnya, jika saya memiliki dua fitur f1 dan f2 dan target tergantung pada f1, f2, dan katakan f1 * f2 (atau beberapa fungsi h (f1, f2)), apakah SVM cocok (tidak hanya pada OOS tetapi bahkan pada data pelatihan) meningkatkan ketika menyertakan f1, f2 dan h (f1, f2) dalam fitur lebih dari hanya termasuk f1 dan f2? Apakah algoritma SVM berurusan dengan interaksi fitur? Sepertinya itu akan dengan bagaimana SVM mencoba membuat hyperplanes di ruang dimensi yang lebih tinggi, tetapi tidak yakin ingin bertanya.

2) Saat memasang SVM pada data pelatihan, diberikan fitur yang cukup dan menemukan parameter optimal (melalui pencarian brute force atau apa pun), akankah SVM selalu sepele sesuai dengan data pelatihan? Tidak yakin apakah saya mengatakan itu dengan benar, tetapi pada dasarnya, jika ada varians / noise yang cukup dalam fitur, akankah SVM selalu sesuai dengan data pelatihan 100%? Sebaliknya, jika SVM tidak sesuai dengan data pelatihan 100%, apakah itu berarti ada beberapa informasi (atau fitur lain) yang mempengaruhi variabel target yang tidak ditangkap dalam data?

Terima kasih

Klarifikasi kecil. Saya mengacu pada kernel SVM secara khusus

tomas
sumber

Jawaban:

8

Seperti yang disarankan oleh highBandwidth, itu tergantung apakah Anda menggunakan SVM linier atau non-linear (menjadi pedantic jika kernel tidak digunakan, itu adalah klasifikasi linear margin maksimal daripada SVM).

Klasifikasi linear margin maksimal tidak berbeda dari classifier linier lain dalam hal jika proses menghasilkan data berarti bahwa ada interaksi antara atribut, maka menyediakan istilah interaksi tersebut kemungkinan akan meningkatkan kinerja. Klasifikasi linear margin maksimal agak seperti regresi ridge, dengan sedikit perbedaan dalam jangka waktu penalti yang dirancang untuk menghindari overfitting (diberikan nilai yang sesuai untuk parameter regularisasi), dan dalam kebanyakan kasus regresi ridge dan classifier margin maksimal akan memberikan kinerja yang sama.

Jika Anda berpikir bahwa istilah interaksi cenderung penting, maka Anda dapat memperkenalkannya ke dalam ruang fitur SVM dengan menggunakan kernel polinomial , yang akan memberikan ruang fitur di mana setiap sumbu mewakili monomial pesanan atau kurang, parameter mempengaruhi bobot relatif monomial pesanan berbeda. Jadi SVM dengan kernel polinomial sama dengan menyesuaikan model polinomial dalam ruang atribut, yang secara implisit menggabungkan interaksi tersebut. d cK(x,x)=(xx+c)ddc

Dengan cukup fitur, setiap classifier linier dapat dengan mudah menyesuaikan data. IIRC dan poin dalam "posisi umum" dalam ruang dimensi dapat dihancurkan (dipisahkan dengan cara sewenang-wenang) oleh hyper-plane (cf VC dimensional). Melakukan hal ini umumnya akan mengakibatkan pemasangan berlebihan yang parah, dan karenanya harus dihindari. Maksud dari klasifikasi margin maksimal adalah untuk membatasi over-fitting ini dengan menambahkan hukuman yang berarti bahwa pemisahan terbesar yang mungkin dicapai (yang akan membutuhkan penyimpangan terbesar dari contoh pelatihan untuk menghasilkan kesalahan klasifikasi). Ini berarti Anda dapat mengubah data menjadi ruang dimensi yang sangat tinggi (di mana model linier sangat kuat) tanpa menimbulkan terlalu banyak pemasangan.n - 1nn1

Perhatikan bahwa beberapa kernel memunculkan ruang fitur dimensi yang tak terbatas, di mana klasifikasi "sepele" dijamin dimungkinkan untuk setiap sampel pelatihan terbatas di posisi umum. Sebagai contoh, kernel fungsi basis radial, , di mana ruang fitur adalah ortant positif dari hypersphere dimensi tak terbatas. Kernel semacam itu menjadikan SVM sebagai aproksimasi universal, yang pada dasarnya dapat mewakili setiap batas keputusan.K(x,x)=expγxx2

Namun ini hanya sebagian dari cerita. Dalam praktiknya, kami biasanya menggunakan SVM soft-margin, di mana batasan margin diizinkan untuk dilanggar, dan ada parameter regularisasi yang mengontrol pertukaran antara memaksimalkan margin (yang merupakan istilah penalti, mirip dengan yang digunakan dalam regresi ridge) dan besarnya variabel slack (yang mirip dengan kerugian pada sampel pelatihan). Kami kemudian menghindari over-fitting dengan menyetel parameter regularsation, misalnya dengan meminimalkan kesalahan validasi silang (atau beberapa terikat pada error leave-one-out), seperti yang akan kami lakukan dalam kasus regresi ridge.

Jadi, sementara SVM dapat dengan sepele mengklasifikasikan set pelatihan, ia umumnya hanya akan melakukannya jika parameter regularisasi dan kernel dipilih dengan buruk. Kunci untuk mencapai hasil yang baik dengan model kernel terletak pada pemilihan kernel yang tepat, dan kemudian dalam menyetel parameter kernel dan regularisasi untuk menghindari data yang terlalu banyak atau kurang pas.

Dikran Marsupial
sumber
Terima kasih Dikran. Itu sangat rinci dan bermanfaat. Saya pikir saya mengerti jawaban atas pertanyaan. Satu tindak lanjut cepat. Bagaimana cara memilih kernel yang sesuai untuk SVM? Apakah mirip dengan parameter regularisasi / kernel (mis. Melalui validasi silang)? Atau adakah dasar teori untuk pilihan itu? Jika kernel rbf menjadikan SVM sebagai aproksimasi universal, saya kira pemilihan kernel adalah parameter lain yang perlu diperhatikan, tetapi tidak yakin. Seperti yang mungkin Anda tahu, saya cukup baru dalam hal ini.
tomas
Memilih kernel sering kali merupakan cara yang baik untuk membangun pengetahuan ahli tentang masalah ke dalam pengklasifikasi, misalnya untuk sistem pengenalan karakter tulisan tangan, Anda mungkin ingin menggunakan kernel yang tidak tetap pada rotasi kecil dan terjemahan gambar. Memilih kernel secara otomatis dapat dicapai dengan cross-validation (yang akan saya lakukan) atau terikat pada error leave-one-out (yang dapat dilakukan secara efisien untuk SVM). Namun jika dataset kecil maka memilih kernel melalui cross-validasi bisa rumit karena overfitting kesalahan cross-validation.
Dikran Marsupial
Untuk banyak aplikasi, kernel linier atau RBF adalah pilihan default yang baik, dan seringkali ada sedikit yang bisa didapat dari menjelajahi berbagai kernel yang lebih luas (dengan tidak adanya pengetahuan ahli tentang masalah).
Dikran Marsupial
1

Jawabannya tergantung pada apakah Anda menggunakan SVM linear atau SVM kernel. Dengan SVM linier, Anda hanya menggunakan fitur yang Anda berikan, dan itu tidak memperhitungkan interaksi akun. Dengan Kernel SVM, pada dasarnya Anda menggunakan banyak fitur berbeda, tergantung pada kernel yang Anda pilih. Jika ada hyperplane pemisah, yaitu, jika menentukan kelas di mana adalah fitur-fiturnya, maka Anda dapat memiliki fitting data pelatihan yang lengkap. Biasanya, Anda tidak menentukan fitur, tetapi memberikan kernel yang terkait dengan fitur sebagai . Cari mereproduksi ruang Kernel Hilbert.β i , i { 1 , 2 , . . . K } K K ( x 1 , x 2 ) = K i = 1 β i ( x 1 ) β i ( x 2 )sign(i=1Kβi(x)β0)βi,i{1,2,...K}KK(x1,x2)=i=1Kβi(x1)βi(x2)

highBandWidth
sumber